こんにちは、廣川です。
今回はOpenIDについてです。
今回、OpenIDを勉強する機会がありましたので、丁度開発していた当該アプリにも組み込みました。
1. OpenIDとは
1つのIDで複数のWebサイト認証を行う仕組みのことです。
具体的に言うと、Googleのアカウントで、別のアプリを使おう、という話。Feedlyなどが参考になるかと思います。
また、認証を行う仕組みであって、認可を行う仕組みではありません。
現在、OP(OpenIDを持つサイト)の信頼性を保証するような仕組みがなく、未だ検討の余地があるという問題があります。
OpenIDには、1.0(1.1)/2.0/connectがあります。
GoogleやYahooが提供しているOpenIDは2.0です。
2. OpenID 1.0(1.1)の動作
1. OpenIDを使用できるサイトYがあるとする
2. ユーザは所持しているOpenIDアカウントZのURLを入力する
3. Zにリダイレクトされ、ユーザは認証を行う
4. Zの認証結果をサイトYが受け取って、Zアカウント本人であることをサイトYが認証する
ここでいうサイトYのことをConsumer、サイトZのことをIdp(Identity Provider)と呼びます。
3. OpenID 2.0 の動作
1. サイトAのIDで認証できるサイトXがあるとする
2. サイトXはサイトAと接続を確立し、リダイレクトを行う
3. ユーザはサイトAのサイトで認証を行う
4. サイトAはサイトXに対して認証が通ったということを知らせる。それと同時に、ユーザが許可した付加情報(例えば住所だとか)をRPに伝える
5. ユーザはサイトAのIDで、サイトXのサービスを使うことが出来る
ここでいうサイトAのことをRP(relying party)、サイトXのことをOP(OpenID Provider)と呼びます。