ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Web Services Manager相互運用ガイド
11g リリース1 (11.1.1)
B61391-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

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

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

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

Axis 1.4およびWSS4J 1.5.8では、ハンドラおよびデプロイメント・ディスクリプタを使用してインバウンド・リクエストとアウトバウンド・リクエストのセキュリティ環境を構成します。詳細は、http://ws.apache.org/wss4j/axis.html『Axis Deployment Tutorial』を参照してください。

Oracle WSM 11gでは、ポリシーをWebサービス・エンドポイントにアタッチします。各ポリシーは、ドメインレベルで定義された、セキュリティ要件を定義する1つ以上のアサーションで構成されます。そのまま使用できる一連の事前定義済のポリシーおよびアサーションが用意されています。事前定義済ポリシーの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の事前定義済ポリシーに関する項を参照してください。ポリシーを構成およびアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成およびWebサービスへのポリシーのアタッチに関する項を参照してください。

表7-1に、セキュリティ要件(認証、メッセージ保護およびトランスポート)に基づいたAxisおよびWSS4Jの最も一般的な相互運用性シナリオを示します。

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

表7-1 AxisおよびWSS4Jのセキュリティ環境との相互運用性

相互運用性シナリオ クライアント→Webサービス Oracle WSM 11gのポリシー Axis/WSS4Jのポリシー

「メッセージ保護付きユーザー名トークン(WS-Security 1.0)」


Axis/WSS4J→Oracle WSM 11g

oracle/wss10_username_token_with_message_protection_service_policy

UsernameToken Timestamp Signature Encrypt

「メッセージ保護付きユーザー名トークン(WS-Security 1.0)」


Oracle WSM 11g→Axis/WSS4J

oracle/wss10_username_token_with_message_protection_client_policy

UsernameToken Timestamp Signature Encrypt

「メッセージ保護付きSAMLトークン(WS-Security 1.0)」


Axis/WSS4J→Oracle WSM 11g

oracle/wss10_saml_token_with_message_protection_service_policy

SAMLTokenUnsigned Timestamp Signature Encrypt

「メッセージ保護付きSAMLトークン(WS-Security 1.0)」


Oracle WSM 11g→Axis/WSS4J

oracle/wss10_saml_token_with_message_protection_client_policy

SAMLTokenUnsigned Timestamp Signature Encrypt

「SSL経由のユーザー名トークン」


Axis/WSS4J→Oracle WSM 11g

oracle/wss_username_token_over_ssl_service_policy

UsernameToken Timestamp

「SSL経由のユーザー名トークン」


Oracle WSM 11g→Axis/WSS4J

oracle/wss_username_token_over_ssl_client_policy

Timestamp UsernameToken

「SSL経由のSAMLトークン(送信者保証)」


Axis/WSS4J→Oracle WSM 11g

oracle/wss_saml_token_over_ssl_service_policy

SAMLTokenUnsigned Timestamp

「SSL経由のSAMLトークン(送信者保証)」


Oracle WSM 11g→Axis/WSS4J

oracle/wss_saml_token_over_ssl_client_policy

Timestamp SAMLTokenUnsigned


7.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
    

7.3 メッセージ保護付きユーザー名トークン(WS-Security 1.0)

この項では、次の相互運用性シナリオにおいてWS-Security 1.0標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。

7.3.1 Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスの構成

Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。

7.3.1.1 Oracle WSM 11g Webサービスの構成

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。

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

7.3.1.2 AxisおよびWSS4Jクライアントの構成

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

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

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

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

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

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

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

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

client_deploy.wsddデプロイメント・ディスクリプタの例を次に示します。

例7-1 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>

7.3.2 Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスの構成

Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。

7.3.2.1 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デプロイメント・ディスクリプタを例7-2のように編集します。

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


    注意:

    WSS4Jはヘッダー内の要素の順序を強制します。例7-2で、アクションの順序が更新されていることを確認してください。


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

7.3.2.2 Oracle WSM 11gクライアントの構成

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の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サービス・クライアントをデプロイします。

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

例7-2 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>

7.4 メッセージ保護付きSAMLトークン(WS-Security 1.0)

この項では、次の相互運用性シナリオにおいてWS-Security 1.0標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。

7.4.1 Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスの構成

Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。

7.4.1.1 Oracle WSM 11g Webサービスの構成

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。

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

7.4.1.2 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デプロイメント・ディスクリプタを例7-3のように編集します。

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

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

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

client_deploy.wsddデプロイメント・ディスクリプタの例を次に示します。

例7-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 >
<!-- 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>

7.4.2 Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスの構成

Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。

7.4.2.1 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デプロイメント・ディスクリプタを例7-4のように編集します。

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


    注意:

    WSS4Jはヘッダー内の要素の順序を強制します。例7-4で、アクションの順序が更新されていることを確認してください。


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

7.4.2.2 Oracle WSM 11gクライアントの構成

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の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サービス・クライアントをデプロイします。

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

例7-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>

7.5 SSL経由のユーザー名トークン

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

7.5.1 Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスの構成

Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。

7.5.1.1 Oracle WSM 11g Webサービスの構成

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

    詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebLogic ServerへのSSLの構成(一方向)およびWebLogic ServerへのSSLの構成(双方向)に関する項を参照してください。

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。

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

7.5.1.2 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サービス・クライアントをデプロイします。

7.5.2 Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスの構成

Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。

7.5.2.1 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サービスをデプロイします。

7.5.2.2 Oracle WSM 11gクライアントの構成

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。

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

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

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

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

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

7.6 SSL経由のSAMLトークン(送信者保証)

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

7.6.1 Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスの構成

Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。

7.6.1.1 Oracle WSM 11g Webサービスの構成

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

    詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebLogic ServerへのSSLの構成(一方向)およびWebLogic ServerへのSSLの構成(双方向)に関する項を参照してください。

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。

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

7.6.1.2 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サービス・クライアントをデプロイします。

7.6.2 Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスの構成

Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。

7.6.2.1 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サービスをデプロイします。

7.6.2.2 Oracle WSM 11gクライアントの構成

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

    ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。

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


    注意:

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


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

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

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