故あって、WordPress2.8.5にopenidプラグインを導入していろいろ試しています。
ふと「どのOPのアカウントでもこのプラグインでログインしてコメントちゃんと書けるのかな」と疑問に思ったので、各種OPで実際に試してみました。
因みにこのopenidプラグインはOpenID2.0にも対応しWordPressも2.8.5でも動作しています。JavaScriptは必要ですが標準のコメントフォームを変更しなくても動的にOpenID対応にしてくれる優れものです。
myOpenID
myOpenIDは3rd PartyのOpenIDプロバイダーです。自分でOpenID OPなんて立てられないけど独自ドメインでOpenIDを使いたい人が多く利用しています。
僕もその一人で、実際には自分のドメインに紐付けて以前から使っています(と言ってもテスト利用ぐらいですけど)。
他に似たようなプロバイダーとして、openid.ne.jpなどもありますね。
利用はOK。
上記のような感じで、ユーザー名(ここでは実際には返却されたIdentifier)としては設定した独自ドメインのサイトURLを返却します。プロフィール設定(Persona)ではちゃんとニックネームとか指定しているんですが、無視されるようです。
但し以下で述べるような集中管理されているOPとか違い雑多なサイトが多数独自ドメインとかで利用しているので、この方がmyOpenIDとしては相応しいかも知れませんね。
Yahoo! Japan
国内最大級のOpenID OPと言えばYahooですよね。
しかし残念、リダイレクトなどはうまく行き、Yahoo側での認証やClaim処理も正常なんですが、最終的にサイトへ帰ってきた際に投稿に失敗してしまうようです。エラーも出ないし詳しく調べる気もなかったので原因は不明。
返却値はこんな感じ。
ありゃ、これではたとえ成功していてもユーザーのアイデンティティを確認するには面倒で使い物にはならないですね。
但しここのデリゲートの説明なんかを見ると、そもそもYahooはmyOpenIDのように代理機能として使用されることを想定しているのかなという気もします。であればこのような可読性の無いIdentifierでもいいと言えばいい(実際にはブログのURLなんかがIdentifierとしては見えることになるから)という気もします。
なおOP Identifierは’yahoo.co.jp’です。一度実行されると上記のような長いURLに変換されて以降そちらでも利用可能です。
追記
実はコメントがスパムとしてマークされていただけでした(^^;
なので動作自体に問題はありません。
世界最大のOPと言えばGoogleでしょうね(いや、facebookかな?)。
しかしながら残念な結果に終わりました。
Yahooと同じようにランダムな文字列を返却されています。残念ですがコメント欄としては使い物にはならないですね。
なおOP Identifierは’https://www.google.com/accounts/o8/id’です。
MySpace
本当はFacebookで試したかったのだけどFacebookのIdentifierが分からなかったので、MySpaceで。
MySpaceのTiny URLがIdentifierになっていますね。これはこれでありかな。但し、OpenID OPを認証には使いたいんだけどどのサイトを利用している誰なのかなどの身分は隠したい、みたいな場合には向いていないかも。
OP Identifierは’myspace.com’。
はてな
MySpaceと同じくTyny URLです。
はてな的にはユーザーIDだしこれでいいのかも知れんなぁ。多分みんなニックネームとかで発言されても誰だか分からないだろうし。
OP Identifierは’www.hatena.ne.jp/(ユーザーID)/’。
livedoor
すっかり忘れてましたが、livedoorもOPなのでした。
少し変形に見えますが、これもプロフィールページのTyny URLです。
OP Identifierは’livedoor.com’。
mixi
おっ、初めての成功パターンと言ってもいいでしょう。名前がニックネームになっています。
実はOpenIDには拡張仕様(SREGやAXと呼ばれます)があって、RP(ここではWordPressのサイト)がどのような拡張情報が欲しいか求めることができます。その中にニックネームもあるのですが、この結論から言えるのは、このopenidプラグインは実は常にニックネームも要求していること、他のOPは対応しないがmixiだけはこの拡張仕様に対応していること、が分かります。
実際、mixiの仕様ページにもその旨の記載がありました。
openidプラグインはニックネームが返ってきたので、Identifierではなくニックネームを名前として利用できた、ということなのでしょう。
なおOP Identifierは’mixi.jp’です。
まとめ
勘違いして欲しくないのですが、ではOpenID OPとしてmixiだけが優秀でGoogleやYahooは駄目かと言うとそういうことでもないのです。
上記では返却されたIdentifierをベースにランダムだから駄目だと話してはいますが、これはブログのコメント欄にそのまま適用すればという話に過ぎず、それはそのままOpenID OPとしての優劣ではありません。
例えばOpenID対応サイト(OpenIDでログイン可能なサイト)では、これら返却されたIdentifierをベースに自身のサイトのローカルユーザーと紐付けるキーとして使うだけなので、何ら問題にはならないのです。
ただブログのコメント欄からすると、そのような紐付けをいちいちすることはなく、Identifier(またはニックネームなど)をそのまま使うのが都合が良いので、そういう意味では確かにmixiのニックネームがユーザーには一番優しくて、GoogleやYahooでは使えない、ということにはなるでしょうね。
ここでの技術的な側面からの結論としては、コメント欄としてはnicknameはできれば欲しいので、そういう点ではmixiがSREGまたはAXに対応しており相応しいということにはなるでしょう。
但し恐らく実装側としては悩ましいところがあり、つまりOpenIDと一口で言っても様々な適用シーンがあり得る、ということです。
GoogleやYahooがIdentifierとしてユーザーIDなどを与えていないのは、恐らく必要以上の情報を提供するのを避けているのでしょう。先に書いたとおり、単にシングルサインオンとして使うのであればそれで問題は無いからです。しかしこれをコメント欄に適用しようとすると相応しくなくなるということです。
逆にmixiのようにニックネームを返却してくれる場合には、それだけ情報を漏洩している(ここではたかがニックネームですが)OPということもできます。
この問題はよく考えると恐らく根深くて、実際のところどのような使われ方をされるかOPはわからない訳なので、ここが各社の考え方で大きく異なってくるところなのでしょう。
そもそもすべての利用シーンを最初から想定はし難い訳なので、結局のところユーザーがどこまで自分の情報を提供するかを選択したり、あるいは信頼度によって取り扱いを変えられたりする仕様などがそろそろ必要とされているのかも知れません。
ここをクリアできないと、OpenIDは実用段階までは進まないような気がするんですよね。