プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Web Services Manager相互運用性ソリューション・ガイド
12c (12.2.1.1)
E79357-01
目次へ移動
目次

前
次

8 Axis 1.4およびWSS4J 1.5.8のセキュリティ環境との相互運用性

この章では、Axis 1.4およびWSS4J 1.5.8のセキュリティ環境とOracle Web Services Manager (OWSM)の相互運用性について説明します。

この章の内容は次のとおりです。

8.1 Axis 1.4およびWSS4J 1.5.8のセキュリティ環境の相互運用性の理解

Axis 1.4およびWSS4J 1.5.8では、ハンドラおよびデプロイメント・ディスクリプタを使用してインバウンド・リクエストとアウトバウンド・リクエストのセキュリティ環境を構成します。

OWSMポリシーおよび相互運用性シナリオの詳細は、次のシナリオで説明します。

詳細は、http://ws.apache.org/wss4j/axis.html『Axis Deployment Tutorial』を参照してください。

8.1.1 Axis/WSS4JのOWSMポリシー

OWSM 12cでは、ポリシーをWebサービス・エンドポイントにアタッチします。ポリシーはドメインレベルで定義された1つ以上のアサーションで構成されています。アサーションはセキュリティ要件の定義です。そのまま使用できる事前定義のポリシーとアサーションのセットが用意されています。

詳細は、次を参照してください。

  • OWSM事前定義済ポリシーについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の事前定義済ポリシーに関する説明を参照してください。

  • OWSM 12cポリシーの構成およびアタッチについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のWebサービスの保護に関する説明およびポリシーのアタッチに関する説明を参照してください。

  • Axis/WSS4Jでポリシーを構成およびアタッチする方法の詳細は、http://ws.apache.org/wss4j/axis.html『Axis Deployment Tutorial』を参照してください。

8.1.2 Axis/WSS4Jのサービス・ポリシーの相互運用性シナリオ

OWSM 12cとAxis/WSS4Jとの間の相互運用性には様々なシナリオがあります。

次の表に、OWSM 12cサービス・ポリシーとAxis/WSS4Jクライアント・ポリシーの相互運用性シナリオを示します。


表8-1 OWSM 12cサービス・ポリシーとAxis WSS4Jクライアント・ポリシーの相互運用性

アイデンティティ・トークン WS-Securityバージョン メッセージ保護 トランスポート・セキュリティ サービス・ポリシー クライアント・ポリシー

ユーザー名

1.0

はい

いいえ

oracle/wss10_username_token_with_message_protection_service_policy

UsernameToken Timestamp Signature Encrypt

SAML

1.0

はい

いいえ

oracle/wss10_saml_token_with_message_protection_service_policy

SAMLTokenUnsigned Timestamp Signature Encrypt

ユーザー名

1.0および1.1

いいえ

はい

oracle/wss_username_token_over_ssl_service_policy

UsernameToken Timestamp

SAML

1.0および1.1

いいえ

はい

oracle/wss_saml_token_over_ssl_service_policy

SAMLTokenUnsigned Timestamp


次の表に、Axis/WSS4Jサービス・ポリシーとOWSM 12cクライアント・ポリシーの相互運用性シナリオを示します。


表8-2 Axis WSS4Jサービス・ポリシーとOWSM 12cクライアント・ポリシーの相互運用性

アイデンティティ・トークン WS-Securityバージョン メッセージ保護 トランスポート・セキュリティ サービス・ポリシー クライアント・ポリシー

ユーザー名

1.0

はい

いいえ

UsernameToken Timestamp Signature Encrypt

oracle/wss10_username_token_with_message_protection_client_policy

SAML

1.0

はい

いいえ

SAMLTokenUnsigned Timestamp Signature Encrypt

oracle/wss10_saml_token_with_message_protection_client_policy

ユーザー名

1.0および1.1

いいえ

はい

Timestamp UsernameToken

oracle/wss_username_token_over_ssl_client_policy

SAML

1.0および1.1

いいえ

はい

Timestamp SAMLTokenUnsigned

oracle/wss_saml_token_over_ssl_client_policy


8.2 Axis/WSS4Jとの相互運用性に必要なファイルの作成

Axis/WSS4Jの相互運用性シナリオそれぞれに、ハンドラおよびプロパティ・ファイルが必要です。

ハンドラおよびプロパティ・ファイルを作成する手順は、次のとおりです。

  1. ユーザー名およびキーストア別名に必要なパスワードを解決できるPWCallback.javaというパスワード・コールバック・クラスを作成し、コンパイルします。

    以降の各項で定義するデプロイメント・ディスクリプタには、ユーザー名情報は含まれますが、パスワード情報は含まれません。パスワードのような機密的な情報は、デプロイメント・ディスクリプタ内にクリア・テキストで保存しないほうが賢明です。Axisハンドラは、パスワードを取得するためにパスワード・コールバック・クラスをコールします。このメカニズムはJAASと似ています。詳細は、http://ws.apache.org/wss4jのWSS4Jドキュメントを参照してください。

  2. 次に示すように、キーストア・プロパティ・ファイル(crypto.properties)を作成します。このファイルをクラス・ディレクトリに含めてください。
    org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
    org.apache.ws.security.crypto.merlin.keystore.type=jks
    org.apache.ws.security.crypto.merlin.keystore.password=welcome1
    org.apache.ws.security.crypto.merlin.file=default-keystore.jks
    
  3. 次に示すようなsaml.propertiesファイルを作成します。これは、SAMLの相互運用性シナリオのみに必要なファイルです。
    org.apache.ws.security.saml.issuerClass=org.apache.ws.security.saml.SAMLIssuerImpl
    org.apache.ws.security.saml.issuer.cryptoProp.file=crypto.properties
    org.apache.ws.security.saml.issuer.key.name=orakey
    org.apache.ws.security.saml.issuer.key.password=orakey
    org.apache.ws.security.saml.issuer=www.oracle.com
    org.apache.ws.security.saml.subjectNameId.name=weblogic
    org.apache.ws.security.saml.authenticationMethod=password
    org.apache.ws.security.saml.confirmationMethod=senderVouches
    

8.3 Axis/WSS4Jクライアント向けのメッセージ保護付きユーザー名トークン(WS-Security 1.0)の実装

WS-Security 1.0標準に準拠したメッセージ保護付きユーザー名トークンを実装して、OWSM 12c WebサービスのAxis/WSS4Jクライアントとの相互運用性およびAxis/WSS4J WebサービスのOWSM 12cクライアントとの相互運用性を実現できます。

次のトピックでは、様々な相互運用性シナリオにおいてメッセージ保護付きユーザー名トークンを実装する方法について説明します。

8.3.1 OWSM 12c WebサービスとAxis/WSS4Jクライアントの構成(メッセージ保護付きユーザー名トークン)

OWSM 12c WebサービスとAxis/WSS4Jクライアントを使用して、WS-Security 1.0標準に準拠したメッセージ保護付きユーザー名トークンを実装できます。

次のトピックでは、メッセージ保護付きユーザー名トークンを実装するために、OWSM 12c WebサービスおよびAxis/WSS4Jクライアントを構成する方法を示します。

8.3.1.1 Axis/WSS4JのためのOWSM 12c Webサービスの構成(メッセージ保護付きユーザー名トークン)

OWSM 12c Webサービスを構成して、Axis/WSS4Jクライアントとの相互運用性のためのメッセージ保護付きユーザー名トークンを実装できます。

OWSM 12c Webサービスを構成するには、次のようにします。

  1. oracle/wss10_username_token_with_message_protection_service_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  2. Webサービスをデプロイします。

8.3.1.2 Axis/WSS4Jクライアントの構成(メッセージ保護付きユーザー名トークン)

Axis/WSS4Jクライアントを構成して、OWSM 12c Webサービスとの相互運用性のためのメッセージ保護付きユーザー名トークンを実装できます。

Axis/WSS4Jクライアントを構成するには、次のようにします。

  1. Webサービス・クライアント・プロキシを構築します。

  2. パスワード・コールバック・クラスPWCallback.java、およびキーストア・プロパティ・ファイルcrypto.propertiesを作成します。

    詳細は、Axis/WSS4Jとの相互運用性に必要なファイルの作成を参照してください。

  3. キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。

    v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。

  4. client_deploy.wsddデプロイメント・ディスクリプタを次のclient_deploy.wsddデプロイメント・ディスクリプタ・サンプルのように編集します。

    <deployment xmlns="http://xml.apache.org/axis/wsdd/"
                 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     <transport name="http" 
      pivot="java:org.apache.axis.transport.http.HTTPSender"/>
      <globalConfiguration >
       <!-- wss10_username_token_with_message_protection -->
       <requestFlow>
         <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
           <parameter name="passwordCallbackClass" 
            value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
           <parameter name="passwordType" value="PasswordText"/>
           <parameter name="user" value="weblogic"/>
           <parameter name="action" value="UsernameToken Timestamp Signature Encrypt"/>
           <parameter name="encryptionKeyTransportAlgorithm" 
            value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
           <parameter name="encryptionKeyIdentifier" value="DirectReference" />
           <parameter name="encryptionPropFile" value="crypto.properties" />
           <parameter name="encryptionUser" value="orakey" />
           <parameter name="encryptionParts" value=
        "{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}
         UsernameToken;{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
           <parameter name="signatureUser" value="orakey" />
           <parameter name="signaturePropFile" value="crypto.properties" />
           <parameter name="signatureKeyIdentifier" value="DirectReference" />
           <parameter name="signatureParts" value=
        "{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}
    UsernameToken;{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-
    1.0.xsd}
    Timestamp;{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
         </handler>
       </requestFlow>
       <responseFlow>
         <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
           <parameter name="passwordCallbackClass" value="com.oracle.xmlns.ConfigOverride_jws.CO
    _SOA.BPELProcess1.PWCallback"/>
           <parameter name="action" value="Timestamp Signature Encrypt" />
           <parameter name="signaturePropFile" value="crypto.properties" />
           <parameter name="decryptionPropFile" value="crypto.properties" />
           <parameter name="enableSignatureConfirmation"  value="false" />
         </handler>
       </responseFlow>
      </globalConfiguration >
    </deployment>
    

    この例では、受信者がユーザー名トークンの復号化、確認および検証を行い、送信者がユーザー名トークンの挿入、タイムスタンプの追加、本体、ユーザー名トークンおよびタイムスタンプへの署名、本体とユーザー名トークンの暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。

  5. 前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。

    System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
    
  6. Webサービス・クライアントをデプロイします。

8.3.2 Axis/WSS4J WebサービスとOWSM 12cクライアントの構成(メッセージ保護付きユーザー名トークン)

Axis/WSS4J WebサービスとOWSM 12cクライアントを使用して、WS-Security 1.0標準に準拠したメッセージ保護付きユーザー名トークンを実装できます。

次のトピックでは、メッセージ保護付きユーザー名トークンを実装するために、Axis/WSS4J WebサービスおよびOWSM 12cクライアント・サービスを構成する方法を示します。

8.3.2.1 Axis/WSS4J Webサービスの構成(メッセージ保護付きユーザー名トークン)

Axis/WSS4J Webサービスを構成して、OWSM 12cクライアントとの相互運用性のためのメッセージ保護付きユーザー名トークンを実装できます。

Axis/WSS4J Webサービスを構成するには、次のようにします。

  1. Webサービスを構築します。

  2. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とキーストア・プロパティ・ファイル(crypto.properties)を作成します。

  3. キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。

    v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。

  4. server_deploy.wsddデプロイメント・ディスクリプタを次のサンプルのように編集します。

    <ns1:service name="HelloWorld" provider="java:RPC" style="wrapped" use="literal">
    <!-- wss10_username_token_with_message_protection -->
    <requestFlow>
       <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
          <parameter name="passwordCallbackClass" value="PWCallback1"/>
          <parameter name="user" value="wss4j"/>
          <parameter name="action" value="Signature UsernameToken Timestamp Encrypt"/>
          <parameter name="signaturePropFile" value="crypto.properties" />
          <parameter name="decryptionPropFile" value="crypto.properties" />
       </handler>
    </requestFlow>
    <responseFlow>
       <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
           <parameter name="passwordCallbackClass" value="PWCallback1"/>
           <parameter name="user" value="orakey"/>
           <parameter name="action" value="Timestamp Signature Encrypt"/>
           <parameter name="encryptionKeyTransportAlgorithm" 
              value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
           <parameter name="signaturePropFile" value="crypto.properties" />
           <parameter name="signatureKeyIdentifier" value="DirectReference" />
           <parameter name="signatureParts" 
    value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body;{Element}
    {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp" />
           <parameter name="encryptionKeyIdentifier" value="DirectReference" />
       </handler>
    </responseFlow>
    </ns1:service>
    

    この例では、受信者がユーザー名トークンの復号化、確認および検証を行い、送信者がユーザー名トークンの挿入、タイムスタンプの追加、本体、ユーザー名トークンおよびタイムスタンプへの署名、本体とユーザー名トークンの暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。

    注意:

    WSS4Jはヘッダー内の要素の順序を強制します。サンプルに示すように、server_deploy.wsddでアクションの順序が更新されていることを確認してください。

  5. Webサービスをデプロイします。

8.3.2.2 Axis/WSS4JのためのOWSM 12cクライアントの構成(メッセージ保護付きユーザー名トークン)

OWSM 12cクライアントを構成して、Axis/WSS4J Webサービスとの相互運用性のためのメッセージ保護付きユーザー名トークンを実装できます。

OWSM 12cクライアントを構成するには、次のようにします。

  1. oracle/wss10_username_token_with_message_protection_client_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  2. Java SEクライアントの場合のみ、次のようにWebサービス・クライアント・プロパティを構成します。

    注意:

    Java EEクライアントの場合、この手順を行う必要はありません。

    myPort.setProperty(ClientConstants.WSS_KEYSTORE_TYPE,"JKS");
    myPort.setProperty(ClientConstants.WSS_KEYSTORE_LOCATION,
     "/keystore-path/default-keystore.jks");
    myPort.setProperty(ClientConstants.WSS_KEYSTORE_PASSWORD, "welcome1");
    myPort.setProperty(ClientConstants.WSS_RECIPIENT_KEY_ALIAS,"orakey");
    ...
    

    setPropertyの定義は次のとおりです。

    public void setProperty(String name, String value) {
       ((Stub) _port)._setProperty(name, value);
    }
    
  3. Webサービス・クライアントをデプロイします。

8.4 Axis/WSS4Jクライアント向けのメッセージ保護付きSAMLトークン(WS-Security 1.0)の実装

WS-Security 1.0標準に準拠したメッセージ保護付きSAMLトークンを実装して、OWSM 12c WebサービスのAxis/WSS4Jクライアントとの相互運用性およびAxis/WSS4J WebサービスのOWSM 12cクライアントとの相互運用性を実現できます。

次のトピックでは、様々な相互運用性シナリオにおいてメッセージ保護付きSAML名トークンを実装する方法について説明します。

8.4.1 OWSM 12c WebサービスとAxis/WSS4Jクライアントの構成(メッセージ保護付きSAMLトークン)

OWSM 12c WebサービスとAxis/WSS4Jクライアントを使用して、WS-Security 1.0標準に準拠したメッセージ保護付きSAMLトークンを実装できます。

次のトピックでは、メッセージ保護付きSAMLトークンを実装するために、OWSM 12c WebサービスおよびAxis/WSS4Jクライアントを構成する方法を示します。

8.4.1.1 Axis/WSS4JのためのOWSM 12c Webサービスの構成(SAMLトークン)

OWSM 12c Webサービスを構成して、Axis/WSS4Jクライアントとの相互運用性のためのSAMLトークンを実装できます。

OWSM 12c Webサービスを構成するには、次のようにします。

  1. oracle/wss10_saml_token_with_message_protection_service_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  2. Webサービスをデプロイします。

8.4.1.2 Axis/WSS4Jクライアントの構成(SAMLトークン)

Axis/WSS4Jクライアントを構成して、OWSM 12c Webサービスとの相互運用性のためのSAMLトークンを実装できます。

Axis/WSS4Jクライアントを構成するには、次のようにします。

  1. Webサービス・クライアント・プロキシを構築します。

  2. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびsaml.propertiesファイルを作成します。

  3. キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。

    v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。

  4. client_deploy.wsddデプロイメント・ディスクリプタをこの手順の最後にあるサンプルのように編集します。

    この例では、受信者がSAMLトークンの復号化、確認および検証を行い、送信者がSAMLトークンの挿入、タイムスタンプの追加、本体、SAMLトークンおよびタイムスタンプへの署名、本体の暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。

  5. 前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。

    System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
    
  6. Webサービス・クライアントをデプロイします。

    次のclient_deploy.wsddデプロイメント・ディスクリプタのサンプルを参照してください。

    <deployment xmlns="http://xml.apache.org/axis/wsdd/"
                 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     <transport name="http" 
      pivot="java:org.apache.axis.transport.http.HTTPSender"/>
      <globalConfiguration >
    <!-- wss10_saml_token_with_message_protection -->
        <requestFlow>
          <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
            <parameter name="passwordCallbackClass" 
             value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
            <parameter name="passwordType" value="PasswordText"/>
            <parameter name="user" value="weblogic"/>
            <parameter name="action" value="Timestamp Signature SAMLTokenSigned Encrypt"/>
            <parameter name="samlPropFile" value="saml.properties"/>
            <parameter name="encryptionKeyTransportAlgorithm" 
             value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
            <parameter name="encryptionKeyIdentifier" value="DirectReference" />
            <parameter name="encryptionPropFile" value="crypto.properties" />
            <parameter name="encryptionUser" value="orakey" />
            <parameter name="encryptionParts" 
             value="{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
            <parameter name="signatureUser" value="orakey" />
            <parameter name="signaturePropFile" value="crypto.properties" />
            <parameter name="signatureKeyIdentifier" value="DirectReference" />
            <parameter name="signatureParts" value="{Element}
              {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}
              Timestamp;{Element}
              {http://schemas.xmlsoap.org/soap/envelope/}Body" />
          </handler>
        </requestFlow>
        <responseFlow>
          <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
            <parameter name="passwordCallbackClass" 
             value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback" />
            <parameter name="action" value="Timestamp Signature Encrypt" />
            <parameter name="signaturePropFile" value="crypto.properties" />
            <parameter name="decryptionPropFile" value="crypto.properties" />
            <parameter name="enableSignatureConfirmation" value="false" />
        </handler>
      </responseFlow>
      </globalConfiguration >
    </deployment>
    

8.4.2 Axis/WSS4J WebサービスとOWSM 12cクライアントの構成(メッセージ保護付きSAMLトークン)

Axis/WSS4J WebサービスおよびOWSM 12cクライアントを使用して、WS-Security 1.0標準に準拠したメッセージ保護付きSAMLトークンを実装できます。

次のトピックでは、メッセージ保護付きSAMLトークンを実装するために、Axis/WSS4J WebサービスおよびOWSM 12cクライアントを構成する方法を示します。

8.4.2.1 Axis/WSS4J Webサービスの構成(SAMLトークン)

Axis/WSS4J Webサービスを構成して、OWSM 12cクライアントとの相互運用性のためのメッセージ保護付きSAMLトークンを実装できます。

Axis/WSS4J Webサービスを構成するには、次のようにします。

  1. Webサービスを構築します。

  2. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびsaml.propertiesファイルを作成します。

  3. キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。

    v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。

  4. server_deploy.wsddデプロイメント・ディスクリプタを次のサンプルのように編集します。

    <ns1:service name="HelloWorld" provider="java:RPC" style="wrapped" use="literal">
    <!-- wss10_username_token_with_message_protection -->
    <requestFlow>
       <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
          <parameter name="passwordCallbackClass" value="PWCallback1"/>
          <parameter name="user" value="wss4j"/>
          <parameter name="action" value="Signature SAMLTokenUnsigned Timestamp Encrypt"/>
          <parameter name="signaturePropFile" value="crypto.properties" />
          <parameter name="decryptionPropFile" value="crypto.properties" />
       </handler>
    </requestFlow>
    <responseFlow>
       <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
           <parameter name="passwordCallbackClass" value="PWCallback1"/>
           <parameter name="user" value="orakey"/>
           <parameter name="action" value="Timestamp Signature Encrypt"/>
           <parameter name="encryptionKeyTransportAlgorithm" 
              value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
           <parameter name="signaturePropFile" value="crypto.properties" />
           <parameter name="signatureKeyIdentifier" value="DirectReference" />
           <parameter name="signatureParts" 
    value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body;{Element}
    {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp" />
           <parameter name="encryptionKeyIdentifier" value="DirectReference" />
       </handler>
    </responseFlow>
    </ns1:service>
    

    この例では、受信者がSAMLトークンの復号化、確認および検証を行い、送信者がSAMLトークンの挿入、タイムスタンプの追加、本体、SAMLトークンおよびタイムスタンプへの署名、本体の暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。

    注意:

    WSS4Jはヘッダー内の要素の順序を強制します。サンプルに示すように、server_deploy.wsddでアクションの順序が更新されていることを確認してください。

  5. Webサービスをデプロイします。

8.4.2.2 Axis/WSS4JのためのOWSM 12cクライアントの構成(SAMLトークン)

OWSM 12cクライアントを構成して、Axis/WSS4J Webサービスとの相互運用性のためのSSL経由のSAMLトークンを実装できます。

OWSM 12cクライアントを構成するには、次のようにします。

  1. oracle/wss10_saml_token_with_message_protection_client_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  2. JSEクライアントの場合のみ、次のようにWebサービス・クライアント・プロパティを構成します。

    注意:

    Java EEクライアントの場合、この手順を行う必要はありません。

    myPort.setProperty(ClientConstants.WSS_KEYSTORE_TYPE,"JKS");
    myPort.setProperty(ClientConstants.WSS_KEYSTORE_LOCATION,
     "/keystore-path/default-keystore.jks");
    myPort.setProperty(ClientConstants.WSS_KEYSTORE_PASSWORD, "welcome1");
    myPort.setProperty(ClientConstants.WSS_RECIPIENT_KEY_ALIAS,"orakey");
    ...
    

    setPropertyの定義は次のとおりです。

    public void setProperty(String name, String value) {
       ((Stub) _port)._setProperty(name, value);
    }
    
  3. Webサービス・クライアントをデプロイします。

8.5 Axis/WSS4Jクライアント向けのSSL経由のユーザー名トークンの実装

SSL経由のユーザー名トークンを実装して、OWSM 12c WebサービスのAxis/WSS4Jクライアントとの相互運用性およびAxis/WSS4J WebサービスのOWSM 12cクライアントとの相互運用性を実現できます。

次のトピックでは、様々な相互運用性シナリオにおいてSSL経由のユーザー名トークンを実装する方法について説明します。

8.5.1 OWSM 12c WebサービスとAxis/WSS4Jクライアントの構成(SSL経由のユーザー名トークン)

OWSM 12c WebサービスおよびAxis/WSS4Jクライアント使用してSSL経由のユーザー名トークンを実装できます。

次のトピックでは、OWSM 12c WebサービスおよびAxis/WSS4Jクライアントを構成する方法を示します。

8.5.1.1 Axis/WSS4JのためのOWSM 12c Webサービスの構成(SSL経由のユーザー名トークン)

OWSM 12c Webサービスを構成して、Axis/WSS4Jクライアントとの相互運用性のためのSSL経由のユーザー名トークンを実装できます。

OWSM 12c Webサービスを構成するには、次のようにします。

  1. サーバーをSSL用に構成します。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のトランスポート・レベルのセキュリティ(SSL)の構成に関する説明を参照してください。

  2. oracle/wss_username_token_over_ssl_service_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  3. Webサービスをデプロイします。

8.5.1.2 Axis/WSS4Jクライアントの構成(SSL経由のユーザー名トークン)

Axis/WSS4Jクライアントを構成して、OWSM 12c Webサービスとの相互運用性のためのSSL経由のユーザー名トークンを実装できます。

Axis/WSS4Jクライアントを構成するには、次のようにします。

  1. Webサービス・クライアント・プロキシを構築します。

  2. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とキーストア・プロパティ・ファイル(crypto.properties)を作成します。

  3. デプロイメント・ディスクリプタclient_deploy.wsddを次の例のように編集します。この例では、受信者がユーザー名トークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。

    <deployment xmlns="http://xml.apache.org/axis/wsdd/"
                 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     <transport name="http" 
      pivot="java:org.apache.axis.transport.http.HTTPSender"/>
    <globalConfiguration >
    <!-- wss_username_token -->
    <requestFlow >
       <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
          <parameter name="action" value="UsernameToken Timestamp"/>
          <parameter name="user" value="weblogic"/>
          <parameter name="passwordCallbackClass" 
           value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
          <parameter name="passwordType" value="PasswordText"/>
      </handler>
    </requestFlow >
    </globalConfiguration >
    </deployment>
    
  4. 前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。

    System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
    
  5. Webサービス・クライアントをデプロイします。

8.5.2 Axis/WSS4J WebサービスとOWSM 12cクライアントの構成(SSL経由のユーザー名トークン)

Axis/WSS4J WebサービスとOWSM 12cクライアントを使用してSSL経由のユーザー名トークンを実装できます。

次のトピックでは、Axis/WSS4J WebサービスとOWSM 12cクライアントを構成する方法を示します。

8.5.2.1 Axis/WSS4J Webサービスの構成(SSL経由のユーザー名トークン)

Axis/WSS4J Webサービスを構成して、OWSM 12cクライアントとの相互運用性のためのSSL経由のユーザー名トークンを実装できます。

Axis/WSS4J Webサービスを構成するには、次のようにします。

  1. サーバーをSSL用に構成します。

  2. Webサービスを構築します。

  3. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラスPWCallback.javaおよびcrypto.propertiesファイルを作成します。

  4. デプロイメント・ディスクリプタserver_deploy.wsddを次の例のように編集します。この例では、受信者がユーザー名トークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。

    <ns1:service name="HelloWorld" provider="java:RPC" style="wrapped" 
     use="literal">
    <!-- wss_username_token_over_ssl -->
      <requestFlow>
        <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
          <parameter name="passwordCallbackClass" value="PWCallback1"/>
          <parameter name="action" value="Timestamp UsernameToken"/>
        </handler>
      </requestFlow>
      <responseFlow> 
         <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
          <parameter name="action" value="Timestamp"/>
          </handler>
      </responseFlow>
    </ns1:service>
    
  5. Webサービスをデプロイします。

8.5.2.2 Axis/WSS4JのためのOWSM 12cクライアントの構成(SSL経由のユーザー名トークン)

OWSM 12cクライアントを構成して、Axis/WSS4J Webサービスとの相互運用性のためのSSL経由のユーザー名トークンを実装できます。

OWSM 12cクライアントを構成するには、次のようにします。

  1. wss_username_token_over_ssl_client_policyポリシーをWebサービス・クライアントにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  2. JSEクライアントの場合のみ、Webサービス・クライアント・プロパティを次のように構成します。ユーザー名とパスワードは、ユーザー名トークンを生成するためにクライアントが設定する必要があります。

    注意:

    Java EEクライアントの場合、この手順を行う必要はありません。

    myPort.setUsername("wss4j");
    myPort.setPassword("security"););
    
  3. Webサービス・クライアントをデプロイします。

    クライアントを実行している場合は、次のクライアント・システム・プロパティを含めます。ここで、default-keystore.jksは、サーバー証明書に対応する証明書が含まれるキーストアを示します。

    -Djavax.net.ssl.trustStore=default-keystore.jks
    

8.6 Axis/WSS4Jクライアント向けのSSL経由のSAMLトークン(送信者保証)の実装

SSL経由のSAMLトークン(送信者保証)を実装して、OWSM 12c WebサービスのAxis/WSS4Jクライアントとの相互運用性およびAxis/WSS4J WebサービスのOWSM 12cクライアントとの相互運用性を実現できます。

次のトピックでは、様々な相互運用性シナリオにおいてSSL経由のSAMLトークン(送信者保証)を実装する方法について説明します。

8.6.1 OWSM 12c WebサービスとAxis/WSS4Jクライアントの構成(SSL経由のSAMLトークン送信者保証)

OWSM 12c WebサービスおよびAxis/WSS4Jクライアント使用してSSL経由のSAMLトークン(送信者保証)を実装できます。

次の手順では、SSL経由のSAMLトークン(送信者保証)を実装するために、OWSM 12c WebサービスおよびAxis/WSS4Jクライアントを構成する方法を説明します。

8.6.1.1 Axis/WSS4JクライアントのためのOWSM 12c Webサービスの構成(SSL経由のSAMLトークン送信者保証)

OWSM 12c Webサービスを構成して、Axis/WSS4Jクライアントとの相互運用性のためのSSL経由のSAMLトークン送信者保証を実装できます。

OWSM 12c Webサービスを構成するには、次のようにします。

  1. サーバーをSSL用に構成します。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のトランスポート・レベルのセキュリティ(SSL)の構成に関する説明を参照してください。

  2. wss_saml_token_over_ssl_service_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  3. Webサービスをデプロイします。

8.6.1.2 Axis/WSS4Jクライアントの構成(SSL経由のSAMLトークン送信者保証)

Axis/WSS4Jクライアントを構成して、OWSM 12c Webサービスとの相互運用性のためのSSL経由のSAMLトークン送信者保証を実装できます。

Axis/WSS4Jクライアントを構成するには、次のようにします。

  1. Webサービス・クライアント・プロキシを構築します。

  2. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびSAMLプロパティ・ファイル(saml.properties)を作成します。

  3. デプロイメント・ディスクリプタclient_deploy.wsddを次の例のように編集します。この例では、受信者がSAMLトークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。

    <deployment xmlns="http://xml.apache.org/axis/wsdd/"
                 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <transport name="http" 
      pivot="java:org.apache.axis.transport.http.HTTPSender"/>
     <globalConfiguration >
    <!-- wss_saml_token -->
    <requestFlow >
       <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
          <parameter name="action" value="SAMLTokenSigned Timestamp"/>
          <parameter name="samlPropFile" value="saml.properties"/>
          <parameter name="user" value="weblogic"/>
          <parameter name="passwordCallbackClass"
     value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
          <parameter name="passwordType" value="PasswordText"/>
          <parameter name="signatureUser" value="orakey" />
          <parameter name="signatureKeyIdentifier" value="DirectReference" />
          <parameter name="signaturePropFile" value="crypto.properties" />
       </handler>
    </requestFlow >
    </globalConfiguration >
    </deployment>
    
  4. 前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。

    System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
    
  5. Webサービス・クライアントをデプロイします。

8.6.2 Axis/WSS4J WebサービスとOWSM 12cクライアントの構成(SSL経由のSAMLトークン送信者保証)

Axis/WSS4J WebサービスとOWSM 12cクライアントを使用してSSL経由のSAMLトークン(送信者保証)を実装できます。

次のトピックでは、SSL経由のSAMLトークン(送信者保証)を実装するために、Axis/WSS4J WebサービスおよびOWSM 12cクライアントを構成する方法を示します。

8.6.2.1 Axis/WSS4J Webサービスの構成(SSL経由のSAMLトークン送信者保証)

Axis/WSS4J Webサービスを構成して、OWSM 12cクライアントとの相互運用性のためのSSL経由のSAMLトークン送信者保証を実装できます。

Axis/WSS4J Webサービスを構成するには、次のようにします。

  1. サーバーをSSL用に構成します。

  2. Webサービスを構築します。

  3. Axis/WSS4Jとの相互運用性に必要なファイルの作成の説明に従って、パスワード・コールバック・クラスPWCallback.javaおよびcrypto.propertiesファイルを作成します。

  4. デプロイメント・ディスクリプタserver_deploy.wsddを次の例のように編集します。

    この例では、受信者がSAMLトークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。

    <ns1:service name="HelloWorld" provider="java:RPC" style="wrapped" 
     use="literal">
    <!-- wss_saml_token_over_ssl -->
    <requestFlow>
       <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
          <parameter name="passwordCallbackClass" value="PWCallback1"/>
          <parameter name="action" value="Timestamp SAMLTokenUnsigned"/>
       </handler>
    </requestFlow>
    <responseFlow>
       <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
          <parameter name="action" value="Timestamp"/>
       </handler>
    </responseFlow>
    </ns1:service>
    
  5. Webサービスをデプロイします。

8.6.2.2 Axis/WSS4JのためのOWSM 12cクライアントの構成(SSL経由のSAMLトークン送信者保証)

OWSM 12cクライアントを構成して、Axis/WSS4J Webサービスとの相互運用性のためのSSL経由のSAMLトークン送信者保証を実装できます。

OWSM 12cクライアントを構成するには、次のようにします。

  1. wss_saml_token_over_ssl_client_policyポリシーをWebサービス・クライアントにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。

  2. JSEクライアントの場合は、Webサービス・クライアント・プロパティを次のように構成します。ユーザー名とパスワードは、SAMLアサーションを生成するためにクライアントが設定する必要があります。

    myPort.setUsername("wss4j");
    

    注意:

    Java EEクライアントの場合、この手順を行う必要はありません。

  3. Webサービス・クライアントをデプロイします。

    クライアントを実行している場合は、次のクライアント・システム・プロパティを含めます。ここで、default-keystore.jksは、サーバー証明書に対応する証明書が含まれるキーストアを示します。

    -Djavax.net.ssl.trustStore=default-keystore.jks