OAuth のややこしいところ

観測気球

収集物の記録書庫 a data archive of collection -- collectible toys

[要旨] OAuth のURLエンコード処理で気をつけないといけないこと。
[キーワード] OAuth,URLエンコード,パーセントエンコード,signature

« 03月29日のココロ日記(BlogPet) | トップページ | ソーシャルブックマーク管理ツール bookey 0.60s版 »

2009.03.30

OAuth のややこしいところ

TwitterOAuth一般解放されたのを受けて、現在、自作ソフトを OAuth に対応させるためのコードを書いているところです。

OAuth は Flickr の認証に似ているということで、去年 Chirrup を Flickr 認証に対応させた経験がある程度流用できるのかと思いきや、細かいところではまっています。そのうちの1つが、URLエンコード関係の問題。

OAuth で何がややこしいかというと、URLエンコード(パーセントエンコード)が必要なところで、16進数部分に出現するアルファベットについて、一方は「大文字」じゃないといけなくて、他方では「小文字」じゃないといけないこと。何で大文字、小文字のどっちかに統一されてないんだろう?

  1. 大文字じゃないといけないところ
    • 5.1. Parameter Encoding
      Hexadecimal characters in encodings MUST be upper case.
  2. 小文字じゃないといけないところ
    • 9.1.2. Construct Request URL
      URL scheme and authority MUST be lowercase

具体的には、signature を生成するときの各構成要素をエンコードするときは「大文字」じゃないといけないのに対し、生成した signature をエンコードするときは「小文字」じゃないといけないという罠。あと、'-', '.', '_', '~' はパーセントエンコードせず、生のままじゃないと駄目。これに気づくまでは、何で認証が通らないんだろうと悩んでました。

ということで、もし、自分で OAuth 関連ライブラリを作ろうとしている人は、この辺に気をつけてください。既存の(動作実績のある)ライブラリを使う分には、この辺は知らなくても何とかなっちゃうと思いますけど。

投稿者: tsupo 2009.03.30 午後 06:28 | 固定リンク | このエントリーをはてなブックマークに追加 | このエントリを del.icio.us に登録 このエントリの del.icio.us での登録状況 | このエントリを Buzzurl に追加このエントリの Buzzurl での登録状況 | このエントリをlivedoorクリップに登録 このエントリのlivedoorクリップでの登録状況 このエントリをlivedoorクリップに登録している人の数 | 酢鶏巡回中

楽天市場


品揃え豊富で安い!NTT-X Store


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:

この記事へのトラックバック一覧です: OAuth のややこしいところ:

» C# で OAuth from 観測気球
C# で OAuth 対応アプリケーションを書くときに、Google Code で公開されている OAuthBase.cs を参考にする人が多いと思うんですが、この OAuthBase.cs をそのまま使うと、引数にマルチバイト文字(日本語とか中国語とか)を含むhttpリクエストの認証が失敗します。その解決方法について、書いてみました。... 続きを読む

受信: 2009.04.07 午前 03:04

コメント

ワード

ニッセン

fujisan.co.jp

楽天市場