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認証サーバを構築できるのはおもしろいですね。かなり簡単にできるっぽいのでぜひ今度トライしてみようと思います。