OpenIDについて調べた


最近やっと、OpenIDというものの存在を知りました(遅い!)。

自分のブログURLをIDで使える!―OpenID.ne.jp(オープンアイディー)

ちょっと調べてみました。

概要

いわゆるSSO(シングルサインオン)サービスです。

  • 単一のID/パスワードで、複数のWebサイト(Consumerと呼ぶ)にログインできるようにする。
  • パスワード情報は認証サーバ(IdPと呼ぶ)で一元管理する。

ユニークなのは、自分のHPのURLをIDに使うところです。

大まかな仕組みは以下のようなものです*1

  • ユーザは、事前にIdPにパスワードなどを登録しておく。
  • 自分のHPのLINKタグに自分の使うIdPを記述する。
  • ユーザがConsumerに自分のID(HPのURL)を提示すると、ConsumerはHPのLINKタグを読んで、そのIdPのURLにリダイレクトする。
  • ユーザはIdPの画面でパスワード認証を受けて、OKであればトークンを持ってConsumerのページにリダイレクトする。
  • Consumerはトークンでユーザを認証・識別して、サービスを提供する。

自分のHPを持っていなくても、openid.ne.jpで会員登録を行なうと、自分専用のHPをもらえます。


普及し始めているらしい

一般消費者向けのSSOサービスは、かつてはMSのPassportやLiberty Allianceなどが話題になりましたが、結局広く普及することはなく、今や消え去る寸前かと思っていました。

しかし、OpenIDの出現により、流れが変わったようです。

最近、AOL、MicrosoftWikipediaMovable Type、Firefox3.0 ... など有名な企業や製品が、OpenIDの採用を表明しています(O'Reilly Radar > Brady Forrestここギコ!を参考)。

一口に「OpenIDを採用」といっても、色んな形態があります。

AOLは、AOLの会員にOpenIDを与えるという形(AOLがIdPになる)で、OpenIDを採用するようです(参考)。これにより、AOL会員は、他のConsumerサイト(AOLを信用するサイト)に、AOLのOpenIDとパスワードでログインできるようになります。当面は、その逆(他のIdPのIDとパスワードでAOLにログイン)はさせないようです。

AOLがやろうとしていることは、ここ1〜2年で出てきた「認証API」の提供です。現状では、API提供者毎に認証APIの仕様が異なっていますが、これが「OpenID」で仕様統一されれば、Consumer側は楽になるでしょう。

OpenIDとSSO

いくつか思ったことをつらつら書きます。

OpenID
  • IDの公開性
    IDはWebに転がっている。
  • 固有ID
    ユーザは複数のConsumerで単一のIDを使う。Libertyなどとは違う。
  • HPの真正性に依存
    HPのサーバをハックするなどで、攻撃者がLINKタグを書き換えたら? HPのメンテナンス中は? URLが変わった時は?(この辺は不明)
  • HPとIDの結び付き
    ConsumerやIdPに自分のHPのURLを教えなければならない(それ専用のHPを使えば問題ないか)。
SSO一般
  • 多くのサイトで同一のID/パスワードを使いまわすよりは良い。
  • でも、IdPを一点突破されたらおしまい
  • IdPにはプライバシ情報が溜まる。
  • Consumer的には、外部(IdP)のセキュリティに依存することになる。
  • ユーザ・ConsumerにとってIdPは信用に足るか(責任を取ってくれるのか)。

先ほども書きましたが、かつてSSOは普及しませんでした。

その背景には、ビジネス上の問題(有力なWebサイトは会員を囲い込む)、情報漏洩などが発生した時の責任の問題、そしてコストの問題などがあったと思います。結果として、SSOが生き残ったのは企業内ユースだけだと思います。

OpenIDの今後

OpenIDは、標準化された簡易な仕様です。上記のSSOの問題のうち、コストについては改善されそうです。

しかし、それ以外の問題は残ったままのように思います。

SSOというと、Yahoo!Google楽天はてなも、同一のIDとパスワードで相互にログインできるようなイメージがありますが(私だけ?)、そんな風にはならないでしょう。

いくつかの大手サイトはIdPの役目を担うかもしれません。でも、外部のセキュリティに依存したくない大手ポータルや決済サイトなどが、他のIdPを受け入れるConsumerになるかは疑問です。

少なくとも当面、OpenIDで結ばれるのは、ブログやコミュニティサイトのように、比較的中小規模で、高いセキュリティを必要としないサイトだけなのだと思います(それだけでもメリットではありますが)。

リンク

http://www.openid.ne.jp/#a4 に仕様書へのリンクがありますが、Wikipediaの説明(en)の方が、概要をつかみやすいです。

*1:delegateの仕組みなどを省略しています。イメージと思って下さい。