工藤 達雄
本報告では、OpenID を中心に、2008 年下半期のアイデンティティ管理技術に関する動向を概観する。
筆者の主観ではあるが、2008年のアイデンティティ管理技術に関する議論の多くは、直接的・間接的に関わらず、OpenIDを意識して行なわれてきたように思われる。
その背景には、OpenID の爆発的な普及がある。2007年12月に コア仕様である OpenID Authentication 2.0 が確定して以降、大量の ID 情報を保有するサイトが相次いで OpenID プロバイダ機能の提供を開始し、一方 OpenID に対応したサイト(リライング・パーティ)も、米 JanRain 社の集計によれば、2008年の1年間で約3倍の 31,000サイト以上に増加しているという[1]。
そして普及に伴い、OpenIDの利活用を進める上での仕様の改版・拡張や、実運用での工夫などに進展がみられる。
| (1) | OpenID プロバイダは、自身がサポートする認証ポリシーを、エンドユーザの XRDS 文書に記述し、リライング・パーティに広告(advertise)する。以下の例では、OpenID プロバイダは当該エンドユーザを、フィッシング耐性のある(phishing-resistant) 方法によって認証を行なうことが広告されている。 |
<xrd>
<Service>
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://schemas.openid.net/pape/policies/2007/06/phishing-
resistant</Type>
<URI>https://example.com/server</URI>
</Service>
</xrd>
|
| あるいは以下の例のように、OpenID プロバイダがどの保証フレームワークに準拠するかを、独自の「名前空間」として広告することも可能である。 |
<xrd>
<Service>
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://csrc.nist.gov/publications/nistpubs/800-63/SP800-
63V1_0_2.pdf</Type>
<URI>https://example.com/server</URI>
</Service>
</xrd>
|
| OpenID Authentication のプロセスにおいては、リライング・パーティはOpenID プロバイダのエンドポイントの場所を入手するために、エンドユーザが指定した User-Supplied Identifier(「自身を識別する URL / XRI」あるいは「OpenID プロバイダの識別子」) に基づき XRDS 文書を取得する。このとき XRDS 文書に「OpenID プロバイダがサポートする認証ポリシー」が記載されていることで、リライング・パーティは、エンドユーザに関するアサーションをどの OpenID プロバイダにリクエストするかを、認証ポリシーに基づいて判断することができるようになる。 |
| (2) | リライング・パーティはOpenIDプロバイダにOpenID 認証リクエストを行なう際、そのメッセージのパラメータとして、アサーション発行時に適用してほしい「認証ポリシー」や「保証フレームワークの名前空間」などを含める(PAPE リクエスト)。 |
| (3) | 認証リクエストを受け取ったOpenIDプロバイダは、認証ポリシーに従い、ユーザを認証する。 |
| (4) | OpenID プロバイダは認証結果(アサーション)をリライング・パーティに返却する際、そのメッセージのパラメータとして、アサーション発行時に適用した「認証ポリシー」や、「保証フレームワークの名前空間」、「実際の保証レベル」などを含める (PAPE レスポンス)。なお OpenID プロバイダは、リライング・パーティからの PAPE リクエストの有無にかかわらず、PAPEレスポンスを返却することができる。 |
| (5) | リライング・パーティはOpenIDプロバイダからの PAPE レスポンスの内容、すなわち適用された認証ポリシーを判断し、エンドユーザからのアクセスの可否を決定する。 |
2008年11月、OpenID Authenticationの次期仕様 (バージョン番号は 2.1)を策定するための WG 開設が提案された[3]。
OpenID Authentication 2.1 は現行のバージョン2.0との後方互換を前提に、現仕様の「バグフィックス」(語句の修正、図版の追加、読みやすさの向上、解釈のぶれの防止) や、セキュリティ・ガイドラインの追加、ディスカバリ機能の強化 (XRD(Extensible Resource Descriptor)対応)、ひとつの識別子に対する複数 OpenIDプロバイダの記述の許容)などが行われる予定となっている。
コアとなる OpenID Authentication 仕様に対し、オプションとなる「拡張仕様」に関しても、WGを設立し、策定しようという動きがいくつかある。予定されている主な拡張仕様は次のふたつである。
この他、AX(Attribute Exchange)Extension 2.0(現行の AX 1.0 の更新)、SREG (Simple Registration)Extension 1.1 (現行の SREG 1.0 の更新)、ディスカバリ関連仕様の検討などのためのWGが開設される見込みである[6]。
OpenID Authentication 2.0 仕様により導入された「ディレクテッド・アイデンティティ」 によって、リライング・パーティは、エンドユーザに自身の識別子(URL もしくは XRI) を入力してもらう代わりに、主要なOpenIDプロバイダをエンドユーザに提示し、その中から選択してもらうことができるようになった。現在では多くのリライング・パーティが、この後者の手法を用いているとみられる。 一方の OpenID プロバイダ側では、リライング・パーティ間での名寄せを防ぐため、リライング・パーティ毎に異なる「仮名」を払い出す運用が一部で広まっている。この方法は以前から OpenID.ee(エストニアeIDを用いたOpenIDプロバイダ)が採用していたが、2008 年10月にOpenID プロバイダのサービスを開始したGoogleおよび Microsoft Windows Live ID(現時点では試験運用)が、相次いで同様の仮名払い出しをサポートしている[7][8]。このような「メガOpenIDプロバイダ」の動きは、他のOpenIDプロバイダや、リライング・パーティにも影響を与えるものとみられる。 また 2008 年 8 月にミクシィがOpenIDプロバイダのサービスを開始したが、同サービスでは一般的なユーザ認証に加え、エンドユーザが特定のグループに属しているかどうかの確認をOpenID Authenticationを用いて行なう、「マイミクシィ認証(ある別のエンドユーザの友人かどうか)」および「コミュニティ認証(あるコミュニティに属するかどうか)」という機能も提供している[9]。
2008 年下期から、PAPE の確定やContract Exchange WGの提案など、OpenIDをベースに重要な情報を流通させるための仕様策定の動きが加速している。また実運用においても、リライング・パーティ間での名寄せを防止するための仮名払い出しを大手 OpenID プロバイダが実装するなど、プライバシー保護への考慮も進みつつある。従来は「ブログへのコメント」のようなカジュアルな利用が一般的であったOpenIDであるが、今後、より広い分野への適用が期待される。
以上
| [1] | Janrain Blog: Relying Party Stats as of Jan 1st, 2009 | |
| http://blog.janrain.com/2009/01/relying-party-stats-as-of-jan-1st-2008.html | ||
| [2] | Final: OpenID Provider Authentication Policy Extension 1.0 | |
| http://openid.net/specs/openid-provider-authentication-policy-extension-1_0.html | ||
| [3] | OpenID Wiki / OpenID_Authentication_2_1 | |
| http://wiki.openid.net/OpenID_Authentication_2_1 | ||
| [4] | OpenID Wiki / OpenID and OAuth Hybrid Extension | |
| http://wiki.openid.net/OpenID-and-OAuth-Hybrid-Extension | ||
| [5] | OpenID Wiki / Working_Groups:Contract_Exchange_1 Framework Components |
|
| http://wiki.openid.net/Working_Groups%3AContract_Exchange_1 | ||
| [6] | OpenID Wiki / Working Groups | |
| http://wiki.openid.net/Working-Groups | ||
| [7] | OpenID for Google Apps - Account Authentication API - Google Code | |
| http://code.google.com/intl/ja/apis/accounts/docs/OpenID.html | ||
| [8] | Windows Live ID Becomes an OpenID Provider - Windows Live | |
| http://winliveid.spaces.live.com/Blog/cns!AEE1BB0D86E23AAC!1745.entry | ||
| [9] | mixi Developer Center (ミクシィ デベロッパーセンター) OpenID Membership Authentication Method Draft-1 |
|
| http://developer.mixi.co.jp/draft/openid-membership-authentication-method-draft-1 | ||