これならわかる!OpenIDの仕組み
OpenIDを使った認証の流れ
大きな背景がわかったと思いますので、OpenIDを使った認証の流れを確認しておきます。ここでは、イメージしやすいように以下の例えを使って紹介します。
スモークガラスの車が、駐車場の入り口に入ってくる。車の中から係員に話しかける。
「駐車場を利用したいんだけど」
「通行証を見せて」
「Aの通行証でも大丈夫だよね」
「大丈夫だよ。じゃあ、Aのゲートがあるからそこで許可とってきて。案内するから」
「わかった」
係員は、Aゲートに電話してから、Aゲートの場所まで車を誘導し、車はそのままAゲートに入っていく。
Aゲートの中はよく見えないが、Aゲートの中にも係員がいて、通行証の確認をしているのだろう。そのAゲートの中から程なく車が出てきて、また元の入り口にいる係員のところに戻ってきた。車の中からまた係員に話しかける。
「AゲートでOKもらったよ。証拠もあるよ」
「それならオッケーだ。中に入っていいよ」
「じゃあ、遠慮なく」
スモークガラスの車、駐車場、係員の例えを使った説明はここまでです。かなり簡略化していますが、大きな流れはつかめるのではないでしょうか。
役割ごとに見るOpenIDを使った認証の処理
上記の例えでは、スモークガラスの車の中の人物がユーザーで、乗ってきたスモークガラスの車は、ブラウザをイメージしています。
駐車場は、ユーザーが利用したいサービスで、OpenID 2.0の仕様によるとRelying Party(PR)と呼びます。OpenID 1.1の仕様では、Consumerと呼ばれます。日本語にうまく訳せないですが、要するに任意の発行サイトによるOpenIDを利用してログインできるサービスのことです。
通行証を見せる入り口の係員は、RPの認証システムです。そしてご想像のとおり、Aの通行証がAというサイトが発行したOpenIDそれ自体です。また、通行証を見て身元を確認してくれるAゲートが、OpenID発行サイト(OP)です。
その上で、ユーザーから見たOpenIDを使った認証の流れを説明しなおすと図3のようになります。
まず、ユーザーがブラウザ(ユーザーエージェント)を使ってあるサービス(RP)にログインしようとします(図3の1)。
サービス(RP)の認証システムによってユーザーが持っているOpenIDを利用することができるとわかります(図3の2)。
そのサービスは、そのOpenIDがどこから発行されたものかを知り、そのサイトと事前に情報交換した上で、ユーザーをそのOpenID発行サイトにリダイレクトします(図3の3)。
OpenID発行サイトで認証されたユーザーは、元のサービスに逆リダイレクトされます。発行サイトから許可されているので、元のサービスはログインを許可します(図3の4)。
さて今回は、OpenIDが注目される理由と基本的な利用の流れを簡単に説明しましたが、いかがでしたでしょうか。「これならわかる!OpenIDの仕組み」というタイトルにあるように、なるべくわかりやすいようにあえて平たい言葉で説明したつもりです。
何に対しても言えることですが、技術や流れを理解するためには、自分でやってみることが一番です。Yahoo! JAPANやmixiなどでOpenIDをまず作ってみてください。ウィキペディア(http://ja.wikipedia.org/wiki/OpenID)にOpenIDの発行サイト、対応サービスの一覧が掲載されていますので、興味のあるものを探して実際の認証を試してみてください。OpenIDの流れがよくわかると思います。
次回からは、OpenIDのセキュリティーという観点でのチェックポイント、実装の方法などについて具体的に見ていきたいと思います。
[参考文献]
livedoor(http://www.livedoor.com/)(アクセス:2009年1月)
mixi(ミクシィ)(http://mixi.jp/)(アクセス:2009年1月)
Yahoo! JAPAN(http://www.yahoo.co.jp/)(アクセス:2009年1月)
ウィキペディア(OpenID)(http://ja.wikipedia.org/wiki/OpenID)(アクセス:2009年1月)