使って広がるOpenIDの輪
第1回:2行で簡単Identifierをはじめよう
著者:はてな 水野 貴明
公開日:2007/12/6(木)
OpenIDってなに?
最近、OpenID関連の話題を耳にすることが多くなってきました。OpenIDとは一言でいえば「外部の認証システムを利用するための共通仕様」です。本連載では、このOpenIDについて、その仕組みや活用方法を実際に実装を行いながら解説していきます。
世の中には、ユーザ登録(アカウント取得)をしてログインすることで利用可能となるサービスが数多く存在します。これらのログインシステムは「そのサービスの中で利用するためのもの」で、外部のサービスがそれらのログイン情報を知ることはできません。
しかし時には、あるサービスのアカウントを他のサービスでも使いたい、という場合がでてきます。例えば、あるblogサービスに掲載されているエントリに対してコメントを残したいケースです。もし自分がそのサービスのアカウントを持っていないにもかかわらず、ゲストとしてではなく「きちんと自分が誰であるかを証明した上でコメントしたい」と考えたとき、どうすれば実現できるでしょうか。
OpenIDではこれらを実現するための仕組みを提供する技術です。それぞれがOpenIDに対応しているはてなとLivedoor間で、相互のアカウントを使って「ログイン」をすることができるようになるわけです。
こうした仕組みは、いわゆる「認証API」などと呼ばれており、Googleや米国のYahoo!、さらに国内ではlivedoorやはてな、paperboy&co.などで提供されています。
図1:一般的な認証APIとOpenIDの違い
(画像をクリックすると別ウィンドウに拡大図を表示します)
同じ認証APIに対応しているサービスのアカウントを取得していれば、他のサービスでも利用できる可能性があります。しかし認証の手順は認証APIごとにまちまちで、すべてのサービスに対応していくのはなかなか大変です。
OpenIDは、サービスに依存しない共通の認証の仕組みとしてルール決めがされており、上記の「可能性」を現実のものとしてくれます。例えば、はてなやlivedoorはアカウントをOpenIDとして利用できる仕組みを提供しています。
世界のどこかで提供されているサービスがOpenIDを利用したログインの仕組みを用意していれば、はてなやlivedoorのアカウントを利用してそのサービスにログインをすることも可能です。たとえそのサービスを作った人がはてなやlivedoorのことを知らなかったとしても、まったく関係ないのです。
まとめると、OpenIDの目的は「アカウント利用側は複数の仕組みに対応する必要がなく楽になる」と「アカウント提供側はOpenIDに対応するだけでさまざまなサービスから利用してもらえる」ことの2つだといえるでしょう。
では、OpenIDではどのような仕組みで共通の認証を行っているのでしょうか。 次のページ