ココログと livedoor Blog の Atom API の違い

観測気球

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

[要旨] ココログと livedoor Blog とでは、WSSE の生成方法が違うようです。
[キーワード] Atim API,WSSE,Nonce

« 2004年7月期 テレビ番組チェック表(こうさぎ) | トップページ | BlogWrite 0.9.9 »

2004.07.08

ココログと livedoor Blog の Atom API の違い

観測気球さんはおそらくココログではとりあえずテスト出来ているが、BloggerやLivedoorでAtom APIのテストをしようとすると、「Invalid Login」とかなってしまいませんか?

HepCat Dev and Test: ココログ Atom API の小さくて大きな問題

非常に気になったので、livedoor Blog のアカウントを取得して、調査してみました。
確かに、ココログの Atom API の調査用に作成した Atom API クライアントで livedoor Blog にアクセスしようとすると、 Invalid Login になりました。一方、XML::Atom では、問題なく livedoor Blog にアクセスできます (その代わり、XML::Atom では、ココログにアクセスできません)。

で、どこがどう違うのかを調べるため、以下の記事を参考に、XML::Atom が実際に livedoor Blog に送信する電文の中身を見てみました。

CPAN で LWP::Authen::Wsse をいれとくと (XML::Atom 最新版をいれると勝手に入る)、コマンドラインプログラム GET, POST とかで AtomAPI が操作できるようになる。

blog.bulknews.net: LWP::Authen::Wsse

早い話が、

GET -U http://blog.livedoor.com/atom

を実行してみました。
以下のような文字列を送っていることが判明。

GET http://blog.livedoor.com/atom
Authorization: WSSE profile="UsernameToken"
User-Agent: lwp-request/2.01
X-WSSE: UsernameToken Username="tsupo", PasswordDigest="hXt(途中20バイト省略)D8WM=", Nonce="Cc9EjFjsp7s1UPn+l2sMZeRtjHY=", Created="2004-07-08T02:04:10Z"

一方、拙作の Atom API クライアントは、以下のような文字列を送信しています。

GET http://blog.livedoor.com/atom HTTP/1.1
User-Agent: httpWsse/1.0 (written by H.Tsujimura)
Host: blog.livedoor.com
X-WSSE: UsernameToken Username="tsupo", PasswordDigest="bAN(途中20バイト省略)C9gI=", Created="2004-07-08T06:13:43Z", Nonce="284a170131caea5cc3e67ee197413d5198116426"

この違いは、そのまま、ココログの Atom API と livedoor Blog の Atom API の違いでもあります。
注目するところは X-WSSE: の行で、以下の違いがあります。

  • トークンの並び順 (これは問題ではない可能性あり)
    ココログ: Username, PasswordDigest, Created, Nonce の順
    livedoor Blog: Username, PasswordDigest, Nonce, Created の順
  • Nonce の内容
    ココログ: 任意の40バイトの平文
    livedoor Blog: 「任意の20バイトの文字列」を base64 エンコードしたもの
  • PasswordDigest の生成方法
    ココログ: Nonce, Created, Password の中身(文字列)をこの順に連結したものを SHA1 暗号化した結果を、さらに base64 エンコードしたもの
    livedoor Blog: 「base64 エンコードする前の Nonce」, Created, Password の中身(文字列)をこの順に連結したものを SHA1 暗号化した結果を、さらに base64 エンコードしたもの

以上のことを念頭に、拙作の Atom API クライアントをココログ、livedoor Blog の両方に対応するように修正してみました。
その結果、livedoor Blog に対しては、以下のような文字列を送信するようになり、問題なく動作するようになりました。

GET http://blog.livedoor.com/atom/ HTTP/1.1
User-Agent: httpWsse/1.0 (written by H.Tsujimura)
Host: blog.livedoor.com
X-WSSE: UsernameToken Username="tsupo", PasswordDigest="Ms8(途中20バイト省略)h5zc=", Nonce="MjRjOTMxMDEzMWNhZWI3YWNiZTk=", Created="2004-07-08T06:26:57Z"

おそらく、TypePad系はココログと同じやり方で OK。一方、Blogger は livedoor Blog と同じやり方で OK だそうですので、とりあえずは、これで先に進めそうです。

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

楽天市場


Blogクライアント」カテゴリ内の最近の記事

ウェブログ・ココログ関連」カテゴリ内の最近の記事

プログラミング」カテゴリ内の最近の記事

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


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/6737/927850

この記事へのトラックバック一覧です: ココログと livedoor Blog の Atom API の違い:

» ココログの Atom API の現状確認 - TypePad 1.5 移行でどうなったか from 観測気球
TypePad 1.5 になっても、WSSE の方式は従来通りのままでした。ということで、MovableType と TypePad とで異なる WSSE を使う必要があるという変な状況が発生しています。 続きを読む

受信: 2005.06.20 午前 10:44

コメント

コメントを書く




※イタズラ防止のため、メールアドレスを入力しないと投稿できません。

次からのコメント入力の手間を省くために、名前やメールアドレスをcookieに記憶しますか?


URL を入力すると、その URL にリンクがはられます。
なお、メールアドレスは公開されません。ご安心ください。


ワード

ニッセン

fujisan.co.jp

楽天市場