OpenID
よくある質問
簡単な用語説明
OpenID 2.0では、下記のように用語を定義しています。
| 用語 | 説明 |
| OpenID Provider(OP) | OpenIDを発行するプロバイダ(例:Yahoo! JAPAN) |
| Relying Party(RP) | OpenIDによる認証を受け入れるウェブサイト(例:お客様のウェブサイト) |
| End User | OpenIDの利用者(例:Yahoo! JAPAN IDでOpenIDのしくみを使う利用者) |
| OP Endpoint URL | OpenID Provider側のエンドポイント |
| Identifier | OpenIDによる認証で利用される識別子。URIとXRIのどちらでも利用できる |
| OP Identifier | OpenID Providerの識別子 |
OpenID 2.0ではどのような点が変わったのでしょうか?
OpenID 2.0はOpenID 1.1に比較して、いくつかのセキュリティ上の改善と利便性向上が図られています。
discoveryの仕様
OpenID 2.0のOP Endpoint URLはYadisプロトコル(外部リンク)に従って公開されています。
OpenID 2.0に対応したOPは、Yadisでサポートしているバージョンとその拡張仕様と同じ方法でOP Endpoint URLの場所を明示します。OPはRPのOP Endpoint URLにYadisを利用してdiscoveryを行えます。
Yahoo! JAPANはRPのrealmとOP Endpoint URLを確認するために"openid.realm"で指定されたrealmに対してdiscoveryを行います。
OpenID識別子生成のしくみ
OpenID 2.0の仕様ではOPはURLのフラグメントをOpenID URLの末尾に付け加えて、Identifierを生成するしくみになっています。そのOpenID識別子を用いることで、RPはEnd Userを識別できます。
下記の例のように、OpenID URLに#以降のフラグメントを付加することでOpenID識別子が作成されます。
https://me.yahoo.co.jp/xxxxxxxx#aa
https://me.yahoo.co.jp/xxxxxxxx#bb
セキュリティポリシー
Yahoo! JAPANではHTTP(ポート番号80)、HTTPS(ポート番号443)上で実際のホスト名を使用しているRPをサポートしています。IPアドレスを利用しているRPは現在サポートしていません。
OP Identifierでログインできるようになりました
OpenID 2.0からの新しい仕様として、「Directed Identity」のしくみがあります。従来のように「http://openid.example.com/username#aa」のような長いURLをOpenIDの入力欄へ入力する代わりに、OP Identifierを入力するだけでログインできるようになりました。たとえば、Yahoo! JAPANのOpenIDを利用する場合は、OpenIDの入力欄へ「yahoo.co.jp」と入力するだけです。
利用者にもっと簡単にYahoo! JAPANのOpenIDを使ってもらうにはどうすればいいですか?
下記の専用ログインボタンを利用することで「yahoo.co.jp」の入力を省略できます。OpenID入力欄に「yahoo.co.jp」と入力して決定するというアクションを、このボタンを押すことで代行できるため、利用者はボタンを押すだけでOpenIDによる認証プロセスを開始できます。
なぜ「PAPE nist_auth_level 0」と通知されるのでしょうか?
Yahoo! JAPANのOpenIDは現在ベータ版であり、ウェブサイト上での金銭的やりとりを行う場合や、クレジットカード番号などの機密情報の保存を行うウェブサイトでの利用は現在推奨しておりません。このことをRP側へより明示的にするためにPAPE extensionを利用して、「NIST Auth Level 0」であることを通知しています。