と言う訳でついに来ましたね。

中の人、お疲れ様でした。

実はさっきまで mixi に行って技術的な意見交換などしてきました。mixi OpenID の技術的な側面なんかを簡単に紹介したいと思います。

ミクシィ認証

これは普通の OpenID Provider の挙動と同じです。僕のアカウントは http://mixi.jp/show_profile.pl?id=29704 なので僕の OP Local Identifier は、

https://id.mixi.jp/29704

ここでお気づきの方も居るかと思いますが、OP Local Identifier 自体も https で提供されています。さて最初の html の内容を確認しておきます。

< link href = "https://mixi.jp/openid_server.pl" rel = "openid2.provider" title = "[mixi] mixi OpenID" /> < link href = "https://mixi.jp/openid_server.pl" rel = "openid.server" title = "[mixi] mixi OpenID" />

OP Endpoint URL も https で提供されてますね。ついでに Yadis にも対応との事なので試してみます。

$ lwp-request -m HEAD https://id.mixi.jp/29704 | grep XRDS X-XRDS-Location: https://mixi.jp/xrds_signon.pl

と返ってくるので、

$ lwp-request https://mixi.jp/xrds_signon.pl

を実行して、

xml version = "1.0" encoding = "UTF-8" < xrds XRDS xmlns xrds = "xri://$xrds" xmlns openid = "http://openid.net/xmlns/1.0" xmlns = "xri://$xrd*($v*2.0)" > <XRD> <Service priority = "0" > <Type> http://specs.openid.net/auth/2.0/signon </Type> <Type> http://openid.net/sreg/1.0 </Type> <Type> http://openid.net/extensions/sreg/1.1 </Type> <Type> http://openid.net/srv/ax/1.0 </Type> <URI> https://mixi.jp/openid_server.pl </URI> </Service> <Service priority = "1" > <Type> http://openid.net/signon/1.1 </Type> <Type> http://openid.net/sreg/1.0 </Type> <Type> http://openid.net/extensions/sreg/1.1 </Type> <Type> http://openid.net/srv/ax/1.0 </Type> <URI> https://mixi.jp/openid_server.pl </URI> </Service> </XRD> </ xrds XRDS>

AX や SREG に対応していると言う主張されているのが分かります。一点思ったのはユーザごとに XRDS 文書を提供してもいいんじゃないのかなと思いました。と言うのも http://mixi.jp/ に対してディスカバリかけた時も同じ XRDS に行き着くからです。まぁ、いつでも代えられるだろうし、そうでなければならない理由も特に無いのでいいですけどもｗ