OpenIDは「ひとつのIDですべてのサイトにログインできる」と言われていますがいくつか疑問があります。
例えばYahooのIDでログインをする場合、OpenIDに対応しているサイト(=Aサイトとします)はOpenIDを通じてYahooの方から「ニックネーム」「性別」「年齢」「メールアドレス」を取得したとします。
多くのOpenIDではパスワードなどのやりとりはないと思うのですが、
(1)結局Aサイトでユーザーはパスワードを新たに決める必要があるのではないでしょうか?
そうなるとおのおののサイトでやはりパスワードが必要になるため「ひとつのIDでログインできる というより会員登録する項目が減った」だけというイメージなのですが・・・
(2)OpenIDはつまるところ何によってユーザー判定をしているのでしょうか?
ソースを見たところAサイトでOpenIDでログインすると上記のニックネームなどをSESSIONなどで以て返ってきていると思うのですがどの部分をパスワード替りに代用しているのでしょうか?
Yahooの場合、各ユーザーごとに「あなたのOpenIDは https://me.yahoo.co.jp/a/adcdefgbuY3uOFUhijkltd1 … といった識別乱数のようなものもありますがこれをパスワード替わりにAサイトでは認識しているのでしょうか?
以上、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
私のOpenIDの知識は1.1ベースなので,2.0においては古くなっている可能性があります。
根本が大きく変わるとは思えないのですが,大きく変わっていて現状とあわない場合はご指摘ください。
根本的なところの間違いっぽいのですが,ユーザーの識別をパスワードで行うことはありません。
ユーザーの識別を行うのに必要な物はIdentifier (ID:識別子) と呼びます。
パスワードはそのIDが本当にIDの持ち主によって使われていることを確認するための認証 (Authentication) に使われる値です。
通常のウェブサイトでは,最初にユーザーの認証を行い,認証に成功すると内部で乱数値を生成し,Cookieとしてその乱数値を送出します。
乱数値にはシステム内部でIDを紐付けておきます。
ウェブサイトへのアクセス時にCookieが渡された場合,乱数値がそのCookieに含まれることになります。
その乱数値が有効であるか,また有効なIDに紐付いているかをウェブサイトのシステムはチェックし,どちらも有効であれば「ログインしている状態」と判別します。
# 現在ログインしているかをDBに保持しておいて,そこもチェックする,等の追加要素はあることがあります。
Cookieの送出等は,通常各言語やミドルウェアのSession機構などを使います。
PHPだとCookieの送出がsession_startに相当します。なお,乱数値はPHP側が用意します。
なので,$_SESSION["user_id"] = $_POST["user_id"];などとしておいて,
isset($_SESSION) && isset($_SESSION["user_id"]) && is_valid_user_id($_SESSION["user_id"])
あたりをチェックすることになります。
# is_valid_user_idはユーザーIDのチェック関数。
さて,本題です。
(1)について
Aサイトでパスワードは不要です。
OpenIDとは認証を他のサイトに委譲するためのしくみなので,パスワードを用意するというのはOpenIDを否定することになります。
ちなみに,OpenIDの仕様書のタイトルは"OpenID Authentication"と言います。
references)
SITE: Specifications | OpenID
http://openid.net/developers/specs/
SITE: Final: OpenID Authentication 2.0 - Final
http://openid.net/specs/openid-authentication-2_ …
(2)について
まず,仕様書から拾ってみます。
> Identifier:
> An Identifier is either a "http" or "https" URI, (commonly referred to as a "URL" within this document), or an XRI [XRI_Syntax_2.0]. This document defines various kinds of Identifiers, designed for use in different contexts.
# 上記,OpenID認証2.0仕様書 2. Terminologyから引用。
・スキーマがhttpまたはhttpsであるURL
・XRI
のどちらかがユーザー判別用のIdentifier (ID) であることになります。
なので,
https://me.yahoo.co.jp/a/adcdefgbuY3uOFUhijkltd1 …
などはIDになります。
サイトAではOpenIDのID (正確にはUser-Supplied Identifierかな) をユーザー識別用に使うでしょう。
# 内部ではGUIDや連番を使っているかもしれませんが。
一度認証してしまえば,後は自分が認証サーバーである場合となんら変わりない処理になります。
パスワードまわりの疑問に関しては,パスワードが必要なのはOpenID Provider (OP) であって,Relying Party (RP) ではない為,割愛します。
# つまり,サイトA側ではパスワードやそれを代替する物を必要しない,ということ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- その他(セキュリティ) スマホで使用する場合のパスワード設定はどうしてますか? 4 2023/04/03 18:01
- ハッキング・フィッシング詐欺 フィッシング詐欺サイトについて。 急いで居た為、きちんとした確認もせずに入力してしまいました。 Tw 2 2023/04/17 12:49
- その他(セキュリティ) パスワードの漏洩の通知について 3 2022/09/03 21:55
- Yahoo!メール Yahooアカウントにログインできなくなって困っています。 2 2023/05/16 02:28
- LINE 中古スマホでLINEの年齢確認をしたい時。 祖母は普段ガラホで中古スマホでLINEを自宅でするのです 1 2022/03/25 20:17
- システム なぜ「SNS」介入にはメールアドレスが必要なの? 1 2023/05/12 05:17
- その他(ブラウザ) Microsoft Edge(最新版)保存中サイトが全てログオフ状態で困っています! 3 2022/06/15 11:02
- ハッキング・フィッシング詐欺 OKWAVEのログインと会員登録と新規登録 1 2023/04/10 17:09
- Safari(サファリ) スマホのサイトで自動ログインできない。 1 2022/07/10 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPSpreadsheetを使って関数を...
-
アマゾンのような評価の星を選...
-
phpでcookieがうまく保存されない
-
index.phpって何ですか? 具体...
-
これの対応OSを教えて下さい。p...
-
PHP8を使うと、大量のWarningが...
-
Q&Aサイトを作成していてURLの...
-
PHPのセッション有効期限について
-
ワードプレスサイト PHP8.0.25...
-
index.phpに入るには、どうすれ...
-
SFTPなどは使わないホームペー...
-
ファイルアップロードに関して...
-
ファイルアップロードの上限を...
-
php 完了画面の送信メールのコ...
-
phpのメールフォームの完了画面...
-
入力した部分を表示させたまま...
-
phpでPEAR::DBを使っているので...
-
awsにApacheとPHPを入れて、何...
-
掲示板のセキュリティについて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HPのページないしリンクにパス...
-
VBSで既に開いているIEにパスワ...
-
.htaccess以外のパスワードのか...
-
Basic認証でパスワードを保存さ...
-
1人1回投票できる投票システム...
-
パスワード付のページを作るには
-
Java で、フォーム形式のデータ...
-
特定のコンピュータのみにアク...
-
OpenIDのユーザー識別について
-
ログインの作り方について
-
CGIを利用せずにウェブサイ...
-
Vbaである特定のインターネット...
-
パスワードを入れて次のページ...
-
一人一人違うパスワードで、同...
-
会員制ログインシステムを探し...
-
入力したユーザIDの取得
-
CGIでパスワードのセキュリ...
-
Perlプログラムにおいて、入力...
-
会員制サイト CGI
-
花台の位置は向かってどっちで...
おすすめ情報