OpenIDについての概要メモ

概要

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の間でやりとりが行なわれて認証処理が行なわれます。
f:id:memememomo:20100506102756p:image

②URL/XRIからOP Endpoint URLを取得

URLかXRIを受け取るとRPは以下の手順でOPの情報を取得します。

  1. XRIの場合
    1. XXRIの名前解決を行ない、XRDS(XMLファイル)を受け取る
  2. URLの場合
    1. Yadisで、XRDSを受け取る
    2. 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 (ユーザー情報の取得)
f:id:memememomo:20100505171934p:image


Store Request (RPがOPにデータ保存する)
f:id:memememomo:20100505171935p:image

PAPE (OpenID Provider Authntication Policy Extension 1.0)

f:id:memememomo:20100505171936p:image
認証ポリシーをRP/AP間で決めるときに使われる仕組みです。
ポリシーによってセキュリティ強度が決まってきます。

参考

WEB+DB PRESS Vol.45

WEB+DB PRESS Vol.45


OpenID 2.0[認証システム最前線]