OpenID と delegate の設定

なんだか Yahoo! さんも OpenID プロバイダをはじめるらしく、にわかにざわめきたっている OpenID。 インターネット上のシングルサインオンシステムですが、まぁ今は OpenID プロバイダばっかりたっていて、実際に使える Web サービスが少ないのでたいして身近ではないかもしれません。。

一応、OpenID ってなんだって話を書いてみると、

  • 今は各 Web サービスに、パスワード等の情報をあずけているが、これを外部1つのサーバ (OpenID プロバイダ)に任せよう。
  • 各 Web サービスにログインするときに使うのは、OpenID プロバイダから発行されたユーザIDを入力、パスワード等の認証はいっかい OpenID プロバイダの画面に飛ばされてそこで認証。 できたら、各 Web サービスに画面戻る。

見た目はこんな感じになります。 あっちこっちにパスワード登録しなくてすむのが、一番身近な利点かも知れません。

またいまはできる OpenID プロバイダは少ないですが、Web サービスからの要求によって、登録しているニックネームとか他の付加情報も渡すことができます。(はてなはログイン可否しかとれないみたい)

要は、(できるかしらないけど)住所とかを OpenID プロバイダに登録しておけば各 Web サービスはそこから情報をとるので一元管理できる。 引っ越しも安心って感じです(あくまでイメージ) もちろん、Web サービスに情報を渡すかどうかとかは、OpenID プロバイダの管理画面で細かく設定できるよう、、な仕組みが、、あるはず。。 🙂

国内では、はてなとか Livedoor とかが OpenID プロバイダサービスをやっていて、たとえばはてななら、

http://www.hatena.ne.jp/h1romas4/

こういうのが、OpenID のユーザ名になります。 URL なんです。 URL を使っているおかげで、全世界でユニークな ID となります。 これを OpenID 対応 Web サービスの、ログインフォームのユーザ名に入力します。

で、書きたかったのは OpenID のひとつの機能である delegate という機能。 代理、、ですね。

もし、自分が Web サーバをもっているのならば、そこの URL にちょっとした細工をするだけで、その URL を OpenID として使うことができます。 ドメインを持っていれば、自分のドメインが ID として使えるのです。

これはとても簡単で、設定したい URL にアクセスしたときに返す HTML の head に次のように、ホントに自分の使っている OpenID プロバイダの情報を書くだけです。

   1: <html>
   2: <head>
   3:     <link rel="openid.server" href="http://www.hatena.ne.jp/openid/server" />
   4:     <link rel="openid.delegate" href="http://www.hatena.ne.jp/h1romas4/" />
   5: </head>
   6: <body></body>
   7: </html>

もちろん、ただの HTML なので、あとの部分にふつうにページをつくってもかまいません。

この HTML を index.html として、たとえば、

http://openid.maple4ever.net/hiromasa/

でアクセスできる領域に FTP しておけば、この URL を自分の OpenID として使えます。 実際に認証してくれるのははてなの OpenID です。

例は、わざわざ openid ってホスト名をつけてたり、URL に /hiromasa/ とかつけてて長ったらしくなっていますが、もちろん打ちやすいように短くしてもいいですし、たとえば WP のサイトそのものの URL にしてもいいでしょう。(WP サイトのhead に上記をいれてくれるプラグインもあるようです

こうしておくと、ドメインを持っている限り永久に同じ ID をつかえるし、実体の OpenID プロバイダが気にくわなくなってのりかえたり、つぶれちゃったときも、HTML で代理先を書き換えるだけで済み、 ID そのものを変更する必要がなくなります。 また、自分のドメインだから覚えやすい。 🙂

また、サイトの URL そのものが ID になるというトリック(?)を使って、面白いサービスが出てくるような気もします。

てなかんじで、まだ流行るか分からないですけど、もしデファクトになるようなことがあったら、 delegate してみてください。 😛

コメントを残す