トップ > ラボブログ

ラボブログ

« Google Buzz 発表! | メイン | Kaltura Japan Community立ち上げ&OSC2010出展のお知らせ »

署名付きリクエストと2-legged OAuthの謎

あとで読む

DAC/スパイスラボ神部です。


・2-legged OAuth


・Signed Request(署名付きリクエスト)


・OAuth Consumer Request


の関係性が謎すぎるので参考資料をまとめてみます。


どれも同じ意味らしいのですが・・・使われる場所とかそう呼ばれるようになった経緯をたどっていけばわかりやすいのでしょうか。いったいなぜ名前がこう分かれてしまったのか!?


わかりやすい図


Google Friend Connect を使った OpenSocial Dashboard を作られているid:shinichitomitaさんからこんなわかりやすい図を教えていただきました。どういうフローなのかについてはかなり納得です。


-@rkanbe Gで画像検索したらいいのがあったので。たぶんこれで納得出来るんじゃないかしら http://bit.ly/azQtvu



資料


-pythonで署名付きリクエストを送る(2-legged OAuth) « taichino.com


3-legged OAuthが権限委譲のコンセプトを含んだ新しい認証なのに比べて、2-legged OAuthはただの共通鍵認証です


-署名リクエスト - goo Developer's Kitchen


署名リクエストはOpenSocialの世界では2-legged OAuth、Signed Request、OAuth Consumer Requestといった呼ばれ方をします


-Tender Surrender » OpenSocial Signed Requestライブラリ(PHP)をベータ公開


OpenSocialのSigned Requestは、ガジェットからの外部通信リクエストに署名を付けることで、パラメータの内容が改ざんされていないかを検証可能にする仕組みです。一般に2-legged OAuthやSigned Request、OAuth Consumer Requestという名前はすべて同じ、これを表しています。


-OAuthと周辺技術の勉強会 — ありえるえりあ


-OAuth認証のPHPサンプル - Google-Gadgets-API-Japan | Google グループ


-


-mixi Developer Center (ミクシィ デベロッパーセンター) » 外部サーバを呼び出してみよう


-mixi Developer Center (ミクシィ デベロッパーセンター) » 2-legged OAuthによるAPIアクセス


-Tender Surrender » OAuth


Tender Surrender » OAuthの署名方式を掘り下げる


RSA-SHA1とHMAC-SHA1


ちょっと調べているところの同期には「署名付きリクエストは2-legged OAuthと読んでいいのかだめなのか」という疑問もあります。


上記資料の中に


署名の生成方式は主に2種類あります。RSA-SHA1と、HMAC-SHA1です。mixiアプリだと、ガジェットから外部サーバーにリクエストを出す場合(makeRequest)RSA-SHA1を使います。モバイルアプリでmixiにリクエストを出す場合は、HMAC-SHA1を使います。それぞれの特徴などはこちらの記事を参考にしてください。


とというものがあります。mixiアプリだと外部リクエストの時がRSA-SHA1でモバイルアプリからのリクエストの時がHMAC-SHA1ということなのですが、これはどちらとも2-legged OAuthな気がします。2-leggedというのは二者間ということなので、


-コンテナと外部サーバ


-外部サーバ上のモバイルアプリとコンテナ


はどちらも2-leggedと言えそうです。


認可もないのにOAuthとつけるのが紛らわしいからやめてください、ということなのかな・・・

RSA-SHA1の検証


-RSA SHA-1 Signature for OAuth - r-weblife


-openssl_verify


Twitterのつぶやきなども含めて、ぼんやりわかってきました。


とりあえずRSA-SHA1のときには、base_stringおよびそれを元に秘密鍵で作成した署名を送り、サーバサイドではbase_stringと公開鍵でデコードした内容を要素に検証を行い、PHPでいえばopenssl_verify()がオッケーと言ってくれればオッケーにする、という感じでしょかね。

 



関連記事



ブックマークに追加する この記事についてTwitterでツイート

トラックバック

このエントリーのトラックバックURL:
http://www.spicebox.jp/cgi-bin/mt/mt-tb.cgi/1340

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

mixiアプリ本
4/22発売!

mixiアプリをつくろう!
OpenSocialで学ぶ
ソーシャルアプリ



(株)スパイスボックス
神部 竜二(著)

書籍情報






検索



神部竜二
ブログ執筆者の一人です。ネットの新しい話題や Web まわりのプログラミング、Web 広告について書いていきたいと思います。


About

2010年02月12日 08:08 に投稿されたエントリーのページです。

ひとつ前の投稿は「 Google Buzz 発表! 」です。

次の投稿は「 Kaltura Japan Community立ち上げ&OSC2010出展のお知らせ 」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

SEO ブログパーツ  

+ インデックス数計測 +