OAuthのToken Secret


iTwitをOAuth対応させるため、OAuthの勉強をしていました。

iTwitはiアプリとして作っています。しかし、iアプリの制約として、外部サイトとの通信はダウンロードしたホストとしかできません。なので、Twitterと通信するときは、ダウンロード元のitwit.jpを経由して通信する必要があります。

今回はOAuth認証に対応するわけですが、このトークンをどのように端末へ受け渡すかが難しいところです。下の図は、認証部分と、その後の通信で必要なパラメータがまとまっているものです。


OAuth Authentication Flow

これだけ読むと、Gの“Consumer Access Protected Resource”ではoauth_tokenだけあれば良いように読めます。しかし実際には、oauth_signatureを生成する段階で、2つのsecretが必要になります。

9.  Signing Requests

All Token requests and Protected Resources requests MUST be signed by the Consumer and verified by the Service Provider. The purpose of signing requests is to prevent unauthorized parties from using the Consumer Key and Tokens when making Token requests or Protected Resources requests. The signature process encodes the Consumer Secret and Token Secret into a verifiable value which is included with the request.

これらを連結し、日時情報などを付け加えた後、ハッシュ化したものがoauth_signatureとなります。したがって、リクエストを送信する際は、毎回2つのsecretを知っている必要があります。

iモード端末とitwit.jp間はSSLによる暗号化を行わないつもりだったので、Token Secretを毎回渡すことに少し抵抗を感じます。しかし、Token Secretを端末側で保持しないとなると、サーバ側で保持する必要が出てくるため、いまいち綺麗に収まりません。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *