TOP情報セキュリティ> 第1回:2行で簡単Identifierをはじめよう (2/3)

使って広がるOpenIDの輪

使って広がるOpenIDの輪

第1回:2行で簡単Identifierをはじめよう

著者:はてな  水野 貴明

公開日:2007/12/6(木)

ログインIDはURL

あるサービスにログインするためには「自分はこういう情報を使ってログインをしたい」といった何らかのID情報をログイン対象となるサービスに伝える必要があります。

OpenIDではID情報として「URL」を利用します。これは「OpenIDを使ってログインを行う場合には、自分のアイデンティティをあらわすURLを入力欄に入力する」という意味です。筆者がサービスにログインする場合、はてなでは「http://www.hatena.ne.jp/mizuno_takaaki/」、livedoorでは「http://profile.livedoor.com/mizuno_takaaki/」というURLを使用します。

例えば、OpenIDに対応しているWebサイトを集めるプロジェクト「OpenID Directory(http://openiddirectory.com/)」で「login」ボタンを押すと、URLを入力するための入力欄が表示されます。ここに、上記のような自分のIDをあらわすURLを入力すると、ログイン処理が行われます。

通常は入力したURLによって、はてなやlivedoorなど、もともとアカウントを登録しているWebサイトが一度表示され「OpenID DirectoryというWebサイトにログインする、という事になってるが大丈夫か」というような確認がなされます。

そして、そこでOKをクリックすれば、OpenID Directoryにリダイレクトされると同時にログイン情報の受け渡しが行われ、OpenID Directory側でもログインした状態になります。

2つのWebサイトを行き来するため、通常のログイン作業とはちょっと異なるプロセスを踏みますが、ユーザ名の代わりにURLを入力することでログインを実現しています。

OpenIDでログインを行うまでの流れ
図2:OpenIDでログインを行うまでの流れ
(画像をクリックすると別ウィンドウに拡大図を表示します)

なおOpenIDでは、OpenIDのアカウントを提供する側(上記の例でははてなやlivedoor)を「Identity Provider(IdP)」、OpenIDを利用してログインを行わせる側(上記の例ではOpenID Directory)を「Consumer」と呼び、さらにログインに使われるURLを「Identifier」と呼びます。以後は、この言葉を使って解説を進めていきます。

IdentifierとなるURLは、実は単なるURLではありません。そのURLを使ってアクセスできるページのHTMLを見てみると、ヘッダ部分に「<link rel="openid.server" href="http://www.hatena.ne.jp/openid/server">」のような記述があることがわかるでしょう。

これは「このURLはどこのIdPを利用して認証を行うIdentifierなのか」を意味しており、そこに書かれているURLは認証の処理を行うIdPのものになっています。

OpenIDでは、まずConsumerにユーザが自分のIdentifierであるURLを入力します。するとConsumerはそのURLにアクセスし、ヘッダから上記のIdPのURLを取得します。そして、今度はそのURLに対してアクセスを行って「このIdentifierでログインしたいって言っている人がいるんですけれどOKですか?」と問い合わせるわけです。

その際、Webブラウザはリダイレクトを利用して、一度IdPの用意したページにアクセスすることになります。そこでIdP側は、そのIdPへの現在のログイン状態とIdentifierのURLをチェックして同じユーザかどうかの確認を行います。

そして最後にIdPは「このIdentifierは、確かにうちのサービスで許可したものであり、現在アクセスしている人です」というメッセージをConsumerに送ります。より正確に言うと、その情報をクエリ文字列としてつけたConsumerのWebサイトのURLにリダイレクトします。

Consumer側で「その情報は正しい」という確認が取れれば、あとは通常のログイン処理と同様にセッション情報をクッキーで渡すなどして、ユーザのログイン状態を保持することになります。

これをあらわしたものが図2です。実際には、もう少しConsumerとIdPの間ではやりとりを行う必要があります。

具体的なやりとりについては、今後の連載の中で触れていく予定ですが、とりあえずログインを行うユーザーから見ると、このような手順でログインをすることができる、と理解してください。また、OpenIDの認証方法には、いくつかの方法があり、IdPのページへのリダイレクトを行わずに認証を行うこともできるようになっています。

基本的にユーザはIdentifierを指定し、ConsumerとIdPという2つのサービスを行き来します。そして最終的にはConsumerにおいて、IdPで登録しておいたアカウントが使えるようになる、という仕組みなのです。

ではいよいよOpenIDのより具体的な仕組みや、Consumer、IdPの実装方法について解説していきます。 次のページ


前のページ  1  2  3  次のページ


株式会社はてな 水野 貴明
著者プロフィール
株式会社はてな  水野 貴明
1973年東京生まれ。エンジニア兼技術系ライター。株式会社はてな勤務。近著に「俺流Amazonの作り方」(アスキー)、「詳解RSS〜RSSを利用したサービスの理論と実践」(ディー・アート)など。趣味はラテン音楽と海外旅行と神輿。主な原稿の執筆場所はスターバックスと通勤電車の中。


INDEX
第1回:2行で簡単Identifierをはじめよう
  OpenIDってなに?
ログインIDはURL
  自分のblogのURLをIdentifierにしてみよう