お世話になります。
署名認証追加に伴い、プログラムを変更したのですが、
現在、以前の認証方法と署名認証の両方が平行稼動されているためか、
本当に署名認証が成功しているのか確認することができません。
ちなみにMicrosoft SOAP Tool Kitを使用しSOAPリクエストの中身を以下と
比較したとこと(1)~(9)の内容は全て満たしていました。
https://affiliate.amazon.co.jp/gp/associates/hel …
本当に成功しているのか確証が得られないため、
確認しようと試みた内容は以下です。
【その1】
アカウントをA・B2つ作成し、1つ(A)に証明書をアップロードする。
Aの証明書をWEBサーバの証明書ストアにインストールし、
プログラム中のAccessKeyをA、B変更し、結果が返ってくるか確認する。
<結果予想>
A:成功 B:失敗(WEBサーバ上の証明書はアカウントBの証明書ではないため)
<結果>
A:成功 B:成功
Bにはそもそも証明書がアップロードされていないので、
証明書ではなくAccessKeyによる認証をされているのか???
【その2】
アカウントAの証明書を新しく作り直し、amazonにアップする。
<結果予想>
WEBサーバの証明書ストアに登録してあるものと、amazonに登録してあるものと
内容は異なるので、失敗するはず。
<結果>
成功
平行運用期間中は電子認証に失敗したら現行のAccessKeyだけの
認証を行っているのかなとも思ったのですが、本当は失敗するのであれば
プログラムが間違っていることになるのでしょうか??
色々調べてここまでやっとたどり着いたのですが、情報が少なく、行き詰ってしまいました。
どなたかよい知恵がございましたら教えてください。
ちなみに開発環境と実装したプラグラムの内容は以下です。
【開発環境】
・ASP.Net(C#) .NET Framework 1.1
・Microsoft.Web.Services(WSE1.0を使用してデジタル署名を行う)
【プログラム】
//■ItemSearchRequestオブジェクト作成-----------------------------------
com.amazon.webservices.ItemSearchRequest searchRequest = new com.amazon.webservices.ItemSearchRequest();
//検索キーワードの指定
searchRequest.Keywords = Search.Text;
//検索するストアのインデックスを指定(書籍)
searchRequest.SearchIndex = "Books";
//返されるデータの種類を指定
searchRequest.ResponseGroup = new string [] {"ItemAttributes"};
//ページを指定
searchRequest.ItemPage = Page.Text;
//並び順(売上順)
searchRequest.Sort="salesrank";
//■ItemSearchオブジェクト作成--------------------------------------------------------
com.amazon.webservices.ItemSearch search = new com.amazon.webservices.ItemSearch();
//AWSAccessKeyId
search.AWSAccessKeyId = "MyAccessKey";
//ItemSearchRequestオブジェクトの配列を指定
search.Request = new com.amazon.webservices.ItemSearchRequest[] { searchRequest };
//■電子証明書----------------------------------------------------------------
com.amazon.webservices.AWSECommerceService ecs4 = new com.amazon.webservices.AWSECommerceService();
SoapContext ctx = ecs4.RequestSoapContext;
X509CertificateStore store = X509CertificateStore.LocalMachineStore(X509CertificateStore.MyStore);
if (!store.OpenRead())
return;
X509CertificateCollection certs = store.FindCertificateBySubjectName("C=US, O=Amazon.com, OU=AWS-Developers, CN=XXXXXXXX");
X509SecurityToken x509 = new X509SecurityToken(((X509Certificate)certs[0]));
ctx.Security.Tokens.Add(x509);
store.Close();
Signature sign = new Signature(x509);
ctx.Security.Elements.Add(sign);
//■Webサービスの呼び出し----------------------------------------------------------------
com.amazon.webservices.ItemSearchResponse searchResponse = ecs4.ItemSearch(search);
No.1ベストアンサー
- 回答日時:
私はPHPでRESTリクエストで次のように確認しました。
1.タイムスタンプをわざと間違えてみる。
半日前とか適当な値でリクエスト→失敗。
正しいGMTでリクエスト→成功。
2.Signeture値をわざと間違える。
Signetureにゴミを付けてリクエスト→失敗。
正しいSignetureでリクエスト→成功。
となっていますので、ちゃんとRESTでは失敗しますので認証しているようです。SOAPリクエストは詳しくありませんので、一度AWSの開発者フォーラムの方で確認されてはどうでしょうか?
http://developer.amazonwebservices.com/connect/f …
ご回答ありがとうございます。
誤った方法を試すと、認証に失敗するのですね。
ということは、やっぱりプログラムが正常に動いていないのでしょうか・・。
提案してくださったように、タイムスタンプやSignetureを
変更しようかとも思いましたが、SOAPでWSEを使用すると、
勝手にタイムスタンプやデジタル証明をメッセージに
付加してくれるので、変更することができないんです。。
でももしかしたら変更する方法があるかもしれないので、
もう少し調べてみます。
ちなみに日本語のフォーラムには質問済みで、回答してもらえないので、英語サイトのほうにもしてみました。
amazonの方が答えてくれるといいのですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Web初心者です。 簡易的なWebペ...
-
vba クリップボードクリアにつ...
-
python エラー
-
Google ColaboでGUI作成
-
python3について。
-
AIの登場でプログラマーたちが...
-
プログラマーと学歴の関係性に...
-
以下の技能を無料で受講できる...
-
プログラマーは誘惑にさらされ...
-
HTMLソースが表示のページのも...
-
pythonでのカーソル移動がずれる
-
プログラミング言語について
-
matplotlibでのLaTex表示
-
初心者powershellのPS1ファイル...
-
プログラマーに向いている人の...
-
このURLで広告を出しているのは...
-
pythonの画像の貼り付けについて
-
プログラミングの雑談がしたい...
-
python の 連鎖代入の文法
-
Lazarus(IDE2.2.6)をインスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheのBasic認証のログの取り方
-
Basic認証のパスワードをユーザ...
-
外部の別ホストからのPOST送信...
-
LinuxOSのユーザ・パスワードを...
-
SQLConfigDataSourceについて。
-
Tomcatの基本認証が8080ポート...
-
IIS,Tomcat,Oracleの共存
-
HTTPのBasic認証に自動ログイン...
-
phpのパスワード認証
-
ユーザー認証についての質問
-
フォーム認証について
-
web.configでフォーム認証でき...
-
Basic認証のログオフはやはり無...
-
ホームページ作成サイトで企業...
-
jQueryのFullCalendarについて...
-
エクセルで備品管理
-
OAuthでTwitterにツイートしたい
-
PHP 会員管理・限定ページ・メ...
-
Excel VBA で Webからデータを...
-
ユーザー認証について
おすすめ情報