OpenIDを個人のWebサイトで活用する
個人のWebサイトでOpenIDを活用する方法を考えてみます。
IDとパスワードによる認証では、サービス提供者と利用者の間で秘密情報(パスワード)を共有しておく必要があります。共用パスワードを使ったり、利用者に初期パスワードを発行したりしていると思います。前者は本人性が確認できない問題があり、後者は利用者の手間が大きい問題があります。
必ずしもサービス提供者が秘密情報を保持しておく必要はなく、秘密情報による本人識別は他者に委譲できます。認証をIdPに委譲することで、サービス提供者はIDのみ知っていればよく、認可のみ実装すればよいことになります。
例:mixiにいる友達の間でWikiを共有する
デザインや拡張性の問題で、自前でWikiを立てている人も多いと思います。例えばPukiwikiではpukiwiki.ini.phpにIDとパスワード(のハッシュ)を書く必要がありますが、OpenIDでは既存のIDを書くだけで済みます。
OpenIDに対応していないWikiサービスだと個別にアカウントを取ってもらう必要があります。mixiのように十分なWebリテラシーを求められない世界では、操作性の点でシングルサインオンが重要になります。mixi上の「友達まで公開」と同様のことができれば、情報共有がやりやすくなります。
リアル世界のつながりで意味を持つ話かもしれません。
既存のWebアプリがOpenIDに対応するまでの「つなぎ」
アプリケーション層がOpenIDに対応するには手間と時間がかかります。そこで、サービス提供者と利用者の間に1つの層を置くことで、容易にアクセス制御を実現できます。Apacheにモジュールを組み込んだり、リバースプロキシを配置するといった方法があります。
モジュールの組み込みもリバースプロキシの配置もできないようなレンタルサーバ環境で上記を実現する仕組みを考えています。具体的には、アプリケーション層でリバースプロキシを実装します。サービス提供者から見ると、OpenID Layerをインストールしてちょっと設定するだけでアクセス制御が可能になります。