ヘッダーをスキップ
Oracle Application Server Web Servicesセキュリティ・ガイド
10gリリース3(10.1.3)
B31870-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 Webサービス・セキュリティの構成

この章では、Webサービス・セキュリティのクライアント側およびサーバー側の構成について説明します。これらのセキュリティ構成はXMLファイルに格納されます。サーバーでは、この構成はoracle-webservices.xmlデプロイメント・ディスクリプタ・ファイルに保存されます。クライアントでは、この構成は<generated_name>_Stub.xmlデプロイメント・ディスクリプタ・ファイルに保存されます。

次のいずれかの方法で、これらのファイルを作成してセキュリティ要素を構成できます。

クライアントおよびサーバーに対するWebサービス・セキュリティ構成はインバウンド・ポリシーおよびアウトバウンド・ポリシーに基づいています。これらのポリシーは「セキュリティ・ポリシー」で定義されます。

図2-1に、Webサービス・セキュリティの構成時に生成されたデプロイメント・ディスクリプタと、クライアントおよびサービスに対する情報の流れを示します。次のステップは図中の番号にそれぞれ対応します。

  1. Webサービス・クライアントに対するセキュリティ構成。クライアントに対するセキュリティの構成によって、セキュリティ構成が保存された<generated_name>_Stub.xmlデプロイメント・ディスクリプタが生成されます。クライアント・インターセプタは実行時に<generated_name>_Stub.xmlデプロイメント・ディスクリプタを使用して、セキュリティ・ヘッダーを生成(<outbound>要素が構成されている場合)、またはセキュリティ・ポリシーを実行(<inbound>要素が構成されている場合)します。

  2. Webサービス(サーバー側)に対するセキュリティ構成。Webサービス・アプリケーションに対するセキュリティの構成によって、セキュリティ構成が保存されたoracle-webservices.xmlデプロイメント・ディスクリプタが生成されます。

  3. Webサービスをデプロイするとき、ステップ2で説明したoracle-webservices.xmlデプロイメント・ディスクリプタで構成されたWebサービス・セキュリティによってwsmgmt.xmlファイルが更新されます。wsmgmt.xmlファイルはインスタンス・レベルの構成ファイルで、OC4JインスタンスにデプロイされたWebサービスのセキュリティ構成全体を保持しています。サーバー・インターセプタは実行時にwsmgmt.xmlファイルを使用して、セキュリティ・ポリシーを実行(inbound要素が構成されている場合)、またはセキュリティ・ヘッダーを生成(outbound要素が構成されている場合)します。


    注意:

    Oracle Application Server Web Servicesセキュリティでは、wsmgmt.xmlファイルを直接編集しないことをお薦めします。

図中で、破線のボックスはWebサービスのクライアント構成で指定された<outbound>要素に対して、対応するWebサービス構成の<inbound>要素があることを示しています。同様に、Webサービスで指定された<outbound>要素に対して、対応するクライアント構成ファイルの<inbound>要素があることを示しています。

たとえば、クライアントの<outbound>要素の<username-token>下位要素は、クライアントがユーザー名トークンを送信することを示します。Webサービスの<inbound>要素には、これに対応する、Webサービスがユーザー名トークンを検証する必要があることを示す<verify-username-token>要素があります。

図2-1 クライアント側およびサーバー側のWebサービスにおけるポリシーの機能

図2-1の説明が続きます
「図2-1 クライアント側およびサーバー側のWebサービスにおけるポリシーの機能」の説明

セキュリティ構成要素

この項ではセキュリティ構成要素の定義を説明します。一連の同じセキュリティ構成要素がグローバル、ポートおよび操作のレベルに表示される場合があります。操作レベルで設定されたセキュリティ構成要素の値は、ポートおよびグローバル・レベルにおける設定を上書きします。ポート・レベルの設定はグローバル・レベルの設定を上書きします。

通常、OracleAS Web Servicesセキュリティの要素は、SOAPメッセージのヘッダーまたはボディに表示されます。クライアントはサーバー側と同じ一連のセキュリティ構成要素を使用します。例2-1に、サーバー側のoracle-webservices.xmlデプロイメント・ディスクリプタで使用されるセキュリティ構成要素を示します。

例2-1 サーバー側の構成ファイルのセキュリティ構成要素

<oracle-webservices xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/oracle-webservices-10_0.xsd">
 <webservice-description name="XYZService ">
<port-component name="XYZPort">
  <runtime enabled="security">
    <security>
      <key-store store-pass="abc" path="./mykeystore.jks"/>
      <signature-key alias="signkey" key-pass="signkeypass"/>
      <encryption-key alias="enckey" key-pass="enckeypass"/>
    </security>
  </runtime>

  <operations>
    <operation name="sayHello" input="{http://tempuri.org/}/sayHello">
      <runtime>
        <security>
          <inbound>
            <verify-username-token />
            <verify-x509-token />
            <verify-saml-token/>
            <verify-signature>
              <signature-methods>
                <signature-method>
                  RSA-SHA1
                </signature-method>
              </signature-methods>
              <tbs-elements>
                <element name-space="http://schemas.xmlsoap.org/soap/envelope"
                   local-part="Body"/>
              </tbs-elements>
              <verify-timestamp expiry="28800" created="true"/>
            </verify-signature>
            <decrypt>
              <encryption-methods>
                <encryption-method>
                  3DES
                </encryption-method>
              </encryption-methods>
              <keytransport-methods>
                <keytransport-method>
                  RSA-1_5
                </keytransport-method>
              </keytransport-methods>
              <tbe-elements>
                <element name-space="http://schemas.xmlsoap.org/soap/envelope"
                      local-part="Body" mode="CONTENT"/>
              </tbe-elements>
            </decrypt>
          </inbound> 

          <outbound>
            <signature>
              <tbs-elements>
                <tbs-element name-space="http://schemas.xmlsoap.org/soap/envelope/" local-part="Body"/>
              </tbs-elements>
            </signature>
            <encrypt>
              <recipient-key alias="enckey"/>
              <tbe-elements>
                <tbe-element name-space="http://schemas.xmlsoap.org/soap/envelope/" local-part="Body" />
              </tbe-elements>
            </encrypt>
          </outbound> 
        </security>
      </runtime>
    </operation>
  </operations>
</port-component>
</webservice-description>
</oracle-webservices>

例2-2に、クライアント側の<generated_name>_Stub.xmlデプロイメント・ディスクリプタで使用されるセキュリティ構成要素を示します。

例2-2 クライアント側の構成ファイルのセキュリティ構成要素

<oracle-webservice-clients>
<webservice-client>
<port-info>
<runtime enabled="security">
 <key-store path="mykeystore.jks" store-pass="password"/>
          <signature-key alias="signkey" key-pass="signkeypass"/>
 <security>
  <outbound>
   <username-token name="SCOTT" password="TIGER"/>
<signature>
            <tbs-elements>
             <tbs-element name-space="http://schemas.xmlsoap.org/soap/envelope/" local-part="Body"/>
            </tbs-elements>
            <add-timestamp created="true" expiry="28800"/>
           </signature>
           <encrypt>
            <recipient-key alias="reckey"/>
            <tbe-elements>
             <tbe-element name-space="http://schemas.xmlsoap.org/soap/envelope/" local-part="Body"/>
            </tbe-elements>
           </encrypt>
  </outbound>
 </security>
</runtime>
<operations>
 <operation name="sayHello"/>
</operations>
</port-info>
</webservice-client>
</oracle-webservice-clients>

キーストア要素

<key-store>要素はサーバー側のグローバルおよびポート・レベルで、またクライアント側のポート・レベルで必須となり、使用されます。グローバル・キーストア設定はインスタンス内にデプロイされたすべてのアプリケーションに適用されます。これは特定のポート・レベル・キーストアで上書きされる可能性があります。<key-store>要素の値を変更した場合は、新しい値を有効にするためアプリケーションを再起動する必要があります。

表2-1 キーストア設定

要素名 説明

<key-store>

キーストアへのパスを指定します。この要素はグローバルまたはポート・レベルで表示される場合があります。この要素には次の属性があります。

  • path: キーストアへのファイル・システム・パス。これは絶対パスまたは相対パスになります。サーバーでは、相対パスはアプリケーション・ルート・ディレクトリに対する相対パスになります。



    J2EE_HOME/applications/application_name



    クライアントでは、クライアント・アプリケーションがOracleAS Web Servicesにデプロイされているとき、パスは絶対パスかJ2EE_HOMEへの相対パスになります。

  • type: キーストアのタイプ。デフォルト・タイプはJKSです。他にサポートされているタイプはPKCS12ORACLE_WALLETです。

  • store-pass: キーストアにアクセスするためのパスワード。


署名および暗号の鍵の要素

ポート・レベル・キーストアが指定されている場合、または鍵をグローバル・キーストアから選択する際は、<signature-key>および<encryption-key>が必要です。これらの鍵がポート・レベルで構成されていない場合は、グローバル・レベルの値が使用されます。

<signature-key>または<encryption-key>要素の値を変更した場合は、新しい値を有効にするためアプリケーションを再起動する必要があります。

表2-2 一般セキュリティ設定

要素名 説明

<signature-key>

<signature><verify-signature>で必要な鍵を示します。この要素には次の属性があります。

  • alias: 鍵の別名

  • key-pass: 鍵にアクセスするためのパスワード

<encryption-key>

メッセージの復号化に必要な鍵を示します。この要素には次の属性があります。

  • alias: 鍵の別名

  • key-pass: 鍵にアクセスするためのパスワード

<encryption-key>要素は、<encrypt>要素の<recipient-key>下位要素のalias属性として構成されます。alias属性と<recipient-key>の詳細は、表2-19「<encrypt>要素の下位要素」を参照してください。


Nonce構成要素

Nonceは、リプレイ攻撃を防止するためユーザー名トークンに含まれるランダム値です。Nonceはサーバーでキャッシュされます。OracleAS Web Servicesセキュリティでは、ユーザー名トークンに挿入可能なNonce値を構成できます。Nonceの構成の詳細は、「ダイジェスト・パスワードによるNonceキャッシュの構成」を参照してください。

表2-3 Nonce構成設定

要素名 説明

<nonce-config>

nonce-config要素ではキャッシュを構成できます。

  • clock-skew: 作成時間がユーザー名トークンに含まれている場合に、クライアントとサーバー間で許容される時間誤差(秒)。デフォルトは300秒です。

  • cache-ttl(有効な状態でいるキャッシュ時間): Nonceがキャッシュ内で有効な状態でいる時間を秒単位で示します。期限切れのNonceはキャッシュから削除されます。デフォルトは300秒です。


インバウンド・メッセージに対するセキュリティ要素

次の項では、インバウンド・メッセージに対して設定可能なセキュリティ要素について説明します。

oracle-webservices.xmlおよび<generated_name>_Stub.xmlデプロイメント・ディスクリプタ内のインバウンド・メッセージ・セクションは、<inbound>要素で区切られます。<inbound>要素は受信メッセージに関連するセキュリティ構成ポリシーをカプセル化します。<inbound>要素は、<security>の下位要素としてグローバル、ポートおよび操作レベルで使用できます。

インバウンド・セキュリティは、受信メッセージに対するコンテキスト固有のセキュリティ・ポリシーを定義します。クライアントの場合、これはレスポンスの受信に関連付けられたセキュリティ・ポリシーを表します。サービスの場合、これはリクエストの受信に関連付けられたセキュリティ・ポリシーを表します。

<verify-username-token><verify-x509-token>および<verify-saml-token>の要素は、インバウンド・メッセージに対する認証要素です。認証要素はオプションで、サーバー側に対して構成できます。Webサービス・アプリケーションはユーザー名トークン、X.509トークンおよびSAMLトークンをどのような組合せでも許容するように選択できます。

Webサービス・クライアントは認証トークンを送信することは求められません。認証トークンが必要な場合は、1つのみ送信できます。ユーザーは、SOAPリクエストで送信されたトークンに基づいて認証されます。

表2-4に、インバウンド・メッセージ構成に挿入可能なセキュリティ・トークンの概要を示します。

表2-4 インバウンド・メッセージに対する認証要素

要素名 説明

<verify-username-token>

ユーザー名トークンに対するセキュリティ・ポリシーを指定します。このセキュリティ・トークンの詳細は、「インバウンド・メッセージに対するユーザー名トークン要素」を参照してください。

<verify-x509-token>

X.509トークンに関連する認証ポリシーを指定します。このセキュリティ・トークンの詳細は、「インバウンド・メッセージに対するX.509トークン要素」を参照してください。

<verify-saml-token>

SAMLアサーションを保持する受信SOAPメッセージを検証するかどうか指定します。このセキュリティ・トークンの詳細は、「インバウンド・メッセージに対するSAMLトークン要素」を参照してください。


インバウンド・メッセージに対するユーザー名トークン要素

<verify-username-token>要素は、ユーザー名トークンに対するセキュリティ・ポリシーを指定します。これは<inbound>要素のオプションの下位要素で、要素内で1回だけ使用できます。この下位要素には次の属性があります。

  • password-type: パスワード認証タイプで、plaintextまたはdigestになります。デフォルトはplaintextです。

  • require-nonce: Nonceをユーザー名トークンに含める必要があるかどうかを指定します。この属性はDigest認証に必須です。デフォルトはfalseです。

  • require-created: 作成時間をユーザー名トークンに含める必要があるかどうかを指定します。この属性はプレーン・テキストまたはダイジェストのパスワード認証のどちらかで使用できます。ただし、Digest認証の場合はtrueに設定する必要があります。デフォルトはfalseです。

<verify-username-token>要素にはオプションの<property>下位要素もあります。表2-5でproperty要素およびその値について説明します。

表2-5 <verify-username-token>要素の下位要素

要素名 説明

<property>

<verify-username-token>要素で設定可能なプロパティ。<property>下位要素の書式は次のとおりです。

<property name="property_name" value="property_value"/>

OracleAS Web Servicesセキュリティは<verify-username-token>で次のプロパティを定義します。

  • username.token.allow.nopassword: このブール型プロパティの値は、Webサービスがパスワードを要求せずにユーザー名トークンを認証するかどうかを決定します。このプロパティは、ユーザーがすでに認証および信頼されていて、IDストアに存在することのみを確認する必要がある場合に便利です。

    次の例では、パスワードがなくてもWebサービスでユーザー名トークンを受け入れることができます。



    <property name="username.token.allow.nopassword" value="true"/>



    このプロパティは、oracle-webservices.xmlデプロイメント・ディスクリプタで設定できます。このプロパティを追加するためのツール・サポートはないため、ファイルは手動で編集する必要があります。

このプロパティの使用方法の例は、「パスワードを要求しないサービスの構成」を参照してください。


インバウンド・メッセージに対するX.509トークン要素

<verify-x509-token>要素は、X.509トークンに関連する認証ポリシーを指定します。これは<inbound>要素のオプションの下位要素です。

インバウンド・メッセージに対するSAMLトークン要素

<verify-saml-token>要素は<inbound>要素のオプションの下位要素です。SAMLアサーションを保持する受信SOAPメッセージを検証するかどうか指定します。

表2-6<verify-saml-token>要素の下位要素を一覧表示します。下位要素はすべてオプションです。

表2-6 <verify saml-token>要素の下位要素

要素名 説明

<subject-confirmation-methods>

これはインバウンド・ポリシーに対するオプション要素です。インバウンドの<verify-saml-token>ポリシーの一部として使用されるとき、これは受信SOAPメッセージにおけるIDの伝播に使用される確認メソッドを参照します。

<confirmation-method>

これは<subject-confirmation-method>に対するオプション要素です。<confirmation-method>について使用できる値は次のとおりです。

  • Sender-Vouches(デフォルト): 受信SAMLトークンはsender-vouches確認メソッドを提供し、トークンへの参照が署名されている必要があります。

  • Sender-Vouches-Unsigned: 受信SAMLトークンはsender-vouches確認メソッドを提供し、トークンは署名されていない必要があります。

  • Holder-Of-Key: 受信SAMLトークンはholder-of-key確認メソッドを提供する必要があります。アサーションにはユーザーの公開鍵が必要です。


インバウンド・メッセージに対する署名検証要素

<verify-signature>要素は<inbound>要素のオプションの下位要素です。これは受信者の整合性または署名要件を指定します。この要件には、署名検証アルゴリズムの名前と検証対象のメッセージ部分が含まれます。<verify-signature>要素は<inbound>要素内で1回だけ使用できます。表2-7<verify-signature>要素の下位要素について説明します。下位要素はすべてオプションです。

表2-7 <verify-signature>要素の下位要素

要素名 説明

<signature-methods>

<signature-method>要素の集合。<signature-method>は受入れ可能な署名アルゴリズムの指定に使用されます。アルゴリズム名はURIではなく短縮名を使用して指定されます。デフォルト値はRSA-SHA1です。表2-18「署名アルゴリズムと短縮名」に、Webサービス・セキュリティで認識されるアルゴリズムURIおよび対応する短縮名を一覧表示します。

<tbs-elements>

受信リクエストで署名されていることが求められる要素の一覧。この要素には次の属性があります。

  • local-part: 実際の要素名。

  • name-space: SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。

<verify-timestamp>

受信したSOAPメッセージのタイムスタンプを検証します。(このタイムスタンプは表2-17に説明のある<add-timestamp>要素で構成されます。)created属性は、タイムスタンプがメッセージのために作成されたかどうかを示すために使用されます。受信したSOAPメッセージに期限切れのタイムスタンプがある場合は、サーバーから拒否されます。

  • expiry: 署名における有効期限(秒)。デフォルトは28800秒(8時間)です。

  • created: タイムスタンプに作成時間が含まれるかどうかを示します。デフォルトはtrueです。

<property>

<verify-signature>要素で設定可能なプロパティ。<property>下位要素の書式は次のとおりです。

<property name="property_name" value="property_value"/>

OracleAS Web Servicesセキュリティは<verify-signature>で次のプロパティを定義します。

  • clock-skew: クライアントとサーバー間の時間誤差を構成します。SOAPメッセージを送信中のクライアント(署名とタイムスタンプの追加)とWebサービス・アプリケーション(SOAPメッセージの受信と署名およびタイムスタンプの検証)は、2つの別々のマシンで実行されている可能性があります。マシンの時計が同時刻ではない場合、その時間を合せるようにclock-skewを構成できます。

    clock-skewのデフォルト値は0で、単位はミリ秒です。次の例では時間誤差を3秒に設定します。



    <property name="clock-skew" value="3000"/>



    このプロパティは、oracle-webservices.xmlまたは<generated_name>_Stub.xmlデプロイメント・ディスクリプタのどちらかで設定できます。このプロパティを追加するためのツール・サポートはないため、ファイルは手動で編集する必要があります。


インバウンド・メッセージに対する復号化要素

<decrypt>要素は<inbound>要素のオプションの下位要素です。これは受信者の秘匿性要件を指定します。<decrypt>要素は<inbound>要素内で1回だけ使用できます。

表2-8で、インバウンド・メッセージに対する復号化の詳細の設定に使用できる要素について説明します。下位要素はすべてオプションです。

表2-8 <decrypt>要素の下位要素

要素名 説明

<encryption-methods>

<encryption-method>要素の集合。<decrypt>要素の一部としての暗号化メソッドは、Webサービス・アプリケーションで受け入れられた暗号化メソッドを参照します。Webサービス・アプリケーションは複数の暗号化メソッドを受入れできます。受信SOAPメッセージが暗号化されている場合、サービス・インターセプタは秘匿性ポリシーをチェックして、暗号化アルゴリズムが一致しない場合はリクエストを拒否します。有効なオプションは次のとおりです。

  • 3DES

  • AES-128(デフォルト)

  • AES-256

表2-9に、Webサービス・セキュリティで認識される暗号化アルゴリズムURIおよび対応する短縮名を一覧表示します。

<encryption-method>要素の詳細は、表2-19を参照してください。

<keytransport-methods>

<keytransport-method>要素の集合。それぞれの<keytransport-method>は受入れ可能な鍵トランスポート・アルゴリズムを指定します。複数の<keytransport-method>要素をインバウンド・メッセージに対して指定できます。アルゴリズム名はURIではなく短縮名を使用して指定されます。受入れできる値は次のとおりです。

  • RSA-1_5(デフォルト)

  • RSA-OAEP-MGF1P

表2-10に、Webサービス・セキュリティで認識されるアルゴリズムURIおよび対応する短縮名を一覧表示します。

<tbe-elements>

<tbe-element>要素の集合。受信したSOAPメッセージで暗号化されている要素を示します。

  • name-space: SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。

  • local-part: 実際の要素名。

  • mode: ELEMENTまたはCONTENTのどちらの暗号化を予測するか指定するために使用される追加的な属性。モードがELEMENTの場合は要素全体の暗号化が予測され、モードがCONTENTの場合は要素のコンテンツの暗号化が予測されます。デフォルトはCONTENTです。

<property>

<decrypt>要素で設定可能なプロパティ。<property>下位要素の書式は次のとおりです。

<property name="property_name" value="property_value"/>

OracleAS Web Servicesセキュリティは<decrypt>で次のプロパティを定義します。

  • oracle.security.wss.decryptusingski



    trueに設定されている場合、暗号化された鍵タグ内のサブジェクト鍵識別子は、キーストアの秘密鍵に対して解決されます。デフォルトではこのプロパティはfalseに設定されます。次に例を示します。



    <property name="oracle.security.wss.decryptusingski" value="true"/>



    注意: このプロパティは、oracle-webservices.xmlまたは<generated_name>_Stub.xmlデプロイメント・ディスクリプタのどちらかで設定できます。このプロパティを追加するためのツール・サポートはないため、ファイルは手動で編集する必要があります。

    復号鍵の別名およびパスワードは、パスワード・インダイレクションを使用するsystem-jazn-data.xmlファイルに保存されます。パスワード・インダイレクション・メカニズムの詳細は、「パスワード・インダイレクションの使用によるクリアテキスト・パスワードの置換え」を参照してください。


表2-9に、Webサービス・セキュリティと対応する短縮名で認識される暗号化アルゴリズムのURIを一覧表示します。

表2-9 暗号化アルゴリズムに対するURIと短縮名

アルゴリズムのURI 短縮名

http://www.w3.org/2001/04/xmlenc#3des-cbc

3DES

http://www.w3.org/2001/04/xmlenc#aes128-cbc

AES-128(デフォルト)

http://www.w3.org/2001/04/xmlenc#aes256-cbc

AES-256


表2-10に、Webサービス・セキュリティと対応する短縮名で認識される鍵トランスポート・アルゴリズムのURIを一覧表示します。

表2-10 鍵トランスポート・アルゴリズムに対するURIと短縮名

アルゴリズムのURI 短縮名

http://www.w3.org/2001/04/xmlenc#rsa-1_5

RSA-1_5(デフォルト)

http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

RSA-OAEP-MGF1P


アウトバウンド・メッセージに対するセキュリティ要素

次の項では、アウトバウンド・メッセージに対して設定可能なセキュリティ要素について説明します。

oracle-webservices.xmlおよび<generated_name>_Stub.xmlデプロイメント・ディスクリプタ内のアウトバウンド・メッセージ・セクションは、<outbound>要素で区切られます。アウトバウンド・セキュリティは、送信メッセージに対するコンテキスト固有のセキュリティ・ポリシーを定義します。クライアントの場合、これはリクエストの送信に関連付けられたセキュリティ・ポリシーを表します。サービスの場合、これはレスポンスの送信に関連付けられたセキュリティ・ポリシーを表します。

表2-11に、アウトバウンド・メッセージ構成に挿入可能なセキュリティ・トークンの概要を示します。

表2-11 アウトバウンド・セキュリティ・トークン

要素名 説明

<username-token>

ユーザー名トークンをセキュリティ・ヘッダー・ブロックに挿入することを指定します。このセキュリティ・トークンの詳細は、「アウトバウンド・メッセージに対するユーザー名トークン要素」を参照してください。

<x509-token>

この要素が存在する場合、X.509証明書がセキュリティ・ヘッダー・ブロックに挿入されます。「アウトバウンド・メッセージに対するX.509トークン要素」を参照してください。

<saml-token>

クライアント・インターセプタはこの要素のコンテンツを使用して、ユーザーIDに対するSAMLアサーションを作成します。このセキュリティ・トークンの詳細は、「アウトバウンド・メッセージに対するSAMLトークン要素」を参照してください。

<signature>

送信するメッセージまたは個別メッセージ要素の署名に対するアルゴリズムを指定します。このセキュリティ・トークンの詳細は、「アウトバウンド・メッセージに対する署名要素」を参照してください。

<encryption>

送信するメッセージまたはメッセージ要素の暗号化に対する暗号化アルゴリズム、鍵トランスポート・アルゴリズム、および受信者の鍵を指定します。このセキュリティ・トークンの詳細は、「アウトバウンド・メッセージに対する暗号化要素」を参照してください。


アウトバウンド・メッセージに対するユーザー名トークン要素

<username-token>要素はアウトバウンド・ポリシーのオプションの要素です。この要素は、ユーザー名トークンをセキュリティ・ヘッダー・ブロックに挿入することを指定します。要素の1つのインスタンスのみが許容されます。

クライアントはコールバック・ハンドラを使用してユーザー名とパスワードを渡すことができます。コールバック・ハンドラは、javax.security.auth.NamecallbackおよびPasswordcallbackを取り扱うユーザー定義クラスです。クラスの名前は<username-token>要素のcbhandler-name属性で指定できます。

この要素が存在しない場合、クライアント・ランタイムはJAX-RPCでサポートされているStub.USERNAME_PROPERTYおよびStub.PASSWORD_PROPERTYを使用してユーザー名トークンを構築できます。Webサービス・クライアントはデプロイメント・ディスクリプタでユーザー名およびパスワードを指定して、Stubプロパティまたは静的構成のどちらかを使用できます。Stubプロパティの詳細は、「Stubプロパティによるユーザー名およびパスワードの受渡し」を参照してください。

表2-12<username-token>属性について説明します。属性はすべてオプションです。

表2-12 <username-token>要素の属性

属性名 説明

name

トークンに挿入されるユーザー名。

password

ユーザーの実際のパスワード。

password-type

パスワード・タイプで、plaintextまたはdigestになります。デフォルトはplaintextです。password-typedigestに設定すると、add-nonceおよびadd-createdがデフォルトでtrueに設定されるので注意してください。

cbhandler-name

ユーザー名トークンをSOAPメッセージに挿入するコールバック・ハンドラの名前。コールバック・ハンドラは、NameCallbackおよびPasswordCallbackを取り扱うユーザー定義コールバック・ハンドラ・クラスです。cbhandler-name属性の値は、ユーザー定義実装クラスの名前です。

add-nonce

Nonceをリクエストに追加するかどうか指定します。Digest認証では、この属性は必須でありtrueに設定する必要があります。この属性はプレーン・テキスト・パスワード認証ではオプションです。デフォルト値はfalseです。

add-created

作成時間をリクエストに追加するかどうか指定します。ダイジェスト・パスワード認証では、この属性は必須でありtrueに設定する必要があります。この属性はプレーン・テキスト・パスワード認証ではオプションです。デフォルト値はfalseです。


アウトバウンド・メッセージに対するX.509トークン要素

<x509-token>要素は<outbound>構成のオプションの要素です。この要素は、X.509署名証明書がリクエストに挿入されることを示します。X.509証明書(署名者の証明書)への直接参照が追加されます。ユーザーは、この構成が動作するように構成された署名鍵を保持する必要があります。

(直接参照を使用して)証明書を渡すかわりに、証明書のサブジェクト鍵識別子を渡すこともできます。サブジェクト鍵識別子の受渡し方法については、「署名用のサブジェクト鍵識別子の使用方法」を参照してください。

表2-13<x509-token>要素の下位要素について説明します。

表2-13 <x509-token>要素の下位要素

要素名 説明

<property>

<x509-token>要素で設定可能なプロパティ。<property>下位要素の書式は次のとおりです。

<property name="property_name" value="property_value"/>

OracleAS Web Servicesセキュリティは<x509-token>で次のプロパティを定義します。

  • oracle.security.wss.signX509token: このプロパティは、<x509-token>が署名<signature>で使用されている場合のみ適用可能です。trueに設定されている場合(デフォルト)、X.509トークンを含むBinary Security Token(BST)は署名されます。falseに設定されている場合、Binary Security Tokenは署名されません。次に例を示します。



    <property name="oracle.security.wss.signX509token" value="false"/>


アウトバウンド・メッセージに対するSAMLトークン要素

<saml-token>要素は<outbound>ポリシーのオプションの要素です。クライアント・インターセプタは、ユーザーIDに対する実際のSAMLアサーションの作成のため、アウトバウンド・ポリシーの<saml-token>要素を参照します。SAMLトークンの動的および静的な構成方法については、「クライアント側のSAMLトークンの構成方法」を参照してください。表2-14<saml-token>要素の属性について説明します。属性はすべてオプションです。

表2-14 <saml-token>要素の属性

属性 説明

name

(必須)アサーション・サブジェクトの名前を、<saml-token>要素のname属性の値を指定することで選択できます。name属性の書式は次のとおりです。

[realm-name/]name

nameはアサーションの名前を表します。アサーションの名前の先頭にはアサーションのrealm-nameを付加できます。レルム名がすでに存在する場合、これはname修飾子として設定されます。

name属性には伝播中のユーザーIDの実際の名前が含まれます。たとえば、name="jdoe"となります。name属性の値は、SAMLアサーションの<name-identifier>要素に挿入されます。名前識別子のデフォルト名の書式はUNSPECIFIEDです(name-formatを参照)。

name-format

アサーション・サブジェクト名の書式を指定します。この要素は次のいずれかの値になります。

  • UNSPECIFIED(デフォルト): 任意の値。

  • EMAIL: abc@myCompany.comなどの電子メール・アドレス。

  • X509-SUBJECT-NAME: X.509サブジェクト名(X.509サブジェクト名は識別名のDNに変換されます)。たとえば、CN="abc", OU="Security", O="Oracle", C="US"となります。

  • WINDOWS-DOMAIN-NAME: Windowsドメインの名前。たとえば、abcとなります。

cbhandler-name

SAMLTokenCallbackコールバック・ハンドラを取り扱うユーザー定義クラスの名前を指定します。このクラスはSAMLアサーションのインターセプタへの受渡しに使用されます。

コールバック・ハンドラがSAMLトークン・コールバックを処理できるようにする必要があります。このハンドラの書込み方法の詳細は、「SAMLトークン・コールバック・ハンドラの書込み」を参照してください。

issuer-name

SAMLアサーションの発行者名の取得に使用されます。デフォルト値はwww.oracle.comです。この値は、ユーザーのアサーション発行者の名前に変更することをお薦めします。


表2-15<saml-token>要素の下位要素を説明します。下位要素はすべてオプションです。

表2-15 <saml-token>要素の下位要素

要素名 説明

<subject-confirmation-method>

サポートされている確認メソッドはSender-Vouches(デフォルト)、Sender-Vouches-UnsignedおよびHolder-Of-Keyです。

確認メソッドおよびこの要素の構成方法については、「確認メソッドの構成」を参照してください。

<attribute>

<attribute>要素には、プロパティ・ファイルを示す必須のpath属性があります。属性文はこのファイルに列記されている属性から作成されます。

このプロパティ・ファイルには、ユーザーのIDのアサーションを行うための1つ以上の属性名/値のペアが含まれます。属性名の先頭にはオプションのネームスペースが付属する場合があります。次に例を示します。

[attribute-name-space/]attribute-name=value

<attribute>下位要素に表示される値の例を、次に示します。

email=abc@myCompany.com

<attribute>要素の使用方法の詳細は、「認証文と属性文の構成」を参照してください。

<saml-authority>

外部SAML認証局からSAMLトークンを取得することができます。詳細は、「外部SAML認証局からSAMLトークンを取得するための要素」を参照してください。


外部SAML認証局からSAMLトークンを取得するための要素

<saml-authority>要素は<saml-token>のオプションの下位要素です。<saml-authority>要素およびその属性の構成では、SAMLPリクエストを発行することで外部SAML認証局からSAMLトークンを取得することができます。この要素の構成の詳細は、「外部SAML認証局からのSAMLトークンの取得」を参照してください。表2-16<saml-authority>の属性について説明します。

表2-16 <saml-authority>要素の属性

名前 説明

<endpoint-address>

(必須)SAML応答者のURLを指定します。

<auth-user-name>

SAML認証局への認証の提供に使用されるユーザー名を指定します。この属性はHolder-Of-Key確認メソッドには必須ですが、その他ではオプションです。Holder-Of-Keyのサブジェクト確認メソッドでは、auth-user-nameで識別されるユーザーに対してSAMLアサーション・トークンがリクエストされます。Sender-Vouchesのサブジェクト確認メソッドでは、<saml-token>要素のname属性で識別されるユーザーに対してSAMLアサーション・トークンがリクエストされます。

<auth-password>

(オプション)SAML認証局への認証の提供に使用されるパスワードを指定します。password-based-mechanismが認証に使用される場合は、auth-user-nameおよびauth-password要素が必須です。

<require-signature>

(オプション)このブール属性がtrueの場合、SAMLPリクエストはクライアントの署名鍵で署名されます。また、クライアント側のキーストアおよび署名鍵も構成する必要があります。この要素のデフォルト値はfalseです。

キーストアおよび署名鍵の構成の詳細は、「キーストア要素」「署名および暗号の鍵の要素」を参照してください。


アウトバウンド・メッセージに対する署名要素

表2-17<signature>要素の下位要素について説明します。下位要素では、アウトバウンド・メッセージの署名に使用できるオプションを説明します。

表2-17 <signature>要素の下位要素

要素名 説明

<signature-methods>

<signature-method>要素の集合。<signature-method>要素は受入れ可能な署名アルゴリズムを指定します。アルゴリズム名はURIではなく短縮名を使用して指定されます。デフォルト値はRSA-SHA1です。

表2-18「署名アルゴリズムと短縮名」に、OracleAS Web Servicesセキュリティで認識されるアルゴリズムURIおよび対応する短縮名を一覧表示します。

<tbs-elements>

<tbs-element>要素の集合。それぞれの<tbs-element>は署名される要素を示します。この要素には次の属性があります。

  • name-space: SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。この属性は、SOAPメッセージ内の要素すべてが同じネームスペースを共有する場合にも省略できます。

  • local-part: 実際の要素名。

<add-timestamp>

アウトバウンドSOAPメッセージにタイムスタンプを追加します。(このタイムスタンプは表2-7に説明のある<verify-timestamp>要素を設定すると検証されます。)

  • expiry: 署名が期限切れになるまでの有効期限(秒)。デフォルトは28800秒(8時間)です。

  • created: 作成時間がタイムスタンプに挿入されるかどうかを示します。デフォルトはtrueです。


表2-18に、Webサービス・セキュリティと対応する短縮名で認識される署名アルゴリズムを一覧表示します。

表2-18 署名アルゴリズムと短縮名

署名アルゴリズム 短縮名

http://www.w3.org/2000/09/xmldsig#rsa-sha1

RSA-SHA1(デフォルト)

http://www.w3.org/2001/04/xmldsig-more#rsa-md5

RSA-MD5

http://www.w3.org/2000/09/xmldsig#dsa-sha1

DSA-SHA1


アウトバウンド・メッセージに対する暗号化要素

<encrypt>要素は<outbound>要素のオプションの下位要素です。これは送信者の秘匿性要件を指定します。<encrypt>要素は<outbound>要素内で1回だけ使用できます。

表2-19で、アウトバウンド・メッセージに対して使用できる暗号化要素について説明します。

表2-19 <encrypt>要素の下位要素

要素名 説明

<encryption-method>

アウトバウンドSOAPメッセージの要素の暗号化に使用される暗号化メソッドを指定します。<encrypt>要素の下には1つの暗号化メソッドのみが列記されます。有効なメソッドは次のとおりです。

  • 3DES

  • AES-128(デフォルト)

  • AES-256

表2-9に、Webサービス・セキュリティで認識される暗号化アルゴリズムのURIおよび対応する短縮名を一覧表示します。

<keytransport-method>

<keytransport-method>は鍵トランスポート・アルゴリズムを指定します。アウトバウンド・メッセージに対して鍵トランスポート・メソッドを1つだけ指定できます。アルゴリズム名はURIではなく短縮名を使用して指定されます。この要素について使用できる値は次のとおりです。

  • RSA-1_5(デフォルト)

  • RSA-OAEP-MGF1P

表2-10に、Webサービス・セキュリティで認識されるアルゴリズムのURIおよび対応する短縮名を一覧表示します。

<tbe-elements>

<tbe-element>要素の集合。それぞれの<tbe-element>は暗号化される要素を示します。この要素には次の属性があります。

  • name-space: SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。

  • local-part: 要素の実際の名前。

  • mode: ELEMENTまたはCONTENTのどちらを暗号化するか指定するために使用される追加的な属性。modeの値がELEMENTの場合は要素全体が暗号化され、modeの値がCONTENTの場合は要素のコンテンツが暗号化されます。デフォルトはCONTENTです。

<recipient-key>

受信者の鍵別名で、データ暗号鍵の暗号化に使用されます。データ暗号鍵は、実際のデータの暗号化に使用される生成済の対称鍵です。データ暗号鍵自体も、受信者の公開鍵を使用して暗号化されます。

受信者の鍵には鍵用途拡張領域がある場合とない場合があります。受信者の鍵に鍵用途拡張領域がある場合、これはKEY_ENCIPHERMENTタイプである必要があります。拡張領域がない場合、暗号化リクエストは拒否されます。

この要素には次の属性があります。

  • alias: 鍵の別名

  • key-pass: 鍵にアクセスするためのオプションのパスワード属性

<use-request-cert>

Webサービス・クライアントが署名済SOAPメッセージを送信し、Webサービス・アプリケーションが署名を正常に検証しました。Webサービス・アプリケーションが同じクライアントに対してレスポンスを送り返すとき、クライアントが最初のメッセージ交換で送信した署名証明書を使用して、そのレスポンスを暗号化することを選択できます。

use-request-cert要素は、Webサービス・アプリケーションのアウトバウンド暗号化ポリシーの一部として構成されます。サーバー・インターセプタが署名証明書を見つけられない(つまり、クライアントが署名済SOAPメッセージを送信していないか、署名検証が失敗している)場合、Webサービス・アプリケーションは暗号化リクエストを拒否するので注意してください。