kgrss's blog

プログラムを中心にいろいろなことを記事にしていきます!

OAuthのsigunatureってなんだ?全然途中まで

こんばんはー、こがらしです。

最近TGSがはやりみたいですね笑
僕ももちろん行きますよー。

今回は、タイトルの通りにOAuth認証で用いるsigunatureに関してまとめていきますー

まず、sigunatureって何のために使うの?ってところから。
あっ、僕の勝手な考えの元のお話になりますので、もしここおかしいよみたいのがあればご指摘くださいー
sigunatureは、悪意のある第三者の方に勝手にリクエストを改変・捏造されていないことを確認するために用いるものですね。
パラメータ等に改変等があれば、このsigunatureの確認フェーズでエラーがでます。
そのため、このリクエストはおかしいと判定することができるんですねー。

どうやって判定しているかとか、そういうのを話せそうであれば説明していきます。

まずは事前準備として、通信をするクライアントおよびサーバー側の双方でConsumer KeyとかConsumer Secretがあると思います。
TwitterはAccess TokenとAccess Secretもでしたっけ?

まぁうろ覚えながら続けていきます。

たとえば下記のようなリクエストをしたいとします。
http://kgrss.hateblo.jp/post?message=hoge&title=var

なんかに投稿をする際とかにはこんな感じになると思います。
この場合はGETリクエストですが、POSTリクエストでもどこにパラメータがくっついているかしか変わりありません。
REST APIとかに応じて合わせてくださいね。

今回は見ての通りGETメソッドの場合で進めていきます。
上のURLのhttp://grss.hateblo.jp/postまでをRequest URLとします。
?以降のmessage=hoge&title=varがQueryParametersです。
それと、これに加えてOAuthで必要になるパラメータもこのQueryParametersに含めていきます。
つまりはoauth_で始まるパラメータ類ですね。
この段階ではoauth_sigunatureは含めないのでご注意を!

sigunatureの生成時には、QueryParametersの順番が決まっています。
Key名で昇順(?)になるようにソートをする必要があります。
この場合はmessageとtitleですね。それに加えてoauth系のパラメータ。
順番としては、以下の順ですね。
message>oauth_*******>title
このパラメータをkey=value&key=valueみたいにつないでおきます。
この部分はソートを行う部分飯貝は普通ですねー。


あー、続きはまた書きます・・・!