結局OpenIDってなんじゃ?
整理のため。
間違ってたら指摘してくださるとうれしいです。
認証API(サービス)
APIを提供するサイト(アプリケーション)のアカウントで、それ以外(サードパーティ)のサイトにログインできたりするようにするためのしくみ。サードパーティのサイトには、ログインに必要なパスワードなどは流れず、アカウント名と、そのアカウント名が認証できたか(パスワードなどで本人か確認できたか)という情報及びそのほかの許可された情報のみが渡される。認証できたならそのように処理を進める。
認証APIでは以下のようなものが有名っぽい。
"認証"と"認可"
あくまでも"認証"であり、"認可"については定めていない。
つまり、本人かどうか確認するためのAPIであって、それが本人だったとして、その人がアクセスできるかどうかってのは、APIではなく、それを利用するアプリケーションの問題。
たとえば、有料会員コンテンツもあるサイトで、はてな認証APIやら、OpenAPIやらを採用したとき、認証できたからってみんな有料コンテンツを利用できちゃまずい。有料コンテンツは有料会員にのみ許可されなきゃならない。これが"認可"、権限を与えること、ってわけ。
また、後述するOpenIDについては、その"認証"が本当に信用していいのか、"認可"できるものなのか?という問題がある。
OpenID?
で、本題です。
さっき挙げた認証APIのうち、OpenIDだけ、ほかと明確に違うところがある。
はてな認証APIとか
はてなならはてな、LivedoorならLivedoorが自身の公開するAPIの仕様を決める。Livedoorがもしやめちゃったら、LivedoorAuthに頼ってるサードパーティは全滅。
OpenID
仕様はすべて公開されてるし、次期の仕様もメーリングリストでOpenに議論されているため、特定の団体の都合で左右されたりしない。
なにより特徴的なのは、本人かどうか"認証"するのは特定の団体ではなく、誰でもできるってとこ。極端な話、あなたがOpenIDのサービスを始めて、認証できたりする。Livedoorだろうが、はてなだろうが、あなただろうが、どこだろうが本人かどうか認証でき、その認証済みの情報をもって他のサイトにログインできたりする。*1この性質をもってOpenIDは"分散認証システム"であるという。
なお、分散であるため、OpenIDに対応したアプリケーションを構築すれば、Livedoorがなくなったとしても、そのほかのOpenID認証局があれば問題なくサービスを続けられるよ。
つづくよ。