Hatena::ブログ(Diary)

r-weblife RSSフィード Twitter

2009/09/10

[]Y!IncのOpenIDがPop UpとHybridに対応!

米政府がなんとかいう記事が出てましたが、それと時を同じくしてY!IncのOpenIDがUI,OAuth Extensionへの対応をしたようなので、まとめておきます。

■ Discovery

yahoo.comをDiscoveryすると、たくさんの拡張に対応しているようです。

もちろん、全ての拡張を一般開発者が作成したRPに提供しているわけではなく、ホワイトリスト形式で提供しているものもありそうです。

$ curl http://open.login.yahooapis.com/openid20/www.yahoo.com/xrds
<?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>
      <Type>http://specs.openid.net/extensions/pape/1.0</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>
      <Type>http://specs.openid.net/extensions/oauth/1.0</Type><Type>http://specs.openid.net/extensions/ui/1.0/lang-pref</Type><Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type><Type>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier</Type><Type>http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf</Type><Type>http://www.idmanagement.gov/schema/2009/05/icam/openid-trust-level1.pdf</Type><Type>http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf</Type><URI>https://open.login.yahooapis.com/openid/op/auth</URI>
    </Service>
  </XRD>
</xrds:XRDS>

今回対応が始まったExtensionについては★のあたりです。

OpenID UI Extension

<Type>http://specs.openid.net/extensions/ui/1.0/lang-pref</Type>

<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>

Googleとは異なり、icon対応はしていないようです。

OpenID OAuth Extension

<Type>http://specs.openid.net/extensions/oauth/1.0</Type>

下の4個については、少し前から導入していたようですが、この辺の記事と関係があるもののような気がします。

<Type>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier</Type>

<Type>http://www.idmanagement.gov/schema/2009/05/icam/no-pii.pdf</Type>

<Type>http://www.idmanagement.gov/schema/2009/05/icam/openid-trust-level1.pdf</Type>

<Type>http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf</Type>

こちらをちゃんと解説するには少々勉強が必要なので、もう少し時間をください。。。

■ Pop Up : UI

それでは、実際に画面を見てみましょう。

動作確認用のURLはこちらです。

ちがうのはこのパラメータがついてるかどうかです。

&openid.ns.ui=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fui%2F1.0

&openid.ui.mode=popup

しかし、今試した範囲では、Extensionのパラメータつけてもつけなくてもpop upでいけるような小さい画面になってました。

そういえば、MySpaceも同じような仕様です。

Login Pageはこうなります。

f:id:ritou:20090911013753p:image

ログイン画面はすごくシンプルですね。

左側にRPの名前、RPにサインインするんだってことが説明してあります。

その次は、Consent Pageが表示されます。

f:id:ritou:20090911013754p:image



■ Language Preference : UI

いちおう、Language Preferenceのほうも試してみましょう。

こんなパラメータをつけてやります。

まずは、イタリア語を指定。

&openid.ui.lang=it-IT

f:id:ritou:20090911013755p:image:small

次は、フランス語を指定。

&openid.ui.lang=fr-FR

f:id:ritou:20090911013756p:image:small

詳細はここ見てください。

Implementers’ Draft: OpenID User Interface Extension 1.0 - DRAFT 0.5

■ UI Extension : AuthN Flow

認証フローに変更はありません。

Y!に未ログイン : RP Page → Y! Login Page → Y! Concent Page → RP return_to page

Y!にログイン済み : RP Page → Y! Consent Page → RP return_to page

ここは、Googleと似ています。

■ OAuth Extension : UI

Hybridのほうも、実際に画面を見てみましょう。

こんなパラメータをつけます。

&openid.ns.oauth=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Foauth%2F1.0

&openid.oauth.consumer=(ConsumerKey)

動作確認用URL

Login Pageはこうなります。

f:id:ritou:20090911013757p:image

これまたログイン画面はすごくシンプルですね。

でも、Consumerの名前とProfileのデータを渡すことは示しています。

Consent Pageはこうなります。

f:id:ritou:20090911013758p:image

ここでは、Consumerの名前、アクセスさせるデータが表示されます。

おそらく、Yahooではrealm/return_toとConsumerKey登録の際のドメインを確認していると思われます。

■ OAuth : Authentication Flow

こちらの認証/認可画面はOpenIDよりも本人確認が厳しいものになっています。

Y!に未ログイン : RP Page → Y! Login Page → Y! Consent Page → RP return_to page

Y!にログイン済み : RP Page → ★Y! PW Verify Page★ → Y! Consent Page → RP return_to page

Y!Incは少し前に、OAuthのUIをシンプルなものに変更しました。

今回はそちらと揃えてくると思いきや、また別なデザインになりました。

きっと、どこかでfacebook/MySpaceのような1枚の画面にできない理由が出て来たのでしょうか。

もしかして、OAuthもそのうち2枚の画面にデグレする?どうなるのかわかりません。

■ まとめ

画面サイズは小さくなり、Hybrid対応という点ではGoogle,MySpaceに追いついた。

しかし、Facebookのように1画面で処理が終わらせることは難しそう。

Hybridにしてまで使わせたいAPIってなんだろう?

今の流れからだとActivityStream?ということはUpdates APIとの組み合わせによる効果を期待しているのかな。

■ 残課題

  • XRDSに記載されている他の拡張の調査
  • Gitにあげてるサンプルコードの修正
  • OAuth Extensionのサンプルコード作成
  • idconの準備

やることたくさんありますね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証