OAuth関連トピックキャッチアップ : Y!は1.0クローズ、Gはanonymous OAuthを実装

Yahoo! IncのOAuthがRev Aのみになる

Yahoo!Incは今まで、4月にセキュリティの問題が見つかった際に一時的にOAuthのシステムを止めましたが、その後はユーザーに警告画面を出すものの動作はするように戻していました。
よって、OAuth Core 1.0とその問題が修正された仕様のOAuth Core 1.0aの両方の仕様でOAuthを利用できる状態になっていたのです。
これは既にOAuth Core 1.0を利用していたアプリケーションへの配慮だったのだと思われますが、11/9にOAuth Core 1.0のほうの仕様ではOAuthの処理ができなくなるようです。

1.0aの説明を利用ガイドに追記したり、もう十分開発者に対してサポートしたのでクローズするってところでしょうか。
もうちょっと早くても良かったような。。。

ちなみに、Yahoo! JAPANのOAuthは1.0aのみです。

2009年4月下旬にOAuth Core 1.0の仕様にセキュリティ問題があることが発表されました。
Yahoo! JAPANのOAuthはその問題を解決したOAuth Core 1.0 Revision Aという仕様に従っています。この仕様に加え、Yahoo! JAPANはOAuth Session Extensionという拡張仕様を導入しています。

Yahoo! JAPANがOAuthのService Providerになりました! - Yahoo! JAPAN Tech Blog

GoogleがAnonymous OAuthを実装

OAuthとOpenIDとの比較でもよく言われてきたことですが、OAuthはConsumerとSPの間に事前登録が必要です。
Consumerがアプリケーションの情報やRSA PubKeyを登録したり、SPがConsumerKey/Secretを発行したりするわけです。

Googleはこのたび、この事前登録が不要であるAnonymous OAuthとでもいうべき実装をしたとブログで発表しました。

1. The ability to use OAuth without registration
Based on consistent feedback from our developers, we added the ability to use OAuth without having to register the website ahead of time. This change is especially helpful for developers working on test servers that cannot be accessed directly from the Internet.

OAuth Enhancements - The official Google Code blog

これはいったいどういうことなのでしょうか?
ドキュメントを追ってみます。

Applications making OAuth requests to Google can be either registered or unregistered, but must sign all requests.

...

Although most Google services allow access to unregistered applications, some require more secure access.

http://code.google.com/intl/ja/apis/accounts/docs/OAuth.html

ということで、Googleの中には情報レベル?が低い情報もあるからそいつらは事前登録なしでも出しちゃうってことなんですかね。
では、次に実装方法について見ていきます。

If your application is not registered, select HMAC-SHA1 and use the following key and secret:
consumer key: "anonymous"
consumer secret: "anonymous"

http://code.google.com/intl/ja/apis/accounts/docs/OAuth_ref.html#SigningOAuth

consumer key,secretをanonymousにしてHMACの署名つけろと言っています。
その署名って意味があるのかちょっと気になりますが。

では、実際の処理を見てみます。
Googleが提供しているOAuth PlayGroundを使ってやってみます。

http://googlecodesamples.com/oauth_playground/

長くなりそうだったので動作確認の結果をスライドにまとめました。

この件についてはもう少し考えて別途エントリ書きたいと思います。