*1  Amazon Product Advertising API の Signature 対応

この blog でも使っている Amazon A2S(ECS4.0) 呼び出し用の ruby library だが、5月15日から名称を Amazon Product Advertising API と変更するのに伴い、リクエストに秘密鍵を用いた署名が必要となり、現在の形式は8月15日までで使えなくなるらしい。
有料サービス提供を見据えてのアクションなのか、他のEC2とインターフェイスを合わせたいのかが理由かと思うが、現状広く使われているAPIをたった3ヶ月で書き換えないとすべて無効にしてしまうというのは、なかなか豪胆なことだ。しかも ECS3.0 から 4.0 にしたのもまだ去年だと言うのに。

私個人としては個人で使う分をどうにかすればいいだけではあるので、取り合えずどうにかした。一応、このblogに出ているAmazonのリンクはほとんどがこれ経由なので、問題なく動いていると思う。更新したファイルは CodeRepos に置かせてもらった。以下からどうぞ。以前と違うのは、上記の、ないし誰が書いた Amazon の API を利用する公開されたライブラリを使おうと思った場合、Amazon.comサイトで Product Advertising API アカウントを作成 し、Accesss Key ID と共に Secret Access Key を取得する必要がある。Secret Key は非公開前提なため、上記の公開ファイルからは ID と Key は省いている。

API 呼び出し側の実装としては、この Secret Key を用いてリクエストを正規化→HMAC::Sha256のSignatureをTimestampとともに渡すと言うことをやらないといけない。

この辺の処理はAmazon Product Advertising APIの認証の件 - zorioの日記を参考に、と言うかほとんどそのまま使っている。何故か openssl の OpenSSL::HMAC::digest を使った SHA256 Hash は不正といわれて通らず、digest/sha2 を使って計算した HMAC では大丈夫だった。

それにしてもこの秘密鍵、OSSでソースを配布するなんて場合には非常に不便。たださんがAmazon.co.jp のフォーラムでOSSからの認証利用について質問しているようだが、そもそもこんなのはAmazonにとっても使われてなんぼなものなはずであり、どうしたいのかがよくわからん。あと、JavaScript から呼ぶのがすごい困難な気がする。どうやって Secret Key を隠せばいいんだろう?

( Permalink | Comments (0) | tags: ruby  amazon  )
Comments

Please write your comment. email address won't appear. Cannot use any HTML tags in comment.
コメントをお書き下さい。メールアドレスは公開されません。 またHTMLタグは利用できません。
Name   E-mail   URL
Comment

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

このエントリーのブックマーク

Monthly Archives

Select Month to read