日向夏特殊応援部隊

俺様向けメモ

Simple Registration ExtensionとAttribute Exchangeの違いについて

id:machuさんのブクマコメントより。

Simple Registration ExtensionとAXの違いがよく分かってないです。

同じように違いの分からない方もいらっしゃると思うので簡単に解説。

Simple Registration Exchange

OpenIDのメインのspecが2.0になった事により、namespaceが適用されるので、
それに対応したOpenID Simple Registration Extension 1.1 - Draft 1をテキストにした方が良いでしょう。

でAbstractから引用。

Abstract
OpenID Simple Registation is an extension to the OpenID Authentication protocol that allows for very light-weight profile exchange. It is designed to pass eight commonly requested pieces of information when an End User goes to register a new account with a web service.

軽量プロフィール交換プロトコルで、ウェブサービスのアカウント登録の際に使う個人情報の受け渡しの為にデザインされてると読む事が出来るでしょう。
と言うのも、OpenID Simple Registration Extension 1.1 - Draft 1 :: Response Formatで規定されている、戻り値に含まれるプロフィールの種類が、

  • nickname
  • email
  • fullname
  • dob (誕生日)
  • gender
  • postcode
  • country
  • language
  • timezone

と規定されています。
これら全てが取れるかと言うと必ずしもそうではなくて、

  • RP(Consumer)はこれらのうち必要な物を選択してOP(IdP)にリクエスト出来る
  • End Userはリクエストされた属性について非公開にする事も出来る

のが現状の実装だと思います。*1

Attribute Exchange

に対してAXの方はSimple Registration Extensionのように属性値が決め打ちではありません。Overviewに書いてあるように、"It may refer to any kind of information"なので、如何なる種類のデータも扱う訳です。*2

といってもある程度枠組みはあって、

を見て頂ければどのような物が対象になっているか分かると思います。
ちなみに自分でその属性を提案する事も出来るようです。詳しくはhttp://www.axschema.org/を見て下さい。*3

それと取得(fetch)だけでは無く設定(store)も対象になってるのがSREとの違いですね。

その他

とりあえず、OpenIDの普及の手段としてはSimple Registration Exchangeに色んなWebサービスが対応してくれると、個人がOpenIDを取得し、プロフィールを入力して置く事で、
そのWebサービスに登録する際の手続きの軽減になるので、それだけでもありがたいと思ってます。

Attribute Exchangeは既に規定されている型も多いのでSimple Registration Exchangeで会員登録してた所をAXに変えたらほとんど入力項目が埋まっちゃうんじゃないですかねw
あとは具体的な例を言えば、某大手SNSのプロフィール変更をしたら、自分のOPのプロフィールも変更される、、、なんて事も可能になります。

個人的にはFOAFとかも属性値にして欲しい。

*1:End Userが非公開云々はSpecには書いてないけど

*2:個人情報に属する〜って意味ですが

*3:属性値の共通化もソーシャル化してんですねぇ。