このセクションでは、リクエストに署名を行うためのステップをご説明しています。以下の説明では、ダミーのAWSアクセスキー識別子を使用していますので、どなたでもこれをご使用いただけます。このアクセスキー識別子を使用して、以下のステップに従って署名を作成すると、例に表示された文字列と同じものをご自身で作成できることになります。ご自分のコードの動作確認をする場合などに、このサンプルをご利用いただけます。その他のリクエストについても、わかりやすい例をご紹介しています。
![]() | ヒント |
---|---|
もし、RESTリクエストに関する知識をあまりお持ちでない場合は、以下のサンプルコードを見始める前に、 REST リクエストの構造 をお読みになることをお勧めします。 |
具体例として、今回は広く利用されている ItemLookup のリクエストを使用します。
http://webservices.amazon.com/onca/xml?Service=AWSECommerceServic e&AWSAccessKeyId=00000000000000000000&Operation=ItemLookup&ItemId =0679722769&ResponseGroup=ItemAttributes,Offers,Images,Reviews&Ve rsion=2009-01-06
サンプルリクエストに署名を行うためのステップ
タイムスタンプを挿入します。以下の例では、GMTを使用しています。2009-01-01T12:00:00Z
http://webservices.amazon.com/onca/xml?Service=AWSECommerceServic e&AWSAccessKeyId=00000000000000000000&Operation=ItemLookup&ItemId =0679722769&ResponseGroup=ItemAttributes,Offers,Images,Reviews&Ve rsion=2009-01-06&Timestamp=2009-01-01T12:00:00Z
リクエスト内のコンマ (,) およびコロン (;) をURLエンコードし、誤った処理が行われないようにします。RFC 3986 への変換に関する詳細な情報については、ご利用のプログラム言語のコードサンプルやドキュメントをご参照ください。
http://webservices.amazon.com/onca/xml?Service=AWSECommerceServic e&AWSAccessKeyId=00000000000000000000&Operation=ItemLookup&ItemId =0679722769&ResponseGroup=ItemAttributes%2COffers%2CImages%2CRevi ews&Version=2009-01-06&Timestamp=2009-01-01T12%3A00%3A00Z
![]() | 重要 |
---|---|
どの文字についても、二重にエンコードされることのないようご注意ください。 |
パラメータと値のペアをそれぞれ分割し、アンパサンド(&)を削除して、以下のような形状にします:
Service=AWSECommerceService AWSAccessKeyId=00000000000000000000 Operation=ItemLookup ItemId=0679722769 ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews Version=2009-01-06 Timestamp=2009-01-01T12%3A00%3A00Z
パラメータと値のペアをバイト順(アルファベット順とは異なり、大文字のパラメータは小文字のパラメータの前に並ぶ形式です)に並べ替えます。
AWSAccessKeyId=00000000000000000000 ItemId=0679722769 Operation=ItemLookup ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews Service=AWSECommerceService Timestamp=2009-01-01T12%3A00%3A00Z Version=2009-01-06
並べ替えが終わったら、パラメータと値のペアのリストを再度アンパサンド(&)でつなぎ直します。この段階で、AWSの署名対象となる正規化されたリクエストが作成されます。
AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=I temLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReview s&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z& Version=2009-01-06
以下の3行(改行はそのまま使用してください)を正規化されたリクエストの前に追加します。
GET webservices.amazon.com /onca/xml
署名対象のリクエスト文字列は以下の通りです:
GET webservices.amazon.com /onca/xml AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=I temLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReview s&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z& Version=2009-01-06
上記のリクエスト文字列とダミーの秘密キーである、1234567890
を利用して、RFC2104準拠のHMAC-SHA256ハッシュアルゴリズムの計算を行います。このステップの詳細な情報については、ご利用のプログラミング言語のコードサンプルおよびドキュメントをご参照ください。
Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg=
署名に含まれているプラス (+) とイコール (=) をURLエンコードします。
Nace%2BU3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg%3D
リクエストにURLエンコードが完了した署名を追加すると、正しくフォーマットされた署名認証リクエストが完成します。
http://webservices.amazon.com/onca/xml?AWSAccessKeyId=00000000000 000000000&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=It emAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceServ ice&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06&Signatu re=Nace%2BU3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg%3D
前のセクションでは、ItemLookup リクエストにおいて署名を含めるための詳細なプロセスについてご説明しました。このセクションでは、署名を作成する元として使用する、署名なしのリクエストのサンプル、および最終的な署名認証リクエストのサンプルをご紹介します。以下の例は、ご使用になるソフトウェアのテストケースとしても有効にご利用いただけます。以下の全てのサンプルは、サンプルリクエストに署名を行うためのステップ において使用した、ダミーのAWSアクセスキー識別子を使用しています。
以下の例は、ItemSearch における、署名なしのオリジナルリクエスト、署名対象のリクエスト文字列、および署名認証リクエストとなります。
http://ecs.amazonaws.co.uk/onca/xml?Service=AWSECommerceService&A WSAccessKeyId=00000000000000000000&Operation=ItemSearch&Actor=Joh nny%20Depp&ResponseGroup=ItemAttributes,Offers,Images,Reviews,Var iations&Version=2009-01-01&SearchIndex=DVD&Sort=salesrank&Associa teTag=mytag-20
GET ecs.amazonaws.co.uk /onca/xml AWSAccessKeyId=00000000000000000000&Actor=Johnny%20Depp&Associate Tag=mytag-20&Operation=ItemSearch&ResponseGroup=ItemAttributes%2C Offers%2CImages%2CReviews%2CVariations&SearchIndex=DVD&Service=AW SECommerceService&Sort=salesrank&Timestamp=2009-01-01T12%3A00%3A0 0Z&Version=2009-01-01
http://ecs.amazonaws.co.uk/onca/xml?AWSAccessKeyId=00000000000000 000000&Actor=Johnny%20Depp&AssociateTag=mytag-20&Operation=ItemSe arch&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews%2CV ariations&SearchIndex=DVD&Service=AWSECommerceService&Signature=T uM6E5L9u%2FuNqOX09ET03BXVmHLVFfJIna5cxXuHxiU%3D&Sort=salesrank&Ti mestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-01
以下の例は、CartCreate における、署名なしのオリジナルリクエスト、署名対象のリクエスト文字列、および署名認証リクエストとなります。
http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWS AccessKeyId=00000000000000000000&Operation=CartCreate&Version=200 9-01-01&Item.1.OfferListingId=j8ejq9wxDfSYWf2OCp6XQGDsVrWhl08GSQ9 m5j%2Be8MS449BN1XGUC3DfU5Zw4nt%2FFBt87cspLow1QXzfvZpvzg%3D%3D&Ite m.1.Quantity=3&AssociateTag=mytag-20
GET ecs.amazonaws.com /onca/xml AWSAccessKeyId=00000000000000000000&AssociateTag=mytag-20&Item.1. OfferListingId=j8ejq9wxDfSYWf2OCp6XQGDsVrWhl08GSQ9m5j%2Be8MS449BN 1XGUC3DfU5Zw4nt%2FFBt87cspLow1QXzfvZpvzg%3D%3D&Item.1.Quantity=3& Operation=CartCreate&Service=AWSECommerceService&Timestamp=2009-0 1-01T12%3A00%3A00Z&Version=2009-01-01
http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId=0000000000000000 0000&AssociateTag=mytag-20&Item.1.OfferListingId=j8ejq9wxDfSYWf2O Cp6XQGDsVrWhl08GSQ9m5j%2Be8MS449BN1XGUC3DfU5Zw4nt%2FFBt87cspLow1Q XzfvZpvzg%3D%3D&Item.1.Quantity=3&Operation=CartCreate&Service=AW SECommerceService&Signature=cF3UtjbJb1%2BxDh387C%2FEmS1BCtS%2FZ01 taykBCGemvUU%3D&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-0 1-01
以下の例は、 ListSearch における、署名なしのオリジナルリクエスト、署名対象のリクエスト文字列、および署名認証リクエストとなります。
http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSA ccessKeyId=00000000000000000000&Operation=ListSearch&Version=2009 -01-01&ListType=WishList&Name=wu&AssociateTag=mytag-20
GET ecs.amazonaws.jp /onca/xml AWSAccessKeyId=00000000000000000000&AssociateTag=mytag-20&ListTyp e=WishList&Name=wu&Operation=ListSearch&Service=AWSECommerceServi ce&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-01
http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=00000000000000000 000&AssociateTag=mytag-20&ListType=WishList&Name=wu&Operation=Lis tSearch&Service=AWSECommerceService&Signature=aMFgBNKPrz9PRR9Ato7 yanlaG%2FPkQsNxIWYbLD1V9Zc%3D&Timestamp=2009-01-01T12%3A00%3A00Z& Version=2009-01-01
以下の例は、 ListLookup における、署名なしのオリジナルリクエスト、署名対象のリクエスト文字列、および署名認証リクエストとなります。
http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWS AccessKeyId=00000000000000000000&Operation=ListLookup&Version=200 9-01-01&ListId=34AN6HPUN5AMX&AssociateTag=mytag-20&ListType=WishL ist&ResponseGroup=ListItems,Offers,Images
GET ecs.amazonaws.com /onca/xml AWSAccessKeyId=00000000000000000000&AssociateTag=mytag-20&ListId= 34AN6HPUN5AMX&ListType=WishList&Operation=ListLookup&ResponseGrou p=ListItems%2COffers%2CImages&Service=AWSECommerceService&Timesta mp=2009-01-01T12%3A00%3A00Z&Version=2009-01-01
http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId=0000000000000000 0000&AssociateTag=mytag-20&ListId=34AN6HPUN5AMX&ListType=WishList &Operation=ListLookup&ResponseGroup=ListItems%2COffers%2CImages&S ervice=AWSECommerceService&Signature=H5u4W10g0vmyB1KA6hmkrea36AFv SryL9SQfPejvWNs%3D&Timestamp=2009-01-01T12%3A00%3A00Z&Version=200 9-01-01
以下の例は、 BrowseNodeLookup における、署名なしのオリジナルリクエスト、署名対象のリクエスト文字列、および署名認証リクエストとなります。
http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWS AccessKeyId=00000000000000000000&Operation=BrowseNodeLookup&Versi on=2009-01-01&BrowseNodeId=465600&AssociateTag=mytag-20&ResponseG roup=BrowseNodeInfo,TopSellers,NewReleases,MostWishedFor,MostGift ed
GET ecs.amazonaws.com /onca/xml AWSAccessKeyId=00000000000000000000&AssociateTag=mytag-20&BrowseN odeId=465600&Operation=BrowseNodeLookup&ResponseGroup=BrowseNodeI nfo%2CTopSellers%2CNewReleases%2CMostWishedFor%2CMostGifted&Servi ce=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version =2009-01-01
http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId=0000000000000000 0000&AssociateTag=mytag-20&BrowseNodeId=465600&Operation=BrowseNo deLookup&ResponseGroup=BrowseNodeInfo%2CTopSellers%2CNewReleases% 2CMostWishedFor%2CMostGifted&Service=AWSECommerceService&Signatur e=kEXxAIqhh6eBhLhrVMz2gt3ocMaH%2FOBVPbjvc9TG8ao%3D&Timestamp=2009 -01-01T12%3A00%3A00Z&Version=2009-01-01
以下の例は、 SimilarityLookupにおける、署名なしのオリジナルリクエスト、署名対象のリクエスト文字列、および署名認証リクエストとなります。
http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWS AccessKeyId=00000000000000000000&Operation=SimilarityLookup&ItemI d=B0011ZK6PC,B000NK8EWI&Version=2009-01-01&AssociateTag=mytag-20& ResponseGroup=Offers,ItemAttributes&SimilarityType=Intersection&C ondition=New&Merchant=Amazon
GET ecs.amazonaws.com /onca/xml AWSAccessKeyId=00000000000000000000&AssociateTag=mytag-20&Conditi on=New&ItemId=B0011ZK6PC%2CB000NK8EWI&Merchant=Amazon&Operation=S imilarityLookup&ResponseGroup=Offers%2CItemAttributes&Service=AWS ECommerceService&SimilarityType=Intersection&Timestamp=2009-01-01 T12%3A00%3A00Z&Version=2009-01-01
http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId=0000000000000000 0000&AssociateTag=mytag-20&Condition=New&ItemId=B0011ZK6PC%2CB000 NK8EWI&Merchant=Amazon&Operation=SimilarityLookup&ResponseGroup=O ffers%2CItemAttributes&Service=AWSECommerceService&Signature=I2pb qxuS%2FmZK6Apwz0oLBxJn2wDL5n4kFQhgYWgLM7I%3D&SimilarityType=Inter section&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-01