Blog

Open ID

2007年12月28日

最近ちまたで話題のOpen IDについての記事を書いてみたいと思います。具体的にOpen IDとは何かから、デベロッパーの立場からどのようにOpen IDに対応したシステムを構築するかという視点でまとめてみたいと思います。

この記事の内容

Open IDとは何か

オープンソースの技術であり、複数のWEBサービスで共通で使用できるIDのサービスです。開発元はOpenID.netという団体です。開発者は元シックスアパートに在籍していた方だそうです。

国内でOpen IDに対応しているサービスではlivedoorやはてな等のサービスで利用できます。Open IDを発行している国内のサービスで代表的な所として韓国のIT企業のAscent Networkが運営しているOpenid.ne.jpなどがあります。

Open IDの仕組み

Open IDを具体的に説明すると、Openid.ne.jpといったIdentity Provider(ID認証サーバーの運営元)がOpen IDを発行し、サーバーで固有のIDを管理することによって様々なサービスを一つのIDで利用できるというものです。IDはhttp:www/ではじまるURLの形になります。

また、独自でサイトを運営している場合、サイトのURLをOpen IDとして利用できます。独自のサイトのURLをOpen IDとして利用する場合、Identity Providerに認証を行わなくてはなりません、そこでHTTPプロトコルのリクエストヘッダでIdentity Providerに認証を送信します。

例えば、Openid.ne.jpを利用した場合は自分のサイトのhead内に以下の記述を足します。

<link rel="openid.server" href="http://www.openid.ne.jp/user/auth" />
<link rel="openid.delegate" href="http://yourid.openid.ne.jp" />
<meta http-equiv="X-XRDS-Location" content="http://yourid.openid.ne.jp/user/xrds" />

簡単に説明するとopenid.serverでIdentity Providerに認証を送信するという意味です。外部のIdentity Providerに認証を送信する場合はopenid.delegateを指定します。

Open ID対応のサービスを構築するには

Open ID対応のサービスを構築するにはサーバーサイドのプログラムを利用して構築します。例えば有名なCMSやフレームワークではOpen ID対応のログインフォームなどの対応が結構進んでいます。

PHPでPHP-OpenIDライブラリを利用する方法
Think It:IdPサンプルでログイン機能を実装
Ruby on RailsでのOpenID認証のプラグインを利用する方法
ma2の日記:railsでOpenID認証
XOOPSのOpenIDモジュール
XOOPS Cube日本サイト :OpenIDモジュール
MTでOpen IDのIdentity Provider(ID認証サーバ)を構築してOpen IDを利用する方法
Six Apart : Movable Type プラグインディレクトリ: Open ID Server for MT

MT(Movablrtype)で自分のサーバーでID認証サーバを構築できるのはおもしろいですね。かなり簡単にできるっぽいのでぜひ今度トライしてみようと思います。