WSセキュリティは、Webサービスセキュリティ:SOAPメッセージセキュリティという正式名称をもち、OASIS (Organization for the Advancement of Structured Information Standards) によって定められた、SOAPメッセージの署名や暗号化する方式です。Product Advertising APIでは、WSセキュリティ バージョン1.0の仕様をサポートしています。WSセキュリティ1.0の仕様に関する詳細は OASIS-Open web site for WS-Security または http://www.xmlconsortium.org/wg/sec/wss.html をご参照ください。
| ![[ヒント]](images/tip.png) | ヒント | 
|---|---|
| WSセキュリティの要件を最も簡単に満たす方法は、WSセキュリティ1.0とX.509証明書をサポートしているSOAPツールキットをご利用になる方法です。 | 
| ![[警告]](images/caution.png) | 警告 | 
|---|---|
| リクエストを安全かつ正確に送信するためには、全てのSOAPリクエストはHTTP転送を介して送信されなければなりません。 | 
SOAPにおいてWSセキュリティを利用する場合、リクエストの認証のためにはX.509証明書を使用しなければなりません。X.509証明書は、公開キーとその証明書を格納するセキュリティトークンです。X.509証明書は、公開キーとその証明書を第三者が保証することで安全にやりとりするための基盤であるPublic Key Infrastructure (PKI)において使用されています。PKI は、認証を必要とする多くの場面で一般的に利用されています。PKIとX.509証明書についての詳細については、Techencyclopedia.comの digital certificate および PKI の項目をご参照ください。
| ![[注]](images/note.png) | 注意 | 
|---|---|
| Product Advertising APIでは、公開キー基盤の全てを提供しているわけではありません。証明書情報は、Product Advertising APIに送信されるリクエストを認証する目的においてのみ使用されます。X.509証明書は、公開キーの送信においてのみ使用され、その他含まれる可能性のある証明情報は使用されません。 | 
WSセキュリティ1.0の仕様では、X.509証明書に関連付けられたプライベートキーによってSOAPメッセージに署名を行い、このX.509証明書をSOAPメッセージのヘッダに含めていただくことが必要です。具体的には、WSセキュリティ X.509トークンのプロファイルとして定義されているように、X.509証明書を
			BinarySecurityToken して例示していただかなければなりません。 (以下からも入手いただけます: the OASIS-Open web site). 
ご自身のX.509証明書またはAWSによって作成された証明書をご利用いただくことも可能です。以下は、ご自身の証明書をAWSにアップロードしてAWSが生成した証明書を取得する方法についてのご説明となります。外部の認証機関によって作成された証明書を取得するには、その機関によって提供されている方法で取得を行ってください。
既にご利用になりたいX.509証明書をお持ちの場合、証明書をAWSにアップロードしていただくことが可能です(プライベートキーの値は除く)。アップロードされた証明書は、自動的にお客様のAWSアカウントに関連付けられます。
AWSは、有効ないずれの文法ならびに暗号によるX.509証明書を処理します。証明書は自己署名またはいずれのキーによる署名も有効となります。証明書はプライバシー強化メール(PEM)形式である必要があり、バイナリーのDER (Distinguished Encoding Rules)形式のbase64エンコーディングの証明書を含まなければなりません。
| ![[重要]](images/important.png) | 重要 | 
|---|---|
| 証明書をアップロードする際、AWSは証明書の内容をチェックし、証明書が期限切れになっていないかを確認します。AWSは、アップロードされた証明書が失効状況についての証明書失効リスト(CRL)による確認や、証明書の有効性についての認証局(CA)やその他の信頼された機関への確認は行いません。 | 
ご自身のX.509証明書をアップロードする方法
Amazon WebサービスのWebサイト http://aws.amazon.com.にジャンプします。
Your Accountにマウスのポインタを合わせて、Access Identifiers をクリックします。
View Access Key Identifiers (お客様のアクセスキー識別子)をクリックし、Your AWS Accountにログインします。
AWS Access Key Identifiers のページが表示されます。
X.509 Certificate (X.509証明書)と表示されている部分までスクロールし、 Upload をクリックします。
ページに表示される手順に従って、ご自分の証明書をアップロードします。
もしX.509証明書をお持ちでない場合、あるいは、AWSで利用するための証明書を新たに作成したい場合は、AWSを使用して証明書を作成し、自動的にご自身のAWSアカウントに関連付けることができます。AWSによって作成された証明書は、AWSの内部機関によって署名されたものとなります。
AWSを使用してX.509証明書を作成する方法
Amazon WebサービスのWebサイト http://aws.amazon.com.にジャンプします。
Your Account にマウスのポインタを合わせ、メニューのリストを表示します。
View Access Key Identifiers (お客様のアクセスキー識別子)をクリックし、アカウントにログインします。
AWS Access Key Identifiers のページが表示されます。
X.509 Certificate (X.509証明書)と表示されている部分までスクロールし、Create New をクリックします。
Create a New Certificate (新しい証明書を作成) のページが表示されます。
ページに表示される情報をお読みいただき、証明書を作成するには Yes をクリックします。
Create Success (証明書の作成に成功しました) のページが表示されます。
Download your private key file and X.509 certificate file.
| ![[重要]](images/important.png) | 重要 | 
|---|---|
| 証明書をダウンロードする前に、ブラウザのウィンドウを閉じないようご注意ください。ウィンドウを閉じてしまうと、証明書を再度作成し直していただくことになります。 | 
全てのSOAPリクエストは、X.509証明書と関連付けられたプライベートキーによって署名されていなければなりません。To create the signature, you sign the タイムスタンプ 署名を作成するには、Timesttamp要素への署名、およびWSアドレッシングを利用されている場合は、 Action ヘッダ要素への署名を行うことを推奨します。また、オプションとして、 Body および To ヘッダ要素へ署名いただくことも可能です。
以下の例はWSセキュリティとX.509証明書を利用したSOAPリクエストの最初の部分を表示したものです。もしお客様がWSセキュリティとX.509証明書をサポートしているSOAPツールキットをご利用の場合、ツールキットが自動的にリクエストを作成しますので、ご自分でリクエストを作成していただく必要はありません。以下の例は、SOAPリクエストにおいて認証関連の問題のトラブルシューティングが必要になった場合にご参照いただけます。表示した例の下部に、要件の一覧も表示されており、例の中でどのように要件が使用されるかを説明しています。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
  <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
  <wsse:BinarySecurityToken
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
     EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
 EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
     ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
    wsu:Id="CertId-1064304">
 ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
    wsu:Id="CertId-1064304">
        [Your base64 encoded X.509 certificate…]
  </wsse:BinarySecurityToken>
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
    <ds:CanonicalizationMethod
 [Your base64 encoded X.509 certificate…]
  </wsse:BinarySecurityToken>
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
    <ds:CanonicalizationMethod  Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:CanonicalizationMethod>
      <ds:SignatureMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:CanonicalizationMethod>
      <ds:SignatureMethod  Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>
     <ds:Reference URI="#id-17984263">
        <ds:Transforms>
          <ds:Transform
 Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod>
     <ds:Reference URI="#id-17984263">
        <ds:Transforms>
          <ds:Transform  Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform>
        </ds:Transforms>
        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
        <ds:DigestValue>0pjZ1+TvgPf6uG7o+Yp3l2YdGZ4=</ds:DigestValue>
     </ds:Reference>
    <ds:Reference URI="#id-15778003">
      <ds:Transforms>
        <ds:Transform
 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform>
        </ds:Transforms>
        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
        <ds:DigestValue>0pjZ1+TvgPf6uG7o+Yp3l2YdGZ4=</ds:DigestValue>
     </ds:Reference>
    <ds:Reference URI="#id-15778003">
      <ds:Transforms>
        <ds:Transform  Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform>
      </ds:Transforms>
      <ds:DigestMethod
 Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform>
      </ds:Transforms>
      <ds:DigestMethod  Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
      <ds:DigestValue>HhRbxBBmc2OO348f8nLNZyo4AOM=</ds:DigestValue>
    </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>bmVx24Qom4kd9QQtclxWIlgLk4QsQBPaKESi79x479xgbO9PEStXMiHZuBAi9luuKdNTcfQ8UE/d
       jjHKZKEQRCOlLVy0Dn5ZL1RlMHsv+OzJzzvIJFTq3LQKNrzJzsNe</ds:SignatureValue>
    <ds:KeyInfo Id="KeyId-17007273">
 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>
      <ds:DigestValue>HhRbxBBmc2OO348f8nLNZyo4AOM=</ds:DigestValue>
    </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>bmVx24Qom4kd9QQtclxWIlgLk4QsQBPaKESi79x479xgbO9PEStXMiHZuBAi9luuKdNTcfQ8UE/d
       jjHKZKEQRCOlLVy0Dn5ZL1RlMHsv+OzJzzvIJFTq3LQKNrzJzsNe</ds:SignatureValue>
    <ds:KeyInfo Id="KeyId-17007273">
       <wsse:SecurityTokenReference
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
        wsu:Id="STRId-22438818">
        <wsse:Reference URI="#CertId-1064304"
           ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">
        </wsse:Reference>
      </wsse:SecurityTokenReference>
    </ds:KeyInfo>
  </ds:Signature>
  <wsu:Timestamp
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
 <wsse:SecurityTokenReference
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
        wsu:Id="STRId-22438818">
        <wsse:Reference URI="#CertId-1064304"
           ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">
        </wsse:Reference>
      </wsse:SecurityTokenReference>
    </ds:KeyInfo>
  </ds:Signature>
  <wsu:Timestamp
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
     wsu:Id="id-17984263">
    <wsu:Created>2006-06-09T10:57:35Z</wsu:Created>
    <wsu:Expires>2006-06-09T11:02:35Z</wsu:Expires>
  </wsu:Timestamp>
  </wsse:Security>
</SOAP-ENV:Header>
wsu:Id="id-17984263">
    <wsu:Created>2006-06-09T10:57:35Z</wsu:Created>
    <wsu:Expires>2006-06-09T11:02:35Z</wsu:Expires>
  </wsu:Timestamp>
  </wsse:Security>
</SOAP-ENV:Header>
BinarySecurityTokenおよびSignaturesの要件
|   http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary | |
|   http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3 または: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1 | |
|   | |
|   http://www.w3.org/2001/10/xml-exc-c14n# | |
|   http://www.w3.org/2000/09/xmldsig#rsa-sha1 | |
|   http://www.w3.org/2001/10/xml-exc-c14n# または: http://www.w3.org/TR/2001/REC-xml-c14n-20010315 | |
|   http://www.w3.org/2000/09/xmldsig#sha1 | |
|   | |
| お客様が署名される全てのメッセージ要素には  |