日向夏特殊応援部隊

俺様向けメモ

Windows Live ID の OpenID を試してみたよ

先月末から Community Technology Preview と言う形で Windows Live ID が OpenID Provider サービスを提供しているので試しに使ってみました。

ちなみに 2.0 のみ対応と言う形式みたいです。

まずは取得

最初にテストアカウントを作らねばならないみたいです。https://login.live-int.com/ に飛んで Sign Up しないとダメっす。一通りサインアップが終わったら https://login.live-int.com/beta/ManageOpenID.srf で自分の OP Local Identifier の alias を定義します。とりあえず僕の場合は、http://openid.live-int.com/zigorou としました。

XRDS を見てみる

OP Identifier である "openid.live-int.com" に対して。

$ lwp-request -S -e -d -H "Accept: application/xrds+xml" http://openid.live-int
.com/ | grep "X-XRDS-Location"
X-XRDS-Location: http://openid.live-int.com/OpenIDXRDS.srf

とのことなので、

$ lwp-request http://op-e http://openid.live-int.com/OpenIDXRDS.srf

とすると、

<?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/server</Type>
    <URI>https://openid.live-int.com/OpenIDAuth.srf</URI>
    <LocalID>http://specs.openid.net/auth/2.0/identifier_select</LocalID>
    </Service>
  </XRD>
</xrds:XRDS>

次に OP Local Identifier である http://openid.live-int.com/zigorou に対して、

$ lwp-request -S -e -d -H "Accept: application/xrds+xml" http://openid.live-int
.com/zigorou | grep "X-XRDS-Location"
X-XRDS-Location: http://openid.live-int.com/OpenIDXRDS.srf?oidn=zigorou

なので、

$ lwp-request "http://openid.live-int.com/OpenIDXRDS.srf?oidn=zigorou"

とすると、

<?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>
      <URI>https://openid.live-int.com/OpenIDAuth.srf</URI>
      <LocalID>http://openid.live-int.com/zigorou</LocalID>
    </Service>
  </XRD>
</xrds:XRDS>

って感じ。

anonymous alias がいい感じ

OP Identifier 使った identifier_select による認証の場合、

にあるように、anonymous alias が選べます。これはどうやら RP ごとにユニークな値が使えるみたいなんで名寄せに強いものだと言えます。*1

まとめ

Windows LiveID の OP 実装は、サインアップの時のフローとかが微妙な気がする点を除けば、普通の OP って感じです。OP Endpoint URL もちゃんと https 使ってますし。
anonymous alias もきちんと考えて作られてるので、プライバシーが云々言う人への配慮もきちんとされてる模様でございます。

*1:以前 Yahoo! がそうじゃないかと言う誤報があったやつ