ドラフトが上がってきたようです。
http://oauth.googlecode.com/svn/spec/core/1.0a/drafts/1/oauth-core-1_0a.html
OAuth Core 1.0をじっくり見たことのある人にとってはDiffのほうがわかりやすいかもということで、Diffはこちらです。
Google Code Archive - Long-term storage for Google Code Project Hosting.
wiki : OAuth Session Fixation Advisory - r-weblifeにある、OAuth / Signed Callback URLsの方になったということでしょうか。
OAuth実装してる人たち、心の準備はいいでしょうか?
ポイントとなるパラメータは次の2つです。
- oauth_callback
- oauth_verifier
■ oauth_callback
Current : User Authorization取得時に戻り先URLを含む
oauth_callback:
OPTIONAL. The Consumer MAY specify a URL the Service Provider will use to redirect the User back to the Consumer when Obtaining User Authorization (Obtaining User Authorization) is complete.
Rev A : Request Token取得時のRequestにUser Authorization取得時の戻り先URLを含む
oauth_callback:
An absolute URL to which the Service Provider will redirect the User back when the Obtaining User Authorization (Obtaining User Authorization) step is completed.
If the Consumer is unable to receive callbacks, the parameter value MUST be set to oob (case sensitive).
UserAuthorization取得時のURLを改ざんされないように、あらかじめ戻り先URLをConsumer - SP間で共有しておく。
oobって何ですか?
■ oauth_verifier
新しく追加されたパラメータです。
In order to ensure that the User granting access is the same User returning back to the Consumer to complete the process,
the Service Provider MUST generate a verification code: a non-guessable value passed to the Consumer via the User and REQUIRED to complete the process.
- UserのAuthorizationを取得したあとにcallback_urlに付加される
- Access Token取得時のRequestにこのoauth_verifierを含むことで、同意したUserとConsumerに戻されたUserが同じことを確認する
■ for Client Apps
If no callback URL was provided (the value of the oauth_callback parameter was oob, case sensitive), the Service Provider MUST display the value of the verification code to the User and instruct the User to manually inform the Consumer that authorization has completed and provide the Consumer with the verification code.
If the Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the verifier value is suitable for manual entry.
callback URLが提供されなかったとき(oobだったとき)は、Userがverification codeをClient Appsなどに伝える。
Consumerやset-top boxで動いていることをSPが知っている場合は、Userが手動で入力できるように空気読んでsuitableな値にする。
oobって何ですか?
■ Security Issueは完全になくなった?
Client Appの場合にverification codeを含む必要が出てきたので、今までの脆弱性をつくためにはソーシャルエンジニアリングにより"verification code"も盗む必要がある。
攻撃者がめんどくさいことが大事ですね。
Userには"verification code"は大事に扱えと啓蒙する必要がありそうです。
■ Sample Request/Response
◆ Appendix A.2. Obtaining a Request Token
- Request
https://photos.example.net/request_token?oauth_consumer_key=dpf43f3p2l4k3l03
&oauth_signature_method=PLAINTEXT
&oauth_signature=kd94hf93k423kf44%26
&oauth_timestamp=1191242090
&oauth_nonce=hsu94j3884jdopsl
&oauth_version=1.0
&oauth_callback=http%3A%2F%2Fprinter.example.com%2Frequest_token_ready
callback URLが含まれています。
- Response
oauth_token=hh5s93j4hdidpola&
oauth_token_secret=hdhd0244k9j7ao03
現行と同じです。
◆ Appendix A.3. Requesting User Authorization
- Request
http://photos.example.net/authorize?oauth_token=hh5s93j4hdidpola
Request Tokenだけ
- Response
http://printer.example.com/request_token_ready?
oauth_token=hh5s93j4hdidpola&
oauth_verifier=hfdp7dh39dks9884
oauth_verifierがついている。
◆ Appendix A.4. Obtaining an Access Token
https://photos.example.net/access_token?
oauth_consumer_key=dpf43f3p2l4k3l03
&oauth_token=hh5s93j4hdidpola
&oauth_signature_method=PLAINTEXT
&oauth_signature=kd94hf93k423kf44%26hdhd0244k9j7ao03
&oauth_timestamp=1191242092
&oauth_nonce=dji430splmx33448
&oauth_version=1.0
&oauth_verifier=hfdp7dh39dks9884
oauth_verifierを含む。
- Response
oauth_token=nnch734d00sl2jdk&
oauth_token_secret=pfkkdhi9sl3r4s00
いままでどおり。
正式版になるまではまだ修正が入るかもしれませんね。
要チェックです。