SxipがDreamforce (Salesforce.com の展示会)で、federated authentication のデモをした(記事参照)。これは、どこか別のところで認証(Authentication)を受けて、その情報を使ってサービス提供を受ける(Authorize)というフレームワークで、国際標準としてはSAMLがあり、ベンダー技術として Sxip などがある。なお、その他のオープンソースの努力として OpenID (TypeKey後継), LID などがある。(なお、このような Federation 自体は別に珍しくない。たとえば昨年のXoops Conferenceなどでは、TypeKey と Xoops の連携のデモがされているし、2002年かな?のPlanetWorks ではXRIベースのものがデモされている。)
もうすこし詳しく解説すると、一般的なASPベンダーはサービスを提供するのであって、認証を提供するのではない。認証(Authentication)は、各Identity Holderがやればよい。そして、Assertion をもってサービスを受けに行くわけだ。その Assertion に対してサービスを提供するかどうかは、Service Provider 側の決定。これが、Authorization である。問題は誰がそのAuthenticationを受けるIdentityを提供するかということだ。
Theirdentity, Ourdentity, Mydentity という言葉をご存知だろうか?3年前の Digital ID World での Doc Searls の講演で出てきた言葉だ。
Theridentity は、企業などが勝手に私たちに割り当てている ID。顧客データベースの中の顧客番号などがこれに当たる。ダイレクトマーケティングなどで使うのが目的であって、私の情報でありながら私は使うこともできない。
Ourdentity は、社員番号や銀行の口座番号など、われわれも恩恵を受けることができるID。ただし、提供者は会社であったり銀行であったりするので、管理権は我々には無く、あるとき勝手に一方的に削除されたりする。
これに対して Mydentity は、自分で管理する Identity である。たとえば自分でドメインを取って、メールアドレスを自分に発行したような場合、そのアドレスは Mydentity である。理想はこの mydentity を使って、サービス提供がされる各所で authorize をうけることができるようにすることだ。
世の中の流れは Mydentity に向かっているはずで、これこそが Identity 2.0 といってもよいだろう。
ところが、この管理をセキュアにやるのはは案外難しい。だから Web Hosting 見たいな感じで Identity Hosting という考え方が出てくる。Identity Hosting 業者は単に管理委託を受けているのであって、そのIdentity自体に権利を持っているわけではない。ただし、この場合、Identity Hosting をやる人・会社の信用度や、そこがつぶれたときの対策などが必要になる。XDIORGでやっているのは、そういうところである。統一の運用ルールを作って、必要ならばひとつのHosting業者(Identity Brokerと言っています)から他に移れるように、また、その業者が突然死しても大丈夫なようにエスクローをする、保険はこういうのに入らなきゃダメ、とか、契約・規約の整備などもろもろのことだ。こういったことがされていないと、広くそのIdentity framework を使うことはできないはずである。あまり安易に技術面だけで考えるべきではない。
なお、技術的にはSAMLだけでは不十分で、a priori に定まっていない circle of trust のメンバーを resolve し、その信用度(reputation)を測るフレームワークが必要だ。そのひとつとして、XRI/XDIがある。これは、delegation のフレームワークを内蔵したURNスキームで、Yadisの中核技術になっている。OASIS Open で標準化を進めており、SAMLのEvangelist の Peter Davis なども参画している。
さて、このSxipのブログ、SAMLでは重すぎてたとえばBlackberryからは使えないとSxipを売り込んでいる。本当にそうだろうか?単に現状のSAMLの実装が重いだけなのではないだろうか?
現在私のところでは、R&Dの一環でApacheモジュールとしての mod_saml みたいのも一応作っては見ている。これは、SAML Assertion Provider と SAML Assertion Consumer のパーツがあって、Consumer 側は Assertion を受け取ると、その情報を環境変数に入れてしまうので、Web Application 側はSAMLを意識せずに、あたかも Basic Authentication 見たいな感じで使うことができるというものだ。こういうものがあれば、とても便利にSAMLを使えるようになるのではないかと思うのだが、皆さんはどう思われるだろうか?
>あたかも Basic Authentication 見たいな感じで使うことができる
それは良いんじゃない!
でも、そもそも「自分で管理する Identity」とは、具体的にどんな日常シーンになるのかをもうちょい把握したいような。
重田と申します。
> OpenID (TypeKey後継)
OpenIDはTypeKeyの後継ではありません。
確かにTypeKeyはOpenIDをサポートしていますので、OpenIDのサーバとしても機能しております。
またOpenIDの仕様を立ち上げたのもLiveJournal(Six Apartの傘下)のメンバなので、OpenIDがTypeKeyの後継に見えるのも無理はありません。
しかし残念ながら別のものと考えていただいた方が良いです。
TypeKeyはSixApartが管理するサーバで認証する集中型の認証サーバ、OpenIDは誰か(企業や集団など)が集中的に管理するのではなく誰でも認証サーバを持つことができる分散型の認証サーバを利用しますので、その性質も全く異なるものです。
重田さん、ありがとうございます。
実は、OpenIDはTypekeyの課題を解決するために考案されたというような意味で後継と書いたのですが、あまりに不正確と思い書き換えようと思っていた矢先でした。あと、SxipもOpenIDに統合されるようですし、そのあたりも書き換える必要がありますね。