非対称 XML デジタル署名または非対称 XML 暗号化 (あるいはその両方) のためのポリシー・セットおよびバインディングの構成
この手順では、非対称 XML デジタル署名および暗号化をアプリケーション固有バインディングとともに使用して SOAP メッセージに署名し暗号化するように、 メッセージ・レベルの WS-Security ポリシー・セットおよびバインディングを構成する方法を説明します。この手順の一環として、要求メッセージと応答メッセージの両方に署名するか、それらを暗号化するか、または署名と暗号化の両方を行うかを指定する必要があります。
始める前に
このタスクでは、構成しているサービス・プロバイダーとクライアントが、JaxWSServicesSamples アプリケーション内にあることを想定しています。このアプリケーションの取得およびインストール方法について詳しくは、トピック『サンプルへのアクセス (Accessing Samples) 』を参照してください。
*=info:com.ibm.wsspi.wssecurity.*=all:com.ibm.ws.webservices.wssecurity.*=all:
com.ibm.ws.wssecurity.*=all: com.ibm.xml.soapsec.*=all: com.ibm.ws.webservices.trace.*=all:
com.ibm.ws.websvcs.trace.*=all:com.ibm.ws.wssecurity.platform.audit.*=off:
このタスクについて
この手順では、非対称 XML デジタル署名および暗号化の WS-Security 制約を使用するように、WS-Security ポリシー・セットを構成するために必要な操作について説明します。この手順では、非対称 XML デジタル署名および暗号化のアプリケーション固有カスタム・バインディングをクライアントおよびプロバイダー用に構成するために必要な操作についても説明します。
この手順で使用する鍵ストアは、WebSphere® Application Server に用意されているもので、作成されるすべてのプロファイルにインストールされます。構成で ${USER_INSTALL_ROOT} 変数を直接使用すると、完全修飾パスを使用しなくても、鍵ストアの場所を簡便に指すことができます。${USER_INSTALL_ROOT} は、c:/WebSphere/AppServer/profiles/AppSrv01 などのパスに解決されます。
${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-sender.jceks
${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks
- 「サービス」 > 「サービス・プロバイダー」 > 「(App Name)」
- 「サービス」 > 「サービス・クライアント」 > 「(App Name)」

手順
- カスタム・ポリシー・セットを作成します。
- 管理コンソールで、「サービス」>「ポリシー・セット」>「アプリケーション・ポリシー・セット」とクリックします。
- 「新規」をクリックします。
- Name=AsignEncPolicy と指定します。
- 「適用」をクリックします。
- 「ポリシー」の下で、「追加」>「WS-Security」とクリックします。
- カスタム・ポリシー・セットを編集します。
- 管理コンソールで、「WS-Security」>「メイン・ポリシー」とクリックします。 デフォルトでは、ポリシーの構成は以下のようになります。
- アウトバウンド・メッセージでタイム・スタンプが送信される
- インバウンド・メッセージでタイム・スタンプが要求される
- 要求と応答 (本文、WS-Addressing ヘッダー、タイム・スタンプ) に署名する
- 要求と応答 (本文、および SOAP セキュリティー・ヘッダー内のシグニチャー・エレメント) を暗号化する
これが目的の構成である場合は、「適用」、「保存」の順にクリックして、次のステップに進みます。
この構成を変更する場合は、以下のサブステップを 1 つ以上実行します。
- オプション: 要求と応答の両方からタイム・スタンプを削除します。タイム・スタンプを片方向にすることはできません。
要求と応答の両方からタイム・スタンプを削除するには、「セキュリティー・ヘッダーにタイム・スタンプを組み込む」設定を選択解除して、「適用」をクリックします。
- オプション: 要求メッセージ・パーツを削除します。
- 「メッセージ・レベルの保護」の下で、「要求メッセージ・パーツ保護」をクリックします。
- 要求の暗号化済みパーツを削除するには、「app_encparts」をクリックし、「削除」をクリックします。
- 要求の署名済みパーツを削除するには、「app_signparts」をクリックし、「削除」をクリックします。
- 「完了」をクリックします。
- オプション: 応答メッセージ・パーツを削除します。
- 「メッセージ・レベルの保護」の下で、「応答メッセージ・パーツ保護」をクリックします。
- 応答の暗号化済みパーツを削除するには、「app_encparts」をクリックし、「削除」をクリックします。
- 応答の署名済みパーツを削除するには、「app_signparts」をクリックし、「削除」をクリックします。
- 「完了」をクリックします。
- オプション: 要求内で署名または暗号化されているパーツを表示または変更します。
- 「メッセージ・レベルの保護」の下で、「要求メッセージ・パーツ保護」をクリックします。
- 要求の暗号化済みパーツを表示または変更するには、「app_encparts」をクリックし、「編集」をクリックします。
「パーツのエレメント (Elements in part)」ページに、要求メッセージ内で暗号化されるパーツが表示されます。このページ上の設定を更新して、暗号化するエレメントを追加、変更、または削除することができます。デフォルトでは、「本文」と「シグニチャーの XPath 式 (XPath expression to the Signature)」が構成されています。
UsernameToken、SAML アサーション、またはその他のエレメントの暗号化を追加する場合は、『WS-Security の XPath 式の作成』を参照してください。
変更が終了したら、「OK」をクリックします。
- 要求の署名済みパーツを表示または変更するには、「app_signparts」をクリックし、「編集」をクリックします。
「パーツのエレメント (Elements in part)」ページに、要求メッセージ内で署名されるパーツが表示されます。このページ上の設定を更新して、署名するエレメントを追加、変更、または削除することができます。デフォルトでは、「本文」、「WS-Addressing ヘッダーの QName (QNames for the WS-Addressing header)」、および「タイム・スタンプの XPath 式 (XPath expressions to the Timestamp)」が構成されています。
STR 逆参照変換 (STR-Transform) を使用してセキュリティー・トークンに署名する場合は、以下の XPath 式を追加します。/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope'] /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Header'] /*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' and local-name()='Security'] /*[namespace-uri()='http://www.w3.org/2000/09/xmldsig#' and local-name()='Signature'] /*[namespace-uri()='http://www.w3.org/2000/09/xmldsig#' and local-name()='KeyInfo'] /*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' and local-name()='SecurityTokenReference']
その他のエレメント (BinarySecurityToken など) を署名する場合は、『WS-Security の XPath 式の作成』を参照してください。
変更が終了したら、「OK」をクリックします。
- 「完了」をクリックします。
- オプション: 応答内で署名または暗号化されているパーツを表示または変更します。
- 「メッセージ・レベルの保護」の下で、「応答メッセージ・パーツ保護」をクリックします。
- 応答の暗号化済みパーツを表示または変更するには、「app_encparts」をクリックし、「編集」をクリックします。
「パーツのエレメント (Elements in part)」ページに、応答メッセージ内で暗号化されるパーツが表示されます。このページ上の設定を更新して、暗号化するエレメントを追加、変更、または削除することができます。デフォルトでは、「本文」と「シグニチャーの XPath 式 (XPath expression to the Signature)」が構成されています。
変更が終了したら、「OK」をクリックします。
- 応答の署名済みパーツを表示または変更するには、「app_signparts」をクリックし、「編集」をクリックします。
「パーツのエレメント (Elements in part)」ページに、応答メッセージ内で署名されるパーツが表示されます。このページ上の設定を更新して、署名するエレメントを追加、変更、または削除することができます。デフォルトでは、「本文」、「WS-Addressing ヘッダーの QName (QNames for the WS-Addressing header)」、および「タイム・スタンプの XPath 式 (XPath expressions to the Timestamp)」が構成されています。
変更が終了したら、「OK」をクリックします。
- 「完了」をクリックします。
- 「適用」をクリックします。
- 構成を保存します。
- 管理コンソールで、「WS-Security」>「メイン・ポリシー」とクリックします。
- AsignEncPolicy ポリシー・セットを使用するようにクライアントを構成します。
- 管理コンソールで、「アプリケーション」>「アプリケーション・タイプ」>「WebSphere エンタープライズ・アプリケーション」>「JaxWSServicesSamples」>「サービス・クライアントのポリシー・セットおよびバインディング」とクリックします。
- Web サービス・クライアント・リソース (JaxWSServicesSamples) を選択します。
- 「ポリシー・セットの関連付け」をクリックします。
- 「AsignEncPolicy」を選択します。
- クライアントのカスタム・バインディングを作成します。
- Web サービス・リソースをもう一度選択します。
- 「バインディングの割り当て」を選択します。
- 「新規のアプリケーション固有バインディング」 をクリックして、アプリケーション固有のバインディングを作成します。
- バインディング構成の名前を指定します。
name: signEncClientBinding
- 「追加」> 「WS-Security」をクリックします。
- 「メイン・メッセージ・セキュリティー・ポリシーのバインディング」パネルが表示されない場合は、「WS-Security」を選択します。
- クライアントのカスタム・バインディングを構成します。
- 証明書ストアを構成します。
- 「鍵と証明書」をクリックします。
- 「証明書ストア」の下で、「新規のインバウンド...」をクリックします。
- name=clientCertStore と指定します。
- Intermediate X.509 certificate=${USER_INSTALL_ROOT}/etc/ws-security/samples/intca2.cer と指定します。
- 「OK」をクリックします。
- トラスト・アンカーを構成します。
- 「トラスト・アンカー」の下で、「新規」をクリックします。
- name=clientTrustAnchor と指定します。
- 「外部鍵ストア」をクリックします。
- Full path=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks と指定します。
- Password=client と指定します。
- 「OK」をクリックします。
- このページのナビゲーションで、「WS-Security」をクリックします。
- オプション: 要求メッセージに署名する場合は、以下の操作を実行します。
- シグニチャー生成プログラムを構成します。
- 「認証と保護」>「AsymmetricBindingInitiatorSignatureToken0」(シグニチャー生成プログラム) とクリックし、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックします。
- Keystore=custom と指定します。
- 「カスタム鍵ストア構成」をクリックし、以下のように指定します。
- Full path==${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
- Keystore password=client
- Name=client
- Alias=soaprequester
- Password=client
- 「OK」、「OK」、「OK」とクリックします。
- 要求の署名情報を構成します。
- 「request:app_signparts」をクリックして、Name=clientReqSignInfo と指定します。
- 「署名鍵情報」の下で、「新規」をクリックして、以下のように指定します。
- Name=clientReqSignKeyInfo
- Type=Security Token reference
- Token generator or consumer name=AsymmetricBindingInitiatorSignatureToken0
- 「OK」をクリックしてから「適用」をクリックします。
- 「メッセージ・パーツ参照」の下で、「request:app_signparts」を選択します。
- 「編集」をクリックします。
- 「変換アルゴリズム」の下で、「新規」をクリックします。
- URL=http://www.w3.org/2001/10/xml-exc-c14n# と指定します。
- 「OK」、「OK」、「OK」とクリックします。
- シグニチャー生成プログラムを構成します。
- オプション: 応答メッセージに署名する場合は、以下の操作を実行します。
- シグニチャー・コンシューマーを構成します。
- 「AsymmetricBindingRecipientSignatureToken0」(シグニチャー・コンシューマー) をクリックして、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックします。
- 「証明書」の下で、「証明書ストア」ラジオ・ボタンをクリックし、以下のように指定します。
- Certificate store=clientCertStore
- Trusted anchor store=clientTrustAnchor
- 「OK」をクリックしてから、「OK」をクリックします。
- 応答の署名情報を構成します。
- 「response:app_signparts」をクリックし、Name=clientRspSignInfo と指定します。
- 「適用」をクリックします。
- 「署名鍵情報」の下で、「新規」をクリックして、以下のように指定します。
- Name=clientReqSignKeyInfo
- Token generator or consumer name=AsymmetricBindingInitiatorSignatureToken0
- 「OK」をクリックします。
- 「署名鍵情報」の下で、「clientRspSignKeyinfo」をクリックして、「追加」をクリックします。
- 「メッセージ・パーツ参照」の下で、「response:app_signparts」を選択します。
- 「編集」をクリックします。
- 「変換アルゴリズム」の下で、「新規」をクリックします。
- URL=http://www.w3.org/2001/10/xml-exc-c14n# と指定します。
- 「OK」、「OK」、「OK」とクリックします。
- シグニチャー・コンシューマーを構成します。
- オプション: 要求メッセージを暗号化する場合は、以下の操作を実行します。
- 暗号生成プログラムを構成します。
- 「AsymmetricBindingRecipientEncryptionToken0」(暗号生成プログラム) をクリックし、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックし、Keystore=custom と指定します。
- 「カスタム鍵ストア構成」をクリックし、以下のように指定します。
- Full path==${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-sender.jceks
- Type=JCEKS
- Keystore password=storepass
- Key Name=bob
- Key Alias=bob
- 「OK」、「OK」、「OK」とクリックします。
- 要求の暗号化情報を構成します。
トラブルの回避 (Avoid trouble): 「鍵情報参照の用途」は、Key encryption(デフォルト値) に設定する必要があります。「データの暗号化」は、対称暗号化の場合に使用します。gotcha
- 「request:app_encparts」をクリックし、Name=clientReqEncInfo と指定します。
- 「適用」をクリックします。
- 「鍵情報」の下で、「新規」をクリックし、以下のように指定します。
- Name=clientReqEncKeyInfo
- Type=Key_identifier
- Token generator or consumer name=AsymmetricBindingRecipientEncryptionToken0
- 「OK」をクリックします。
- 「鍵情報」の下で、「clientReqEncKeyInfo」を選択し、「OK」をクリックします。
- 暗号生成プログラムを構成します。
- オプション: 応答メッセージを暗号化する場合は、以下の操作を実行します。
- 暗号コンシューマーを構成します。
- 「AsymmetricBindingInitiatorEncryptionToken0」(暗号コンシューマー) をクリックし、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックし、Keystore=custom と指定します。
- 「カスタム鍵ストア構成」をクリックし、以下のように指定します。
- Full path==${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-sender.jceks
- Type=JCEKS
- Keystore password=storepass
- Key Name=alice
- Key Alias=alice
- Key password=keypass
- 「OK」をクリックしてから、「OK」をクリックします。
- 応答の暗号化情報を構成します。
トラブルの回避 (Avoid trouble): 「鍵情報参照の用途」は、Key encryption(デフォルト値) に設定する必要があります。「データの暗号化」は、対称暗号化の場合に使用します。gotcha
- 「response:app_encparts」をクリックし、Name=clientRspEncInfo と指定します。
- 「適用」をクリックします。
- 「鍵情報」の下で、「新規」をクリックし、以下のように指定します。
- Name=clientRspEncKeyInfo
- Token generator or consumer name=AsymmetricBindingRecipientEncryptionToken0
- 「OK」をクリックします。
- 「鍵情報」の下で、「clientRspEncKeyInfo」を選択します。
- 「追加」をクリックして、「OK」をクリックします。
- 暗号コンシューマーを構成します。
- 証明書ストアを構成します。
- AsignEncPolicy ポリシー・セットを使用するようにプロバイダーを構成します。
- 管理コンソールで、「アプリケーション」>「アプリケーション・タイプ」>「WebSphere エンタープライズ・アプリケーション」>「JaxWSServicesSamples」>「サービス・プロバイダーのポリシー・セットおよびバインディング」とクリックします。
- Web サービス・プロバイダー・リソース (JaxWSServicesSamples) を選択します。
- 「ポリシー・セットの関連付け」をクリックします。
- 「AsignEncPolicy」を選択します。
- プロバイダーのカスタム・バインディングを作成します。
- Web サービス・プロバイダー・リソースをもう一度選択します。
- 「バインディングの割り当て」を選択します。
- 「新規のアプリケーション固有バインディング」 をクリックして、アプリケーション固有のバインディングを作成します。
- Bindings configuration name: signEncProviderBinding と指定します。
- 「追加」> 「WS-Security」をクリックします。
- 「メイン・メッセージ・セキュリティー・ポリシーのバインディング」パネルが表示されない場合は、「WS-Security」を選択します。
- プロバイダーのカスタム・バインディングを構成します。
- 証明書ストアを構成します。
- 「鍵と証明書」をクリックします。
- 「証明書ストア」の下で、「新規のインバウンド...」をクリックします。
- 指定:
- Name=providerCertStore
- Intermediate X.509 certificate=${USER_INSTALL_ROOT}/etc/ws-security/samples/intca2.cer
- 「OK」をクリックします。
- トラスト・アンカーを構成します。
- 「トラスト・アンカー」の下で、「新規...」をクリックします。
- Name=providerTrustAnchor と指定します。
- 「外部鍵ストア」をクリックし、以下のように指定します。
- Full path=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
- Password=server
- 「OK」をクリックし、このページのナビゲーションの「WS-Security」をクリックし、「認証と保護」をクリックします。
- オプション: 要求メッセージに署名する場合は、以下の操作を実行します。
- シグニチャー・コンシューマーを構成します。
- 「AsymmetricBindingInitiatorSignatureToken0」(シグニチャー・コンシューマー) をクリックして、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックします。
- 「証明書」の下で、「証明書ストア」ラジオ・ボタンをクリックし、以下のように指定します。
- Certificate store=providerCertStore
- Trusted anchor store=providerTrustAnchor
- 「OK」をクリックします。
- このページのナビゲーションで、「認証と保護」をクリックします。
- 要求の署名情報を構成します。
- 「request:app_signparts」をクリックし、Name=reqSignInfo と指定します。
- 「適用」をクリックします。
- 「署名鍵情報」の下で、「新規」をクリックして、以下のように指定します。
- Name=reqSignKeyInfo
- Token generator or consumer
- name=AsymmetricBindingInitiatorSignatureToken0
- 「OK」をクリックします。
- 「署名鍵情報」の下で、「reqSignKeyinfo」をクリックして、「追加」をクリックします。
- 「メッセージ・パーツ参照」の下で、「request:app_signparts」を選択します。
- 「編集」をクリックします。
- 「変換アルゴリズム」の下で、「新規」をクリックして、URL=http://www.w3.org/2001/10/xml-exc-c14n# と指定します。
- 「OK」、「OK」、「OK」とクリックします。
- シグニチャー・コンシューマーを構成します。
- オプション: 応答メッセージに署名する場合は、以下の操作を実行します。
- シグニチャー生成プログラムを構成します。
- 「AsymmetricBindingRecipientSignatureToken0」(シグニチャー生成プログラム) をクリックして、「適用」をクリックします。
- 「コールバック・ハンドラー」>「カスタム鍵ストア構成」とクリックし、以下のように指定します。
- Full path=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
- Keystore password=server
- Name=server
- Alias=soapprovider
- Password=server
- 「OK」、「OK」、「OK」とクリックします。
- 応答の署名情報を構成します。
- 「response:app_signparts」をクリックし、Name=rspSignInfo と指定します。
- 「署名鍵情報」の下で、「新規」をクリックして、以下のように指定します。
- Name=rspSignKeyInfo
- Type=Security Token reference
- Token generator or consumer
- name=AsymmetricBindingRecipientSignatureToken0
- 「OK」をクリックしてから「適用」をクリックします。
- 「メッセージ・パーツ参照」の下で、「response:app_signparts」を選択します。
- 「編集」をクリックします。
- 「変換アルゴリズム」の下で、「新規」をクリックして、URL=http://www.w3.org/2001/10/xml-exc-c14n# と指定します。
- 「OK」、「OK」、「OK」とクリックします。
- シグニチャー生成プログラムを構成します。
- オプション: 要求メッセージを暗号化する場合は、以下の操作を実行します。
- 暗号コンシューマーを構成します。
- 「AsymmetricBindingRecipientEncryptionToken0」(暗号コンシューマー) をクリックし、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックし、Keystore=custom と指定します。
- 「カスタム鍵ストア構成」をクリックし、以下のように指定します。
- Full path==${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks
- Type=JCEKS
- Keystore password=storepass
- Key Name=bob
- Key Alias=bob
- Key password=keypass
- 「OK」、「OK」、「OK」とクリックします。
- 要求の暗号化情報を構成します。
トラブルの回避 (Avoid trouble): 「鍵情報参照の用途」は、Key encryption(デフォルト値) に設定する必要があります。「データの暗号化」は、対称暗号化の場合に使用します。gotcha
- 「request:app_encparts」をクリックし、Name=reqEncInfo と指定します。
- 「適用」をクリックします。
- 「鍵情報」の下で、「新規」をクリックし、以下のように指定します。
- Name=reqEncKeyInfo
- Type=Key identifier
- Token generator or consumer
- name=AsymmetricBindingRecipientEncryptionToken0
- 「OK」をクリックします。
- 「鍵情報」の下で、「reqEncKeyInfo」を選択します。
- 「追加」をクリックして、「OK」をクリックします。
- 暗号コンシューマーを構成します。
- オプション: 応答メッセージを暗号化する場合は、以下の操作を実行します。
- 暗号生成プログラムを構成します。
- 「AsymmetricBindingInitiatorEncryptionToken0」(暗号生成プログラム) をクリックし、「適用」をクリックします。
- 「コールバック・ハンドラー」をクリックし、Keystore=custom と指定します。
- 「カスタム鍵ストア構成」をクリックし、以下のように指定します。
- Full path==${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks
- Type=JCEKS
- Keystore password=storepass
- Key Name=alice
- Key Alias=alicee
- 「OK」、「OK」、「OK」とクリックします。
- 要求の暗号化情報を構成します。
トラブルの回避 (Avoid trouble): 「鍵情報参照の用途」は、Key encryption(デフォルト値) に設定する必要があります。「データの暗号化」は、対称暗号化の場合に使用します。gotcha
- 「response:app_encparts」をクリックし、Name=rspEncInfo と指定します。
- 「適用」をクリックします。
- 「鍵情報」の下で、「新規」をクリックし、以下のように指定します。
- Name=rspEncKeyInfo
- Token generator or consumer
- name=AsymmetricBindingInitiatorEncryptionToken0
- 「OK」をクリックします。
- 「鍵情報」の下で、「rspEncKeyInfo」を選択します。
- 「OK」をクリックします。
- 暗号生成プログラムを構成します。
- 証明書ストアを構成します。
- 「保存」をクリックして、構成変更を保存します。
- クライアントとプロバイダーを再始動します。
- クライアントとプロバイダーを停止します。
- クライアントとプロバイダーを再始動します。
- サービスをテストします。
- Web ブラウザーで、JaxWSServicesSamples にアクセスします。 http://localhost:9080/wssamplesei/demo
トラブルの回避 (Avoid trouble): プロファイルが同じマシン上にない場合、またはポートが 9080 でない場合は、必ず正しいホスト名とポートを指定してください。gotcha
- 「Message Type Synchronous Echo」を選択します。
- 「SOAP 1.2 の使用 (Use SOAP 1.2)」が選択されていないことを確認します。
- メッセージを入力し、「メッセージの送信 (Send Message)」をクリックします。
- Web ブラウザーで、JaxWSServicesSamples にアクセスします。 http://localhost:9080/wssamplesei/demo
タスクの結果
非対称 XML デジタル署名および暗号化を使用して SOAP の要求と応答を保護するように、JaxWSServicesSamples Web サービス・アプリケーションが構成されました。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_general_policyset
ファイル名:twbs_general_policyset.html