OpenID入門――その導入で何が変わって何が変わらないのかFocus on Technology(2/4 ページ)

» 2007年11月09日 13時46分 公開
[Nathan-Willis,Open Tech Press]
SourceForge.JP Magazine

OpenIDを用いたログインの流れ

 ここではhttp://yourname.someOpenIDprovider.comという架空のURLを持つページについて考えてみよう。たいていの場合こうしたページは非常にシンプルな構成を取っており、「ここはyournameというユーザーに関する認証ページです」といった内容のメッセージと、OpenIDについてのFAQへのリンクが張られている程度である。肝心なのはそのHTMLソースであって、<link rel="openid.server" href="http://someOpenIDprovider.com/server" />という形式で、ヘッダ部にキータグが埋め込まれている。このタグからは、コンシューマーサイトからの問い合わせに対して、当該ユーザーの認証を行うための接続先を指定する情報が提供されるのである。細かい説明はここまでにするとして、後は適当なサイトを選んで実際にログインしてみることにしよう。

 OpenIDに対応したサイトを見分けるのは簡単である。そうしたサイトのログインフォームでは、オレンジ色の縦棒と灰色の丸い矢印をあしらったOpenIDのロゴが表示されているはずであり、すでにお馴染みとなったRSSマークと同様の感覚で探すことができるようになっている。今は単にログイン手順を確認することが目的なので、適当なOpenID対応コンシューマーのサイトを選択してログインすればいい。ここではopenid.netのwikiを使うことにしよう。このwikiではすべてのページからログインページにアクセスできるようになっており、そのページにはOpenIDの入力用フィールドが1つ存在するだけである。OpenIDプロバイダーから取得しておいた各自のOpenID用URLをこのフィールドに入力して、ログインボタンをクリックすれば、後は必要な処理が自動的に実行される。次に、それらがどのような処理であるかを見ていこう。

 openid.netのwikiの場合、入力されたURLが有効なものであるかの確認および、当該ページのデータの取得が行われてから、先のrel ="openid.server"のタグの検索が実行される。その次に来るのが、このタグに指定されているサーバにアクセスして行われる、入力された OpenID用URLに関する照合作業である。こうしてアクセスされたサーバ側としては、ログインを試みたユーザーが登録された当人であるかの認証、当該ユーザーのログイン先と問い合わせをしてきたopenid.netのwikiとが一致しているかの確認、およびトランザクションやユーザー識別に関する情報の漏えい防止といった処理に責任を負わなければならない。

 そのためsomeOpenIDprovider.comサーバは、ユーザーの本人確認を行うため、当該ユーザーに対して someOpenIDprovider.comに直接ログインするよう求めるか、あるいはクッキーをチェックすることで現在のブラウザセッションにおいて以前に同様の認証が行われていないかを検証する。その次に行う、ユーザーの指定したログイン先と実際のログイン先とが一致していることを確認する処理では、ユーザーに対してopenid.netのwikiの参照ページに関する質問を実行する。

 このようにしてユーザーの本人確認が正常に終了し、ログイン先がopenid.netのwikiで間違いないことが確認されると、このサーバは当該ユーザーを参照元のwiki(実際には“ログインは正常に終了しました”旨を示すページ)にリダイレクトするのと並行して、それとは独立した形で確認終了のメッセージを同wikiに直接送信する。ユーザーのリダイレクトおよび確認終了のメッセージには、どちらもワンタイムセッションキーと暗号署名がつけられているが、これらは別々に送信されるため、wiki側で両者を比較することによりトランザクション全体が正当なものであることを確認できるようになっている。

関連キーワード

OpenID | 認証 | Focus on Technology | パスワード


Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ