« 05月17日のココロ日記(BlogPet) | トップページ | つぽは取得してくれるかな(BlogPet) »
2010.05.19
proxy サーバー越しに Twitter の xAuth によるアクセストークン取得時の注意点
Twitter では、2010年6月末をもって、BASIC認証が使えなくなります(単に非推奨になるだけで、しばらくの間はまだ使えるという噂もありますが、あんまり当てにしない方がいいと思います)。そのため、既存のアプリケーションや、今後作成予定のアプリケーションは、OAuth もしくは xAuth をサポートする必要があります。
OAuth の方は API レベルでの仕様に忠実に実装すれば問題なく使えるのですが、xAuth に関しては、API レベルでの仕様に忠実に実装していても、その下位レイヤ、つまり http/https レベルでの実装がどうなっているか次第で、うまく認証が通らない(アクセストークンの取得ができない)ことがあります。
xAuth ではアクセストーク取得時は SSL (https) で通信することになっています。直接 Twitter のサーバーとの間で SSL 接続を確立して通信する場合は問題は起きないのですが、proxy サーバー越しに Twitter のサーバーと SSL 通信を行なう場合は、アクセストークンの取得に失敗することがあるのです。
proxyサーバー越しに SSL で通信を行なうとき(CONNECT による SSL 接続確立後)は、http リクエストヘッダの冒頭行に含まれる URL はフルパスで書くことになっています。この URL は、本来(SSL通信の場合でも) http:// で始まるものを使うことになっているのですが、世の中には https:// を使う実装も存在しています。
例えば、C# の HttpWebRequest (IEコンポーネントベースのライブラリ)では、proxyサーバー越しでの SSL 通信時は、リクエストヘッダに https:// で始まる URL を書いてアクセスを試み、失敗した場合は、http:// で始まる URL で再度アクセスを試みる、というような実装になっています。
あるいは、拙作の Twitter クライアント Chirrup で使っている自前のhttp/httpsライブラリでは、経験的に https:// でないとうまく通信できないことがわかっているサーバーに対しては https:// で、それ以外は http:// でアクセスを試みる実装になっています。
たいていのWebサーバーは、http:// でも https:// でも問題なく、相手をしてくれるのですが、一部、http:// じゃないと駄目なサーバー、逆に https:// じゃないと駄目なサーバーがあります。
Twitter の場合は、いちおう「http:// でも https:// でも問題なく、相手をしてくれる」Webサーバーを使っているようなのですが、こと xAuth によるアクセストークン取得に関しては、https:// でないといけないようです。
拙作の Twitter クライアント(としての機能を内蔵したWebブラウザ) tumblen3 では問題なくアクセストークンが取得できるのに、もう1つのクライアント Chirrup ではなぜか取得に失敗する(認証エラー)になるという問題を2010年2月に経験し、その原因を追及していった結果、「xAuth によるアクセストークン取得に関しては、https:// でないといけない」ことがわかりました。tumblen3 は C# (の HttpWebRequest) による実装のため、問題なく動作し、Chirrup は(ごく一部のサーバーを除いて) http:// でアクセスする実装だったため、失敗していたのでした。今では、Chirrup も https:// でアクセスすることで、この問題を克服しています。
参考
この辺の話は、拙著「Twitter API プログラミング」
の118ページ「xAuth によるアクセストークンの取得をプロキシサーバ越しに行う場合の注意点」というコラムにも書きました。よろしければ、参考にしてください。
その他の問題
ファイヤーウォール内からインターネットにアクセスする環境では、場合によっては通信内容を監視するため、以下のような構成の proxy サーバーを採用していることがあります。このような環境の場合、その環境特有の問題で、xAuth がうまく通らない、ということがあり得ます。この場合は、その環境依存の対策(を行なう場合は、ネットワーク管理者、管理部門の許可を取ってくださいね)が必要になりますが、対策不可能かもしれません。
投稿者: tsupo 2010.05.19 午後 11:08
| 固定リンク
|
|
|
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: proxy サーバー越しに Twitter の xAuth によるアクセストークン取得時の注意点:
コメント
推奨ってなに?
投稿者: BlogPetのこうさぎ (2010.05.22 午後 01:57)