ひまつぶし雑記帖

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

amazon のAPIで認証が必要になる

2009/5/10 [10:36:02] (日) 天気

英文のメールが来ていたのは知ってた。ふーん、なんか変わるのか、ぐらいで流し…てたら、日本語のメールも来る。AWSという名称を変更するそうだ。
てのは、どうでもよくて、アマゾンにデータを取りにいくのに認証が必要になるらしい。それも5月11日から。猶予期間は3ヶ月ほどあるらしいけど、それまでにパラメータや認証キーを仕込みなおさないとまずいぢゃん。

当然ながら、今日時点では、ありがたく使わせていただけそうな例もまだないのでメモだけ。

新しくパラメータにTimestampが必要
RESTのURI+αを、SECRET KEYをキーにしてSHA256でHASHしてSignatureを生成してくっつける、らしい。
https://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html
perl のDigest SHA
https://search.cpan.org/~mshelor/Digest-SHA-5.47/lib/Digest/SHA.pm

って、まだ全然わかってないんだけど。

use Digest::SHA qw(hmac_sha256_base64);
my $key = 'ABCD0987';
my $data = 'aiueo12345xyz';
my $digest = hmac_sha256_base64($data, $key);
print $digest;

認証のための署名はこれで作れる。

情報収集して対応しないといけません。

[05/11 10:56:47]
$digest .= '=' while length($digest) % 4;
4で割って余りが出ないように、「=」で埋める必要があるらしい。

https://blog.livedoor.jp/dankogai/archives/51211577.html

[05/11 23:46:32]
てことでチェックできた。
従来のURIにTimestampを追加。
Timestamp=2009-05-11T23:34:12Z
署名のためのデータを上記URIから作る。&でバラしてkeyをsortして並べ替えてURLエンコードしておく。

GET
webservices.amazon.co.jp
/onca/xml
上記URI

の4行のデータ。これをアマゾンの秘密鍵をキーに、SHA256でハッシュ化して署名を作る。
URIの最後にURLエンコードした署名をくっつけてできあがり(&Signature=署名)

と、エラソに書いたけど、ハマリがひとつ。何度やっても署名が間違ってる、と撥ねられて、しばし悶絶。あーだこーだパラメータをひとつずつ潰していったら、URLエンコードが原因でびっくりした。

今までずっと
s/(W)/sprintf("%%%02X",unpack("C", $1))/eg
とやっていて何も問題なかったんだよなあ。

# RFC3986
# URI の生成を行うものは
# ALPHA (%41-%5A と %61-%7A), 
# DIGIT (%30-%39), hyphen (%2D), 
# period (%2E), underscore (%5F), tilde (%7E)
# の範囲におけるパーセントエンコードされたオクテットを
# 生成すべきではない

ううううむ。てことで
s/([^0-9a-zA-Z~._-])/sprintf("%%%02X",unpack("C", $1))/eg
にしたら、無事通過。
ひっかかったのはTimestampの2009-05-11のハイフンあたりだったようだ。

とりあえずチェックスクリプトはこれでOKだったんで、週末にでも実装してしまおう。

参考:
https://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?BasicAuthProcess.html
https://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html
↑こいつを見てたら、ハイフンがエンコードされてないんで、変だなあ、と。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/4/25 00:49

だめだ。PDFをWordで開いたらレイアウトが微妙にくずれて行数が正しくない。かえって間違いのもとだ。

2024/4/24 13:43

pdfをWordで開いてみる手もあるか。空行、1ページの行数とか、pdfのまんまだったら行数表示で問題解決。だけど、実際どうだろ。帰ったら試す

2024/4/24 12:58

空行は目視しか確認方法がない…
windowsで半透明にするフリーソフトを見つけたので、各ページの幅で検知する。
全ページの行数を数えてたんじゃ絶対漏らす。そんな集中力はないわ

検索
<<2024/4>>
 123456
78910111213
14151617181920
21222324252627
282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版