このページの本文へ

ニューテクノロジー探訪 Yahooも採用!「OpenID」

2008年02月01日 18時04分更新

文● ネットワークマガジン編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

OpenIDはURLをログイン名とするユニークな分散型オンライン認証システムだ。 2008年の1月17日に米ヤフーがサポートを表明したことで、シングルサインオン(SSO)のデファクト・スタンダードに一歩近づいた。

SSOへの取り組み

 今では完全に定着した感のあるブログやSNS。こうしたWebサービスを使用する際に必要なものといえば、個人を認証するためのユーザーIDとパスワードである。しかし、個人が管理する必要があるIDやパスワードの数は、サービスの数に比例して増加している。自分で作成したIDやパスワードを忘れてしまうことも、しばしば見受けられる。

 こうしたことからログイン管理のための仕組みとして、古くからSSO(シングルサインオン)が考え出された。これは、簡単にいうと複数のサイトやアプリケーションで単一のIDとパスワードを使って認証を行なうことである。

 近年、このSSOをWebサービスに導入する取り組みが進んでいる。企業間の独立したサービスを連携させるマイクロソフトの「.NET Passport」は有名である。また、サン・マイクロシステムズが中心となってユーザー認証技術の標準化団体Liberty Allianceも設立された。

SSOの統一規格OpenIDとは

 しかしこのような既存のSSOシステムは定着していない。その原因の1つは認証サーバとなる特定の企業にユーザーとサービスプロバイダが縛られてしまうことにある。その解決策として考えられたのが、オープンな規格でSSOを実現するシステム、OpenIDである。

 OpenIDは、2005年に行なわれたInternet Identity Workshopという認証に関するワークショップで初めて紹介された。米シックス・アパート社チーフアーキテクト、ブラッド・フィッツパトリック氏によって開発された認証システムである。

 .NET PassportやSAML(Security Assertion Markup Language)と異なり、OpenIDは特定の企業や団体に依存しない完全にオープンな標準規格であることが最大の特徴だ。このため企業や個人でもOpenIDを発行・認証するサーバとなることもできる。Webサービスを提供するプロバイダにとっては、認証するサーバの管理団体との提携は不要である。またOpenIDによる認証を導入することにより、独自の認証システムを構築する必要がなくなるメリットもある。

 ユーザーにとっては、URLをログイン名として使用することが大きな特徴である。このURLを用いることで、すべての対応サイトに個別にIDを登録することなくログインが可能になる。

認証の仕組み

 では、OpenIDで認証する仕組みを追ってみよう(図1)。

図1●OpenID認証の流れ

図1●OpenID認証の流れ

 OpenID認証は、Webサービスを利用するユーザー、OpenIDに対応したWebサービスのプロバイダ(以下、対応サイト)、そしてユーザーに対してOpenIDを発行し、対応サイトから認証を依頼されるサーバ(以下、認証サーバ)で実現されている。

 まずユーザーは認証サーバでアカウントを作成する(図1中の①)。ここで設定するのは、認証サーバにログインするためのユーザー名とパスワードである(画面1)。すると、Webページが作成され、このWebページのURLが各対応サイトで用いるIDとなる。また、この時に設定したユーザープロファイルは、すべての対応サイトで保持されるので、いちいちサイトごとにプロファイルを作成する必要がない点もOpenIDの特徴だ。

画面1●OpenID認証サーバ、アカウント作成画面

画面1●OpenID認証サーバ、アカウント作成画面

 次に、ユーザーは利用したい対応サイトのログインフォームに、取得したURLを入力する(図1中の②)。ここには共通のOpenID用フィールドが用意されている(画面2)。

画面2●OpenID対応サイトChoixの、ログインフォーム

画面2●OpenID対応サイトChoixの、ログインフォーム

 対応サイトは入力されたURLにアクセスしてこのURLが正しいものか確認する。このURLが示すページのHTMLソースには、どの認証サーバでIDを発行したかを示すタグが埋め込まれている。対応サイトは、このタグで指定された認証サーバに対し認証を依頼する(図1中の③)。

 認証を依頼された認証サーバは、ユーザーに対し認証サーバのパスワード入力ページをリダイレクト表示する(画面3)。ユーザーは対応サイトではなく、認証サーバにパスワード情報を送信するということだ(図1中の④)。またはブラウザ上のCookieを調べ、以前に同様の認証が行なわれているか検証する。

画面3●OpenID認証サーバ、ログイン画面

画面3●OpenID認証サーバ、ログイン画面

 最後に認証サーバは対応サイトに認証結果を返し(図1中の⑤)、ユーザーには対応サイトをリダイレクト表示する。この認証結果と対応サイトのリダイレクト表示には、同じセッションキーと暗号化された署名が付いている。対応サイトは別々に送られてきたセッションキーと署名を比較し、この認証過程の正当性を確かめてログインを許可する。

 また、OpenIDでは認証サーバで発行されるURLだけではなく、個人ユーザーのブログやWebサイトのURLをIDとして使用することもできる。

 この場合、自分のサイトの<HEAD>セクションに、認証サーバで作成されたURLに応じたタグ(Delegate情報)を挿入しておく。対応サイトはそのURLにアクセスしてDelegate情報を取得し、そこに記述されている認証サーバに認証を依頼する(図2)。ユーザーにとっては、目的のサイトが対応してさえいればよいので利用は簡単だ。

図2●ユーザーのWebサイトのURLを用いた認証の流れ

図2●ユーザーのWebサイトのURLを用いた認証の流れ

 ただし、OpenIDの信頼性は各認証サーバ自身の質によって左右されてしまうことが問題だ。あくまでID管理に役立つシステムであり、個人情報の保護やスパムの対策、メッセージの真偽などの確認といったセキュリティを守る仕組みは持っていない。

OpenIDを取り巻く状況

 OpenID普及のため、各種ベンダーの協賛による開発支援プログラム( http://iwantmyopenid.org/bounty )が推進されている。これはOpenIDの実装に成功したオープンソース開発者に、報奨金を支払うというものだ。

 また信頼性の問題については、大手サービスが次々に採用とサポートを発表していることからも、今後改善されていくだろう。

 たとえばマイクロソフトは、Windows Vistaに搭載されている認証管理機能である「CardSpace」にOpenIDを統合しており、「RSA Conference 2007」で全面的にOpenIDをサポートすることを明らかにした。ベリサインとともに上記CardSpaceとOpenIDの連携を強化し、耐フィッシング性を向上させると述べている。その他、サン・マイクロシステムズやISPのAOL、フリー百科事典Wikipedia、ソーシャルニュースサイトDiggなども正式に対応すると発表している。

 原稿執筆時点(2007年6月)では、OpenIDは米国を中心に盛り上がりを見せていた。しかし2008年1月17日に米ヤフーがOpenIDへの対応を表明したことで、OpenIDを利用できるアカウント数は一挙に3倍に増加、約3億6800万に達した。世界中にいるヤフーのユーザーが利用することで、OpenIDは世界的な広がりを見せ、SSOのデファクト・スタンダードなとる可能性が強くなってきた。

OpenID認証サーバ
OpenID.ne.jp http://www.openid.ne.jp
OpenID対応サイト
Choix http://www.choix.jp
LiveJounal http://www.livejournal.com/openid/
Zooomr.com http://www.zooomr.com/login
Movable Type Weblogs http://www.sixapart.com/movabletype

ネットワークマガジン2007年8月号より転載

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中