Eran がエントリ書いてました。
http://hueniverse.com/2010/05/introducing-oauth-2-0/
今回の内容は翻訳ではありません。
読みながら感じたことを書き連ねたものです。
■ なぜ新しいバージョンを考え始めたのか?OAuth 1.0aの課題
Eranは3つのポイントを挙げています。
- Authentication and Signatures
OAuthの実装にわずかでも関わった開発者が感じるのは、署名が面倒だということではないでしょうか?
twitterでBasic認証からOAuth/xAuthへの移行に苦労されている開発者の方もいると思いますが、やっぱり工数かかりますよね。
(まぁ、それでも独自でSP達が全部考えた仕様にかなり作りこんで対応するよりは、まだましかとおもいますけど?)
これを、HTTPSを使ってSecretそのままでとことん簡単にしよう!ってのがOAuth WRAPだったりします。
が、言い出しっぺのFacebookはいつのまにかOAuth 2.0の仕様にのっとっていたりします。
- User Experience and Alternative Token Issuance Options
AccessTokenを取得するまでの流れをフローと読んでいます。
twitterのOAuthの普及状況でもわかるとおり、Webアプリに比べてClientアプリなどではまだまだフローの最適化が行われているとは感じることもあります。
一方、Facebook Connectは以前から、様々な環境でFacebookのデータにつながる/データを使う仕組みがありましたねと。
- Performance at Scale
OAuthで最終的にデータにアクセスする際にAccessTokenを使うわけですが、
"誰が"、"誰の"、"どのデータに"、"いつまで"アクセスしていいのかを含み、SPはその有効性を全てのAPIアクセスで確認しなければなりません。
これ、大きなSPだとけっこう大変なんじゃないですかと。
また、そんなTokenの有効期限がアフォみたいに長いのはセキュリティの観点からも(署名してるとはいえ)盗まれた時のリスクとか大きいんじゃないの?
なんてことも言われていました。
■ OAuth 2.0ではこうなる!
□ 6 New Flows
以下のようなパターンを考えて、Access Token取得までの流れを定義しています!
- User-Agent Flow : JSで処理するようなUA上で処理が完結する
- Web Server Flow : 前からあるサーバ間の直接通信が可能なWebアプリが使う
- Device Flow : いわゆるクライアントアプリ用。ここが今後の課題だと思う
- Username and Password Flow : twitterのxAuthみたいなもの。定義しちゃうのか。。。
- Client Credentials Flow : これは、2leggedかな
- Assertion Flow : SAMLみたいな
OAuth WRAPあたりのアイディアが入って、すっきりしているものもあります。
□ Bearer tokens
一意なSecretがないTokenのことですね。
User-Agent Flow中心に使われるのでしょう。
FacebookのJSフローやtwitterの@anywhereのAccess Tokenはこの形式ですね。
□ Simplified signatures
シンプルにしました!らしいです。実際どうなっているかというと、
Signature Base Stringが"タイムスタンプ","nonce","ハッシュの形式","HTTP method","hostname+port","URI"で、それをhmac_sha256すればいいのです。
□ Short-lived tokens with Long-lived authorizations
Y!(米も日も)が導入しているOAuth Session Extensionのように、Refresh Tokenを用いたAccess Token更新がWRAPあたりからオプションで入りました。
OAuth 2.0でもオプションで入るでしょう。そしてtwitterやFacebookは使わないでしょう。
□ Separation of Roles
これは、SPがAuthZも受けるしリソースも持っているっていう定義だったのを、定義の時点で分離したってことですね。
■ OAuth 2.0はいつ決まるのか
Fixは年末でしょうかね。
OAuthはOpenSocialとの絡みとかもあるので、慎重にやってもらいたいですね。
■ 動画
Joseph Smarrのコメントにあるように、これも見る価値ありそうですね。
http://www.thesocialweb.tv/blog/2010/05/f.html
■ 次のネタ
今のドラフト時点のOAuth 2.0仕様解説かな。