
お世話になります。
署名認証追加に伴い、プログラムを変更したのですが、
現在、以前の認証方法と署名認証の両方が平行稼動されているためか、
本当に署名認証が成功しているのか確認することができません。
ちなみに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ランキング
-
Amazon Product Advertising AP...
-
web.configでフォーム認証でき...
-
BASIC認証
-
パスワードの暗号化
-
携帯PCのアクセス制限。PHP初心...
-
パスワード認証後にリンク先を...
-
直ぐに認証画面が求められるよ...
-
ホームページ作成サイトで企業...
-
サイト経営初心者です。アドバ...
-
検索されている語句
-
Linuxのエラーログ内容の意味に...
-
ホームページ作成について
-
IISのログから自分のHPにどこ...
-
SEO対策でページランク5と6の被...
-
Visual Studio 2005 Express Ed...
-
httpd.conf
-
ログインしてくれた人の顧客リ...
-
JANコードを検索出来るサイト
-
SEO初心者です。
-
Googleでの検索
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheのBasic認証のログの取り方
-
外部の別ホストからのPOST送信...
-
Basic認証のパスワードをユーザ...
-
SQLConfigDataSourceについて。
-
パスワード認証後にリンク先を...
-
Basic認証のログオフはやはり無...
-
PHPでログイン認証の作成について
-
IIS,Tomcat,Oracleの共存
-
.NET(VisualC++2008)にて、指定...
-
Pythonのbottleで二段階認証す...
-
ソフトウェアのWEB認証(アクテ...
-
Tomcatの基本認証が8080ポート...
-
ユーザごとに異なるページ
-
BASIC認証をHTMLページに埋め込...
-
jQueryのFullCalendarについて...
-
.htaccessでBasic認証
-
エクセルで備品管理
-
WEBサイト アクセス端末の特定
-
携帯PCのアクセス制限。PHP初心...
-
グーグルで検索順位が上がると...
おすすめ情報