増えすぎた OpenID をどう管理するか
昨日の GINZA TECH LOUNGE feat. OpenID でこんな質問を出した。
最近、OpenIDのアカウントも増えてきたので、どのアカウントでユーザ登録したのかを忘れてしまったことがありました…。
いろいろなサービスでOpenIDが使えるようになったのは嬉しいんだけど、所有している OpenID が増えるとどれで登録したのかが分からなくなってきたりする。 これに対してATNDの中の人は、「RP側で頑張るよりも下のレイヤーで仕組みがほしい」と回答していて、それはそうだよなぁと思ったのでちょっと考えてみた。
今のところ使っているアカウント。
- http://www.hatena.ne.jp/kmachu/ ← OpenID2.0に非対応…
- http://www.machu.jp/ ← はてなにdelegateしているのでOpenID2.0に非対応 / ホワイトリスト方式でNGになったり
- http://www.flickr.com/photos/machu/ ← 2.0対応。個人的には気に入ってるけど日本ではマイナー。
- yahoo.com ← 2.0対応。匿名IDなのであんまり使わない
- yahoo.co.jp ← Yahoo! Japanにあまりログインしないので使ってない
- http://profile.livedoor.com/k_machu ← 2.0対応。そういえばあんまり使わない
- mixi.jp ← まだ使ったことない
できれば Microsoft の CardSpace みたいに、これらをまとめて管理したい。 とりあえずできそうなことを、ちょっと考えてみたのでメモ。
IDを一つにまとめる
複数のIDを一つにまとめるには、XRDS文書を使えばいい。
このXRDSの中に、自分が使っているOpenIDの一覧を載せておけば、自分がどのIDを持っていたのかを忘れずにすみそう。
RP側の実装案
ユーザがOpenIDを入力し、RPがDiscoveryでXRDS文書を取得するときに、以下のような挙動だと面白いかも。
- XRDS文書の中に含まれるClaimed Identifierの一覧から、すでにデータベースに登録済みのIDがあれば、それに対応するOPを選択する
- そうでなければ、priority の一番高いOPを選択する(仕様通り)
希望
- 信頼できるサイトが「OpenIDおまとめサービス」とかで提供してほしい。URLも短く
課題
yahoo.co.jp や mixi.jp など、個人を特定できないOP Identifier のURLでログインするときは使えない。