概要
OpenIDは、ベンダーに依存しないURL/XRIを入力するだけで、ログインが可能にする認証技術標準のことです。
URL/XRIは、特定のベンダーに依存しないものです。
ユーザーは、自身のOpenID URLを入力するだけでログイン可能になります。
OpenIDには下記のような役割があります。
- ユーザー
- OpenIDでログインするユーザーです
- OpenID認証を利用するサービスプロバイダ(Replying Party: RP)
- ユーザーがOpenIDでログインしようとしているサイトです。
- OpenIDプロバイダ(OpenID Prodiver: OP)
- ユーザーのOpenID情報を保持しているプロバイダです。
例えば、「ユーザー」が「はてなのID」で「ATND」にログインしようとした場合の役割は下記のようになります。
- ログインユーザー = ユーザー
- ATND = RP
- はてな = OP
ユーザーがRPにURL/XRIを送信すると、ユーザー、RP、OPの間でやりとりが行なわれて認証処理が行なわれます。
②URL/XRIからOP Endpoint URLを取得
URLかXRIを受け取るとRPは以下の手順でOPの情報を取得します。
- XRIの場合
- XXRIの名前解決を行ない、XRDS(XMLファイル)を受け取る
- URLの場合
- Yadisで、XRDSを受け取る
- Yadisで失敗したら、HTML-Based Discoveryで、HEADタグからOPの情報を得る
OpenID Extention
OpenID Extentionとは、OpenIDによる認証時に、リクエストとレスポンス中に任意のパラメータを付与する仕組みです。
AX (OpenID Attributes Exchange)
AXはOPとRP間でデータをやり取りするためのしくみです。
OpenID 1.1には、同じようなしくみでSREGというものがありますが、
AXはそれよりも柔軟な仕様となっています。
AXはOpenID 2.0です。
OPとRP間で下記のようなリクエストがやりとりされます。
Fetch Request とFetch Response (ユーザー情報の取得)