![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e6f04cf)
お世話になります。
署名認証追加に伴い、プログラムを変更したのですが、
現在、以前の認証方法と署名認証の両方が平行稼動されているためか、
本当に署名認証が成功しているのか確認することができません。
ちなみに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で質問しましょう!
似たような質問が見つかりました
- カードローン・キャッシング 楽天カードの増額の申し込みについて 昨日、 楽天カード株式会社から→ 拝啓 平素は楽天カードをご利用 1 2022/03/23 10:34
- 所得税 電子税?のメールについて教えてください 8 2022/09/04 21:38
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- その他(悩み相談・人生相談) 携帯ショップで自動車免許証の裏にマンション名を書くよう言われました 4 2022/12/21 17:52
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- 家賃・住宅ローン 金消契約の予約時に必要な完済証明を出した後 1 2022/07/07 14:39
- その他(メールソフト・メールサービス) Thunderbirdのメール送信ができません 1 2022/10/28 16:54
- Amazon 迷惑メール? 6 2023/04/29 15:56
- 損害保険 損保Zの「ご近所(第三者)確認」について教えてください 5 2022/11/07 11:22
- 迷惑メール・スパム これも、フィッシング詐欺? 3 2023/05/14 11:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Python... 環境設定 初心者です...
-
ITパスポートの勉強をしていま...
-
Adobe Premiere Proについて教...
-
バッチファイルが保存されてい...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
プログラミングサイトについて。
-
IT業界より楽に稼げる業界って...
-
https://youtube.com/shorts/bT...
-
Arduinoに関する質問
-
pythonでのカーソル移動がずれる
-
Python - Excel で Webからデー...
-
入力された文字列が、LD22000を...
-
プログラミング初心者です。 Wi...
-
プログラム言語について。
-
プログラミングを教えたいです...
-
Gitについて質問。 クローンし...
-
テキストファイルのファイル名...
-
Webプログラムってネイティブア...
-
フリーランスのエンジニアって...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheのBasic認証のログの取り方
-
外部の別ホストからのPOST送信...
-
HTTPのBasic認証に自動ログイン...
-
Basic認証のパスワードをユーザ...
-
Basic認証
-
LinuxOSのユーザ・パスワードを...
-
年齢認証ページの作成を依頼さ...
-
BASIC認証
-
SQLConfigDataSourceについて。
-
Tomcatの基本認証が8080ポート...
-
電話の自動発信 返信記録プロ...
-
Linuxからファイルのコピー
-
web.configでフォーム認証でき...
-
ホームページ作成サイトで企業...
-
PHPの$_SERVER["REQUEST_URL"]...
-
CSVによるID,パスワードの一括登録
-
Amazon Product Advertising AP...
-
SEOスパムの基準について
-
会員投稿サイトのCMSについて
-
エクセルで備品管理
おすすめ情報