STS との通信のためのポリシー・セットおよびバインディングの構成

Web サービス・クライアントが外部 Security Token Service (STS) から SAML アサーションを要求できるように、ポリシー・セットおよびバインディング文書を構成します。

始める前に

インストール後、 新規サーバー・プロファイルを作成するか、または、既存のプロファイルに SAML 構成設定を 追加する必要があります。詳しくは、SAML 構成のセットアップに 関する説明を参照してください。

このタスクについて

SAML を使用する WebSphere® Application Server は、外部 Security Token Service (STS) との通信時に Web Services Security ポリシー・セットおよびバインディングを使用する Web サービス・クライアントをサポートします。Web サービス・クライアントは、ポリシー・セットおよびバインディングを使用してターゲット Web サービス・プロバイダーと通信します。 Web サービス・クライアントは、2 組のポリシー・セットの関連付けを使用します。1 つはターゲット Web サービスとの通信用であり、もう 1 つは STS への通信用です。ターゲット Web サービス・プロバイダーとの通信時に使用されるポリシー・セットおよびバインディングは、Web サービス・クライアントに関連付けられます。それとは対照的に、STS 通信を可能にするポリシー・セットおよびバインディングは、Web サービス・クライアントに直接関連付けられません。その代わりに、STS 通信を可能にするポリシー・セットおよびバインディングは、カスタム・プロパティーとして Web サービス・クライアント・バインディング文書内に指定されます。STS との通信には、汎用バインディング またはアプリケーション固有のバインディングを使用することが できます。汎用バインディングを使用して STS にアクセスする方法は単純で、 その汎用バインディングの名前をカスタム・プロパティーに指定するだけです。

STS にアクセスするためのアプリケーション固有の バインディングを構成する手順は、もう少し複雑です。管理コンソールは、Web サービス・プロバイダーとの通信のためのポリシー・セットの関連付けを管理するよう設計されています。管理コンソールは、STS との通信のための 2 組目のポリシー・セットの関連付けを管理する ようには設計されていません。ただし、手順で説明するように、管理コンソールを 使用して、STS にアクセスするためのポリシー・セットの関連付けを管理 することができます。

管理コンソールを使用して、STS にアクセスするために使用されるポリシー・セットを Web サービス・クライアントに関連付けし、その後、アプリケーション固有のバインディングを作成および変更します。バインディング構成が完了したら、ポリシー・セットおよびバインディングを Web サービス・クライアントから切り離します。この手順が必要なのは、次のステップで、ターゲット Web サービス・プロバイダーとの通信のためのポリシー・セットおよびバインディングを関連付けるためです。切り離されたアプリケーション固有バインディングはファイル・システムから削除されないので、Web サービス・クライアント・バインディングのカスタム・プロパティーは、切り離されたアプリケーション固有バインディングを正常に参照できます。

この手順では、 例としてデフォルト・アプリケーション・ポリシー・セット Username WSHTTPS default を使用して、 STS にアクセスするための構成ステップを説明します。これらのステップ は、他のポリシー・セットにも適用できます。この例では、Web サービス・アプリケーション JaxWSServicesSamples が使用されます。JaxWSServicesSamples はデフォルトでは インストールされません。

手順

  1. Username WSHTTPS default ポリシー・セットをインポートします。 この例では、手順を示すために Username WSHTTPS default ポリシーが 使用されていますが、これと異なっていても、外部 STS のポリシー要件に一致するポリシー・セットがあれば、そのポリシー・セットを使用してバインディング を構成できます。
    1. 「サービス」>「ポリシー・セット」>「アプリケーション・ポリシー・セット」とクリックします。
    2. 「インポート」をクリックします。
    3. 「デフォルトのリポジトリー」を選択します。
    4. WSHTTPS default ポリシー・セットを選択します。
    5. OK」をクリックして、このポリシー・セットをインポートします。
  2. トラスト・クライアントのポリシー・セットを関連付けます。「アプリケーション」>「アプリケーション・タイプ」>「WebSphere エンタープライズ・アプリケーション」>「JaxWSServicesSamples」> 「サービス・クライアントのポリシー・セットおよびバインディング」とクリックします。 ポリシー・セットの関連付けと切り離し、およびトラスト・クライアント・バインディングの構成に 関連するステップは、外部 STS へのアクセスにアプリケーション固有のバインディングを使用する場合にのみ 必要となります。外部 STS へのアクセスに汎用バインディングを使用する場合は、 これらのステップをスキップして、STS との通信の構成に関するステップへ進んでください。
    1. Web サービス・クライアント・リソースのチェック・ボックスを選択します。
    2. 「クライアント・ポリシー・セットの関連付け」をクリックします。
    3. ポリシー・セット Username WSHTTPS default を選択します。
    このステップでは、ポリシー・セットを使用してアプリケーション・クライアントが ターゲット Web サービスにアクセスする場合と同様に、このポリシー・セットを Web サービス・トラスト・クライアントに関連付けます。しかし、Username WSHTTPS default ポリシー・セットを使用して 外部 STS にアクセスする予定であるため、ポリシー・セットは Web サービス・クライアントに一時的にしか 関連付けられません。 このステップの目的は、管理コンソールを使用して、クライアント・バインディング文書 を作成または変更できるようにすることです。
  3. トラスト・クライアント・バインディングを構成します。
    1. Web サービス・クライアント・リソースをもう一度選択します。
    2. 「サービス・クライアントのポリシー・セットおよびバインディング (Service client policy sets and bindings)」パネルで、「バインディングの割り当て (Assign Binding)」をクリックします。
    3. 「新規のアプリケーション固有バインディング」をクリックして、アプリケーション固有のバインディングを作成します。
    4. 新規のアプリケーション固有バインディングのバインディング構成名を指定します。 この例では、バインディング名は SamlTCSample です。
    5. SSL トランスポート」ポリシー・タイプをバインディングに追加します。 オプションで、NodeDefaultSSLSettings 設定を変更できます。「セキュリティー」>「SSL 証明書および鍵管理」>「SSL 構成」> NodeDefaultSSLSettings とクリックします。
  4. オプション: HTTP ヘッダーに追加するためのユーザー名とパスワードを構成したい場合、 または、プロキシーを構成したい場合は、前のステップを使用して HTTP トランスポート・バインディング を作成することができます。HTTP トランスポート・バインディングの作成を選択しない場合、Web サービス・ランタイム環境はデフォルトの HTTP トランスポート設定を使用します。
  5. WS-Security」ポリシー・タイプをバインディングに追加して、 認証設定を変更します。
    1. 「アプリケーション」>「アプリケーション・タイプ」>「WebSphere エンタープライズ・アプリケーション」> JaxWSServicesSamples > 「サービス・クライアントのポリシー・セットおよびバインディング」> SamlTCSample > 「追加」>「WS-Security」>「認証と保護」> request:uname_token と クリックします。
    2. 適用」をクリックします。
    3. コールバック・ハンドラー」を選択します。
    4. Web サービス・クライアントが外部 STS に認証されるための ユーザー名とパスワード (およびパスワードを確認) を指定します。
    5. OK」をクリックしてから「保存」をクリックします。
  6. バインディング設定が保存されたら、 「サービス・クライアントのポリシー・セットおよびバインディング」パネルに戻って、 ポリシー・セットとバインディングを切り離します。
    1. 「アプリケーション」>「アプリケーション・タイプ」>「WebSphere エンタープライズ・アプリケーション」>「JaxWSServicesSamples」> 「サービス・クライアントのポリシー・セットおよびバインディング」とクリックします。
    2. Web サービス・クライアント・リソースのチェック・ボックスをクリックします。
    3. クライアント・ポリシー・セットの切り離し」をクリックします。
    ポリシー・セットが切り離されても、前のステップで作成したアプリケーション固有のバインディング構成 はファイル・システムから削除されません。これは、まだ、作成したアプリケーション固有のバインディングを使用して STS にアクセスできることを意味します。
  7. SSL 証明書を外部 STS からインポートします。
    1. 「セキュリティー」>「SSL 証明書および鍵管理」 >「エンドポイント・セキュリティー構成の管理」> server_or_node_endpoint > 「鍵ストアおよび証明書」> NodeDefaultTrustStore >「署名者証明書」とクリックします。
    2. ポートから取得」をクリックします。
    3. 外部 STS サーバーのホスト名およびポート番号を指定し、 証明書に別名を割り当てます。 SSL STS ポートを使用してください。
    4. 署名者情報の取得」をクリックします。
    5. 適用」および「保存」をクリックして、 検索した証明書を NodeDefaultTrustStore オブジェクトにコピーします。
  8. オプション: wstrustClientBinding 構成をさらに変更する必要があり、 wstrustClientBinding プロパティーがアプリケーション固有のバインディングを指している場合は、 変更を完了する前に、アプリケーション固有のバインディングを Web サービス・クライアントに関連付ける 必要があります。関連付けは一時的です。前のステップで詳述したように、 変更が完了したら、変更したアプリケーション固有のバインディングを Web サービス・クライアントから 切り離すことができます。

タスクの結果

正常に上記ステップを完了すると、Web サービス・クライアントは外部 STS に要求を送信する準備ができた状態になります。この機能を 使用可能にするため、手順の完了時点で、以下の条件および設定が アクティブになっています。
  • SAML トークンを伝搬するポリシー・セットおよびバインディングを関連付けします。例えば、SAML11 Bearer WSHTTPS default ポリシー・セットおよび Saml Bearer Client sample 汎用バインディングを Web サービス・クライアントに関連付けます。
  • Username WSHTTPS default ポリシー・セットおよび アプリケーション固有のバインディング SamlTCSample は、Saml Bearer Client sample バインディング 内で参照されていて、外部 STS にアクセスするようセットアップされています。
  • 外部 STS SSL 証明書が取得され、 NodeDefaultTrustStore トラストストアに追加されました。
  • 正常に機能を使用可能にしたことを確認するため、 トレース設定 com.ibm.ws.wssecurity.*=all=enabled を構成できます。 トレースは、以下の例のように、SAML アサーションが外部 STS によって 発行されたことを示します。
    [8/23/09 18:26:59:252 CDT] 0000001f TrustSecurity 3   Security Token Service response:
    [8/23/09 18:26:59:392 CDT] 0000001f TrustSecurity 3
    <?xml version="1.0" encoding="UTF-8"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
       xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <s:Header>
            <a:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTRC/IssueFinal</a:Action>
            <a:RelatesTo>urn:uuid:663A7B27BA8EB2CF9D1251070029934</a:RelatesTo>
            <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1">
                <u:Timestamp u:Id="_0">
                    <u:Created>2009-08-23T23:26:57.664Z</u:Created>
                    <u:Expires>2009-08-23T23:31:57.664Z</u:Expires>
                </u:Timestamp>
            </o:Security>
        </s:Header>
        <s:Body>
          <trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
            <trust:RequestSecurityTokenResponse>
              <trust:Lifetime>
                <wsu:Created 
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2009-08-23T23:26:57.648Z</wsu:Created>
                <wsu:Expires 
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2009-08-24T09:26:57.648Z</wsu:Expires>
              </trust:Lifetime>
            <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
              <a:EndpointReference>
                 <a:Address>https://taishan.austin.ibm.com:9443/WSSampleSei/EchoService12</a:Address>
                  </a:EndpointReference>
            </wsp:AppliesTo>
            <trust:RequestedSecurityToken>
              <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" MajorVersion="1" MinorVersion="1"
    AssertionID="_3c656382-9916-4e5f-9a16-fe0287dfc409" Issuer="http://svt193.svt193domain.com/Trust" IssueInstant="2009-08-23T23:26:57.663Z">
              <saml:Conditions NotBefore="2009-08-23T23:26:57.648Z" NotOnOrAfter="2009-08-24T09:26:57.648Z">
              <saml:AudienceRestrictionCondition>
              <saml:Audience>https://taishan.austin.ibm.com:9443/WSSampleSei/EchoService12</saml:Audience>
              </saml:AudienceRestrictionCondition>
              </saml:Conditions>
              <saml:AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password"
    AuthenticationInstant="2009-08-23T23:26:57.640Z">
              <saml:Subject>
              <saml:SubjectConfirmation>
              <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
              </saml:SubjectConfirmation>
              </saml:Subject>
              </saml:AuthenticationStatement>
                <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:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                <ds:Reference URI="#_3c656382-9916-4e5f-9a16-fe0287dfc409">
                <ds:Transforms>
                <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue>YGySZX4VPv25R+oyzFpE0/T/tjs=</ds:DigestValue>
                </ds:Reference>
                </ds:SignedInfo>
                     <ds:SignatureValue>eP68...Vr08=</ds:SignatureValue>
                       <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                          <X509Data>
                            <X509Certificate>MII...ymqg3</X509Certificate>
                          </X509Data>
                        </KeyInfo>
                      </ds:Signature>
                 </saml:Assertion>
             </trust:RequestedSecurityToken>
           <trust:RequestedAttachedReference>
              <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                <o:KeyIdentifier
    ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID">_3c656382-9916-4e5f-9a16-fe0287dfc409</o:KeyIdentifier>
                </o:SecurityTokenReference>
            </trust:RequestedAttachedReference>
            <trust:RequestedUnattachedReference>
              <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                 <o:KeyIdentifier
    ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID">_3c656382-9916-4e5f-9a16-fe0287dfc409</o:KeyIdentifier>
              </o:SecurityTokenReference>
            </trust:RequestedUnattachedReference>
            <trust:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1</trust:TokenType>
            <trust:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</trust:RequestType>
            <trust:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer</trust:KeyType>
            </trust:RequestSecurityTokenResponse>
            </trust:RequestSecurityTokenResponseCollection>
        </s:Body>
    </s:Envelope>

次のタスク

Web サービス・クライアントおよび Web サービス・プロバイダー構成を完了します。詳しくは、SAML bearer トークン用のクライアントおよびプロバイダーの バインディングの構成に関する説明を参照してください。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configsamlpsbindsts
ファイル名:twbs_configsamlpsbindsts.html