この付録では、セキュリティ・スキーマoracle-webservices-security-10_0.xsd
の定義するOracle Application Server Web Servicesセキュリティの構成要素について説明します。このファイルはoc4j-schemas.jar
ファイルの中にあります。
OC4J_HOME
\j2ee\home\lib\oc4j-schemas.jar
OC4J_HOME
はOracle Containers for J2EE(OC4J)をインストールしたディレクトリを表します。
セキュリティは、通常、より大規模なWebサービス管理構成の一部として使用されます。セキュリティを有効化するには、サーバー側のWebサービスとクライアントに構成する必要があります。構成は、アセンブルされる際にWebサービスまたはクライアントに渡されるXML構成ファイルの一部です。
サーバーでは、この構成はoracle-webservices.xml
デプロイメント・ディスクリプタ・ファイルに保存されます。このファイルはoracle-webservices-10_0.xsd
スキーマに基づいています。
J2SEクライアントでは、この構成は<
generated_name
>_Stub.xml
デプロイメント・ディスクリプタ・ファイルに保存されます。このファイルはoracle-webservices-client-10_0.xsd
スキーマに基づいています。
セキュリティ構成は<security>
要素で区切られます。oracle-webservices.xml
サーバー側構成ファイルでは、ポート・コンポーネントおよび個別操作に対する構成は<runtime>
句に表示されます。それぞれのポートおよび操作は、独自のセキュリティ構成を持つことができます。次の概念的なフラグメントは、セキュリティ構成要素がoracle-webservices.xml
ファイルの階層のどこに表示されるかを示します。
<oracle-webservices> <webservice-description> <port-component> <runtime enabled="security"> <security> <key-store> <signature-key> <encryption-key> <operations> <operation> <runtime> <security> <inbound> <verify-username-token> <property> <verify-x509-token> <property> <verify-saml-token> <subject-confirmation-methods> <verify-signature> <signature-methods> <signature-method> <tbs-elements> <verify-timestamp> <property> <decrypt> <encryption-methods> <encryption-method> <keytransport-methods> <keytransport-method> <tbe-elements> <property> <outbound> <username-token> <property> <saml-token> <attribute> <subject-confirmation-method> <confirmation-method> <saml-authority> <property> <x509-token> <property> <signature> <signature-methods> <signature-method> <add-timestamp> <tbs-elements> <tbs-element> <encrypt> <encryption-method> <keytransport-method> <recipient-key> <use-cert-request> <tbe-elements> <tbe-element>
この項では、監査スキーマoracle-webservices-security-10_0.xsd
の要素をアルファベット順に示します。
親要素: <signature>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
アウトバウンドSOAPメッセージにタイムスタンプを追加します。このタイムスタンプは<verify-timestamp>
要素を設定すると検証されます。「<verify-timestamp>」を参照してください。
親要素: <saml-toke>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<attribute>
要素には、プロパティ・ファイルを示す必須のpath
属性があります。属性文はこのファイルに列記されている属性から作成されます。
このプロパティ・ファイルには、ユーザーのIDのアサーションを行うための1つ以上の属性名/値のペアが含まれます。属性名の先頭にはオプションのネームスペースが付属する場合があります。次に例を示します。
[attribute-name-space/
]attribute-name=value
<attribute>
下位要素に表示される値の例を、次に示します。
email=abc@myCompany.com
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <subject-confirmation-methods>
子要素: なし
必須/オプション: <subject-confirmation-methods>
が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
これは、<subject-confirmation-methods>
が使用される場合、必須の下位要素です。1つから3つの<confirmation-method>
下位要素が表示される可能性があります。この要素について使用できる文字列値は次のとおりです。
Sender-Vouches
(デフォルト): 受信SAMLトークンはsender-vouches確認メソッドを提供し、トークンへの参照が署名されている必要があります。
Sender-Vouches-Unsigned
: 受信SAMLトークンはsender-vouches確認メソッドを提供し、トークンは署名されていない必要があります。
Holder-Of-Key
: 受信SAMLトークンはholder-of-key確認メソッドを提供する必要があります。アサーションにはユーザーの公開鍵が必要です。
アウトバウンド要素の場合:
親要素: <subject-confirmation-method>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
サポートされている確認メソッドはSender-Vouches
(デフォルト)、Sender-Vouches-Unsigned
およびHolder-Of-Key
です。最大で1つの<confirmation-method>
要素をアウトバウンド構成内の<subject-confirmation-method>
要素の下位要素として指定できます。
親要素: <inbound>
子要素: <encryption-methods>、<keytransport-methods>、<property>、<tbe-elements>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<decrypt>
要素は<inbound>
要素のオプションの下位要素です。これは受信者の秘匿性要件を指定します。<decrypt>
要素は<inbound>
要素内で1回だけ使用できます。
前述の子要素に加えて、<decrypt>
要素は<property>
下位要素もサポートします。<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
"/>
復号鍵の別名およびパスワードは、パスワード・インダイレクションを使用するsystem-jazn-data.xml
ファイルに保存されます。
注意: このプロパティは、oracle-webservices.xml または< generated_name >_Stub.xml デプロイメント・ディスクリプタのどちらかで設定できます。このプロパティを追加するためのツール・サポートはないため、ファイルは手動で編集する必要があります。 |
親要素: <outbound>
子要素: <encryption-method>、<keytransport-method>、<recipient-key>、<tbe-elements>、<use-cert-request>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<encrypt>
要素は<outbound>
要素のオプションの下位要素です。これは送信者の秘匿性要件を指定します。<encrypt>
要素は<outbound>
要素内で1回だけ使用できます。
親要素: <security>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: 両方
メッセージの復号化に必要な鍵を示します。
<encryption-key>
要素は、<encrypt>
要素の<recipient-key>
下位要素のalias
属性として構成されます。<recipient-key>
の詳細は、「<recipient-key>」を参照してください。
ポート・レベル・キーストアが指定されている場合、または鍵をグローバル・キーストアから選択する際は、<signature-key>
および<encryption-key>
要素が必要です。これらの鍵がポート・レベルで構成されていない場合は、グローバル・レベルの値が使用されます。
<signature-key>
および<encryption-key>
要素の値を変更した場合は、新しい値を有効にするためアプリケーションを再起動する必要があります。
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <encryption-methods>
子要素: なし
必須/オプション: <encryption-methods>
が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<decrypt>
要素の一部としての暗号化メソッドは、Webサービス・アプリケーションで受け入れられた暗号化メソッドを参照します。Webサービス・アプリケーションは複数の暗号化メソッドを受入れできます。1つ以上3つ以下の<encryption-method>
要素が示されます。受信SOAPメッセージが暗号化されている場合、サービス・インターセプタは秘匿性ポリシーをチェックして、暗号化アルゴリズムが一致しない場合はリクエストを拒否します。<encryption-method>
について有効な値は次のとおりです。
3DES
AES-128
(デフォルト)
AES-256
表2-9「暗号化アルゴリズムに対するURIと短縮名」には、Webサービス・セキュリティで認識される暗号化アルゴリズムURIおよび対応する短縮名が一覧表示されています。
アウトバウンド要素の場合:
親要素: <encrypt>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
アウトバウンドSOAPメッセージの要素の暗号化に使用される暗号化メソッドを指定します。<encrypt>
要素の下には1つの暗号化メソッドのみが列記されます。有効なメソッドは次のとおりです。
3DES
AES-128
(デフォルト)
AES-256
表2-9「暗号化アルゴリズムに対するURIと短縮名」には、Webサービス・セキュリティで認識される暗号化アルゴリズムに対するURIおよび対応する短縮名が一覧表示されています。
親要素: <decrypt>
子要素: <encryption-method>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<encryption-method>
要素の集合。「<encryption-method>」を参照してください。
親要素: <security>
子要素: <decrypt>、<verify-saml-token>、<verify-signature>、<verify-username-token>、<verify-x509-token>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
oracle-webservices.xml
および<
generated_name
>_Stub.xml
デプロイメント・ディスクリプタ内のインバウンド・メッセージ・セクションは、<inbound>
要素で区切られます。<inbound>
要素は受信メッセージに関連するセキュリティ構成ポリシーをカプセル化します。<inbound>
要素は、<security>
の下位要素としてグローバル、ポートおよび操作レベルで使用できます。
インバウンド・セキュリティは、受信メッセージに対するコンテキスト固有のセキュリティ・ポリシーを定義します。クライアントの場合、これはレスポンスの受信に関連付けられたセキュリティ・ポリシーを表します。サービスの場合、これはリクエストの受信に関連付けられたセキュリティ・ポリシーを表します。
親要素: <security>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: 両方
<key-store>
要素はサーバー側のグローバルおよびポート・レベルで、またクライアント側のポート・レベルで必須となり、使用されます。グローバル・キーストア設定はインスタンス内にデプロイされたすべてのアプリケーションに適用されます。これは特定のポート・レベル・キーストアで上書きされる可能性があります。<key-store>
要素の値を変更した場合は、新しい値を有効にするためアプリケーションを再起動する必要があります。
表A-4 <key-store>の属性
名前 | 説明 |
---|---|
name |
値: 文字列 デフォルト: N/A キーストアの名前。 |
path |
値: 文字列 デフォルト: N/A(必須) キーストアへのファイル・システム・パス。これは絶対パスまたは相対パスになります。サーバーでは、相対パスはアプリケーション・ルート・ディレクトリに対する相対パスになります。
クライアントでは、クライアント・アプリケーションがOracleAS Web Servicesにデプロイされているとき、パスは絶対パスか |
type |
値: 文字列 デフォルト: N/A キーストアのタイプ。デフォルト・タイプは |
store-pass |
値: 文字列 デフォルト: N/A キーストアにアクセスするためのパスワード。 |
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
子要素: なし
必須/オプション: <keytransport-methods>
が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
それぞれの<keytransport-method>
は受入れ可能な鍵トランスポート・アルゴリズムを指定します。1つ以上2つ以下の<keytransport-method>
要素がインバウンド・メッセージに対して指定されます。アルゴリズム名はURIではなく短縮名を使用して指定されます。受入れできる値は次のとおりです。
RSA-1_5
(デフォルト)
RSA-OAEP-MGF1P
表2-10「鍵トランスポート・アルゴリズムに対するURIと短縮名」には、Webサービス・セキュリティで認識されるアルゴリズムURIおよび対応する短縮名が一覧表示されています。
アウトバウンド要素の場合:
親要素: <encrypt>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<keytransport-method>
は鍵トランスポート・アルゴリズムを指定します。アウトバウンド・メッセージに対して鍵トランスポート・メソッドを1つだけ指定できます。アルゴリズム名はURIではなく短縮名を使用して指定されます。この要素について使用できる値は次のとおりです。
RSA-1_5
(デフォルト)
RSA-OAEP-MGF1P
表2-10「鍵トランスポート・アルゴリズムに対するURIと短縮名」には、Webサービス・セキュリティで認識されるアルゴリズムのURIおよび対応する短縮名が一覧表示されています。
親要素: <decrypt>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<keytransport-method>
要素の集合。「<keytransport-method>」を参照してください。
親要素: <security>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: 両方
Nonceは、リプレイ攻撃を防止するためユーザー名トークンに含まれるランダム値です。Nonceはサーバーでキャッシュされます。OracleAS Web Servicesセキュリティでは、ユーザー名トークンに挿入可能なNonce値を構成できます。
親要素: <security>
子要素: <encrypt>、<saml-token>、<signature>、<username-token>、<x509-token>
必須/オプション:
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
oracle-webservices.xml
および<
generated_name
>_Stub.xml
デプロイメント・ディスクリプタ内のアウトバウンド・メッセージ・セクションは、<outbound>
要素で区切られます。アウトバウンド・セキュリティは、送信メッセージに対するコンテキスト固有のセキュリティ・ポリシーを定義します。クライアントの場合、これはリクエストの送信に関連付けられたセキュリティ・ポリシーを表します。サービスの場合、これはレスポンスの送信に関連付けられたセキュリティ・ポリシーを表します。
親要素: <encrypt>
子要素: なし
必須/オプション: 必須
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
受信者の鍵別名で、データ暗号鍵の暗号化に使用されます。データ暗号鍵は、実際のデータの暗号化に使用される生成済の対称鍵です。データ暗号鍵自体も、受信者の公開鍵を使用して暗号化されます。
受信者の鍵には鍵用途拡張領域がある場合とない場合があります。受信者の鍵に鍵用途拡張領域がある場合、これはKEY_ENCIPHERMENT
タイプである必要があります。拡張領域がない場合、暗号化リクエストは拒否されます。
親要素: <saml-toke>
子要素: <property>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<saml-authority>
要素は<saml-token>
のオプションの下位要素です。<saml-authority>
要素およびその属性の構成では、SAMLPリクエストを発行することで外部SAML認証局からSAMLトークンを取得することができます。
この要素は、現在使用されていない<property>
下位要素をサポートします。
表A-7 <saml-authority>の属性
名前 | 説明 |
---|---|
値: 文字列 デフォルト: N/A SAML認証局への認証の提供に使用されるパスワードを指定します。 |
|
値: 文字列 デフォルト: N/A SAML認証局への認証の提供に使用されるユーザー名を指定します。この属性は |
|
値: 文字列 デフォルト: N/A(必須) SAML応答者のURLを指定します。 |
|
値: ブール デフォルト: false このブール属性が |
親要素: <outbound>
子要素: <attribute>、<property>、<saml-authority>、<subject-confirmation-method>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<saml-token>
要素は<outbound>
ポリシーのオプションの要素です。クライアント・インターセプタは、ユーザーIDに対する実際のSAMLアサーションの作成のため、アウトバウンド・ポリシーの<saml-token>
要素を参照します。この要素には、現在使用されていない<property>
下位要素があります。
表A-8 <saml-token>の属性
親要素: セキュリティ構成のルート要素
子要素: <encryption-key>、<inbound>、<key-store>、<nonce-config>、<outbound>、<signature-key>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: 両方
セキュリティ構成をカプセル化します。構成は、グローバル、ポートまたは操作レベルで使用できます。
親要素: <outbound>
子要素: <add-timestamp>、<signature-methods>、<tbs-elements>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
送信するメッセージまたは個別メッセージ要素の署名に対するアルゴリズムを指定します。
親要素: <security>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: 両方
<signature>
と<verify-signature>
で必要な鍵を示します。
ポート・レベル・キーストアが指定されている場合、または鍵をグローバル・キーストアから選択する際は、<signature-key>
および<encryption-key>
要素が必要です。これらの鍵がポート・レベルで構成されていない場合は、グローバル・レベルの値が使用されます。
<signature-key>
および<encryption-key>
要素の値を変更した場合は、新しい値を有効にするためアプリケーションを再起動する必要があります。
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <signature-methods>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<signature-method>
要素は受入れ可能な署名アルゴリズムの指定に使用されます。アルゴリズム名はURIではなく短縮名を使用して指定されます。デフォルト値はRSA-SHA1
です。表2-18「署名アルゴリズムと短縮名」に、OracleAS Web Servicesセキュリティで認識されるアルゴリズムURIおよび対応する短縮名を一覧表示します。
アウトバウンド要素の場合:
親要素: <signature-methods>
子要素: なし
必須/オプション: <signature-methods>
が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<signature-method>
要素は受入れ可能な署名アルゴリズムを指定します。アルゴリズム名はURIではなく短縮名を使用して指定されます。デフォルト値はRSA-SHA1
です。
表2-18「署名アルゴリズムと短縮名」に、OracleAS Web Servicesセキュリティで認識されるアルゴリズムURIおよび対応する短縮名を一覧表示します。
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <verify-signature>
子要素: <signature-method>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<signature-method>
要素のリスト。「<signature-method>」を参照してください。
アウトバウンド要素の場合:
親要素: <signature>
子要素: <signature-method>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<signature-method>
要素の集合。「<signature-method>」を参照してください。
親要素: <saml-toke>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<confirmation-method>
要素のリストを区切ります。「<confirmation-method>」を参照してください。
親要素: <verify-saml-token>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
これはインバウンド・ポリシーに対するオプション要素です。インバウンドの<verify-saml-token>
ポリシーの一部として使用されるとき、これは受信SOAPメッセージにおけるIDの伝播に使用される確認メソッド(<confirmation-method>
)の列挙を参照します。
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <tbe-elements>
子要素: なし
必須/オプション: <tbe-elements>
が存在する場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
受信したSOAPメッセージで暗号化されている要素を示します。
表A-10 <tbe-element>の属性
名前 | 説明 |
---|---|
値: 文字列 デフォルト: N/A(必須) 実際の要素名。 |
|
値: encrypt-mode-enum デフォルト:
|
|
値: anyURI デフォルト: N/A(必須) SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。 |
アウトバウンド要素の場合:
親要素: <tbe-elements>
子要素: なし
必須/オプション: <tbe-elements>
が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
それぞれの<tbe-element>
は暗号化される要素を示します。
表A-11 <tbe-element>の属性
名前 | 説明 |
---|---|
値: 文字列 デフォルト: N/A(必須) 要素の実際の名前。 |
|
値: enum-mode-encrypt デフォルト: CONTENT
|
|
値: anyURI デフォルト: N/A(必須) SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。 |
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <decrypt>
子要素: <tbe-element>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<tbe-element>
要素の集合。「<tbe-element>」を参照してください。
アウトバウンド要素の場合:
親要素: <encrypt>
子要素: <tbe-element>
必須/オプション: 必須
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<tbe-element>
要素の集合。「<tbe-element>」を参照してください。
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <tbs-elements>
子要素: なし
必須/オプション: <tbs-elements>が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<tbs-element>
要素は署名される必要のあるSSOAPメッセージ内の要素を識別します。
表A-12 <tbs-element>の属性
名前 | 説明 |
---|---|
値: 文字列 デフォルト: N/A(必須) 実際の要素名。 |
|
値: anyURI デフォルト: N/A(必須) SOAPメッセージ内の要素の実際のネームスペース。この属性は、ネームスペースにこの名前の要素が1つしかない場合は省略できます。 |
アウトバウンド要素の場合:
親要素: <tbs-elements>
子要素: なし
必須/オプション: <tbs-elements>
が指定されている場合は必須
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
それぞれの<tbs-element>
は署名される要素を示します。
この要素は、インバウンドまたはアウトバウンド要素にすることができます。
インバウンド要素の場合:
親要素: <verify-signature>
子要素: <tbs-element>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
受信リクエストで署名されていることが求められる<tbs-element>
要素のリスト。「<tbs-element>」を参照してください。
アウトバウンド要素の場合:
親要素: <signature>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<tbs-element>
要素の集合。「<tbs-element>」を参照してください。
親要素: <encrypt>
子要素: なし
必須/オプション: 必須
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
Webサービス・クライアントが署名済SOAPメッセージを送信し、Webサービス・アプリケーションが署名を正常に検証しました。Webサービス・アプリケーションが同じクライアントに対してレスポンスを送り返すとき、クライアントが最初のメッセージ交換で送信した署名証明書を使用して、そのレスポンスを暗号化することを選択できます。
use-request-cert
要素は、Webサービス・アプリケーションのアウトバウンド暗号化ポリシーの一部として構成されます。サーバー・インターセプタが署名証明書を見つけられない(つまり、クライアントが署名済SOAPメッセージを送信していないか、署名検証が失敗している)場合、Webサービス・アプリケーションは暗号化リクエストを拒否するので注意してください。
親要素: <outbound>
子要素: <property>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<username-token>
要素はアウトバウンド・ポリシーのオプションの要素です。この要素は、ユーザー名トークンをセキュリティ・ヘッダー・ブロックに挿入することを指定します。要素の1つのインスタンスのみが許容されます。この要素には、現在使用されていない<property>
下位要素があります。
表A-14 <username-token>の属性
名前 | 説明 |
---|---|
値: 文字列 デフォルト: N/A トークンに挿入されるユーザー名。 |
|
値: 文字列 デフォルト: N/A ユーザーの実際のパスワード。 |
|
値: password-type-enum デフォルト: パスワード・タイプで、 |
|
値: 文字列 デフォルト: N/A ユーザー名トークンをSOAPメッセージに挿入するコールバック・ハンドラの名前。コールバック・ハンドラは、 |
|
値: ブール デフォルト: false Nonceをリクエストに追加するかどうか指定します。Digest認証では、この属性は必須であり |
|
値: ブール デフォルト: false 作成時間をリクエストに追加するかどうか指定します。ダイジェスト・パスワード認証では、この属性は必須であり |
親要素: <inbound>
子要素: <subject-confirmation-methods>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<verify-saml-token>
要素は<inbound>
要素のオプションの下位要素です。SAMLアサーションを保持する受信SOAPメッセージを検証するかどうか指定します。
親要素: <inbound>
子要素: <property>
、<signature-methods>、<tbs-elements>、<verify-timestamp>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<verify-signature>
要素は<inbound>
要素のオプションの下位要素です。これは受信者の整合性または署名要件を指定します。この要件には、署名検証アルゴリズムの名前と検証対象のメッセージ部分が含まれます。<verify-signature>
要素は<inbound>
要素内で1回だけ使用できます。
リストされた子要素に加えて、<verify-signature>
要素には<property>
下位要素が指定されます。<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
デプロイメント・ディスクリプタのどちらかで設定できます。このプロパティを追加するためのツール・サポートはないため、ファイルは手動で編集する必要があります。
親要素: <verify-signature>
子要素: なし
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
受信したSOAPメッセージのタイムスタンプを検証します。(このタイムスタンプは<add-timestamp>
要素で構成されています。)created
属性は、タイムスタンプがメッセージのために作成されたかどうかを示すために使用されます。受信したSOAPメッセージに期限切れのタイムスタンプがある場合は、サーバーから拒否されます。
親要素: <inbound>
子要素: <property>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<verify-username-token>
要素は、ユーザー名トークンに対するセキュリティ・ポリシーを指定します。これは<inbound>
要素のオプションの下位要素で、要素内で1回だけ使用できます。
表A-16 <verify-username-token>の属性
名前 | 説明 |
---|---|
password-type |
パスワード認証のタイプで、 |
require-nonce |
Nonceをユーザー名トークンに含める必要があるかどうかを指定します。この属性はDigest認証に必須です。デフォルトは |
require-created |
作成時間をユーザー名トークンに含める必要があるかどうかを指定します。この属性はプレーン・テキストまたはダイジェストのパスワード認証のどちらかで使用できます。ただし、Digest認証の場合は |
<verify-username-token>
要素には<property>
下位要素もあります。<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
デプロイメント・ディスクリプタで設定できます。このプロパティを追加するためのツール・サポートはないため、ファイルは手動で編集する必要があります。
親要素: <inbound>
子要素: <property>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: インバウンド
<verify-x509-token>
要素は、X.509トークンに関連する認証ポリシーを指定します。これは<inbound>
要素のオプションの下位要素です。これには、現在使用されていないオプションの<property>
下位要素があります。
親要素: <outbound>
子要素: <property>
必須/オプション: オプション
インバウンド・メッセージ/アウトバウンド・メッセージ: アウトバウンド
<x509-token>
要素は<outbound>
構成のオプションの要素です。この要素は、X.509署名証明書がリクエストに挿入されることを示します。X.509証明書(署名者の証明書)への直接参照が追加されます。ユーザーは、この構成が動作するように構成された署名鍵を保持する必要があります。
<x509-token>
要素は<property>
下位要素をサポートします。<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
"/>
例A-1にoracle-webservices-security-10_0.xsd
スキーマ・ファイルのコンテンツを示します。
例A-1 oracle-webservices-security-10_0.xsdセキュリティ・スキーマのコンテンツ
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:simpleType name="password-type-enum"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="PLAINTEXT"/> <xsd:enumeration value="DIGEST"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="signature-method-enum"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="RSA-SHA1"/> <xsd:enumeration value="RSA-MD5"/> <xsd:enumeration value="DSA-SHA1"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="encryption-method-enum"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="3DES"/> <xsd:enumeration value="AES-128"/> <xsd:enumeration value="AES-256"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="keytransport-method-enum"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="RSA-OAEP-MGF1P"/> <xsd:enumeration value="RSA-1_5"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="encrypt-mode-enum"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="CONTENT"/> <xsd:enumeration value="ELEMENT"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="nonce-config-type"> <xsd:attribute name="clock-skew" type="xsd:integer" default="0"/> <xsd:attribute name="cache-ttl" type="xsd:integer" default="300"/> </xsd:complexType> <xsd:complexType name="security-config-type"> <xsd:sequence> <xsd:element name="key-store" type="key-store-config-type" minOccurs="0"/> <xsd:element name="signature-key" type="key-config-type" minOccurs="0"/> <xsd:element name="encryption-key" type="key-config-type" minOccurs="0"/> <xsd:element name="nonce-config" type="nonce-config-type" minOccurs="0"/> <xsd:element name="inbound" type="inbound-config-type" minOccurs="0"/> <xsd:element name="outbound" type="outbound-config-type" minOccurs="0"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="security-operation-config-type"> <xsd:sequence> <xsd:element name="inbound" type="inbound-config-type" minOccurs="0"/> <xsd:element name="outbound" type="outbound-config-type" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <xsd:element name="security-global" type="security-config-type"/> <xsd:element name="security-port" type="security-config-type"/> <xsd:element name="security-operation" type="security-operation-config-type"/> <xsd:complexType name="inbound-config-type"> <xsd:sequence> <xsd:element name="verify-username-token" type="verify-username-token-config-type" minOccurs="0"/> <xsd:element name="verify-x509-token" type="verify-x509-token-config-type" minOccurs="0"/> <xsd:element name="verify-saml-token" type="verify-saml-token-config-type" minOccurs="0"/> <xsd:element name="verify-signature" type="verify-signature-config-type" minOccurs="0"/> <xsd:element name="decrypt" type="decrypt-config-type" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="outbound-config-type"> <xsd:sequence> <xsd:choice minOccurs="0"> <xsd:element name="username-token" type="username-token-config-type"/> <xsd:element name="x509-token" type="x509-token-config-type"/> <xsd:element name="saml-token" type="saml-token-config-type"/> </xsd:choice> <xsd:element name="signature" type="signature-config-type" minOccurs="0"/> <xsd:element name="encrypt" type="encrypt-config-type" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="signature-config-type"> <xsd:sequence> <xsd:element name="signature-method" default="RSA-SHA1" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="RSA-SHA1"/> <xsd:enumeration value="RSA-MD5"/> <xsd:enumeration value="DSA-SHA1"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="tbs-elements" type="sign-elements-config-type" minOccurs="0"/> <xsd:element name="add-timestamp" type="timestamp-config-type" minOccurs="0"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="encrypt-config-type"> <xsd:sequence> <xsd:choice> <xsd:element name="recipient-key" type="key-config-type"/> <xsd:element name="use-request-cert" type="xsd:boolean"/> </xsd:choice> <xsd:element name="encryption-method" default="AES-128" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="3DES"/> <xsd:enumeration value="AES-128"/> <xsd:enumeration value="AES-256"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="keytransport-method" default="RSA-1_5" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="RSA-OAEP-MGF1P"/> <xsd:enumeration value="RSA-1_5"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="tbe-elements" type="encrypt-elements-config-type"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="verify-signature-config-type"> <xsd:sequence> <xsd:element name="signature-methods" type="signature-methods-config-type" minOccurs="0"/> <xsd:element name="tbs-elements" type="sign-elements-config-type" minOccurs="0"/> <xsd:element name="verify-timestamp" type="timestamp-config-type" minOccurs="0"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="decrypt-config-type"> <xsd:sequence> <xsd:element name="encryption-methods" type="encryption-methods-config-type" minOccurs="0"/> <xsd:element name="keytransport-methods" type="keytransport-methods-config-type" minOccurs="0"/> <xsd:element name="tbe-elements" type="encrypt-elements-config-type" minOccurs="0"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="property-config-type"> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="value" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="key-store-config-type"> <xsd:attribute name="store-pass" type="xsd:string" use="optional"/> <xsd:attribute name="path" type="xsd:string" use="required"/> <xsd:attribute name="type" type="xsd:string" use="optional"/> <xsd:attribute name="name" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="key-config-type"> <xsd:attribute name="alias" type="xsd:string" use="required"/> <xsd:attribute name="key-pass" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="signature-methods-config-type"> <xsd:sequence> <xsd:element name="signature-method" default="RSA-SHA1" maxOccurs="3"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="RSA-SHA1"/> <xsd:enumeration value="RSA-MD5"/> <xsd:enumeration value="DSA-SHA1"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="encryption-methods-config-type"> <xsd:sequence> <xsd:element name="encryption-method" default="AES-128" maxOccurs="3"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="3DES"/> <xsd:enumeration value="AES-128"/> <xsd:enumeration value="AES-256"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="keytransport-methods-config-type"> <xsd:sequence> <xsd:element name="keytransport-method" default="RSA-1_5" maxOccurs="2"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="RSA-OAEP-MGF1P"/> <xsd:enumeration value="RSA-1_5"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="username-token-config-type"> <xsd:sequence> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="optional"/> <xsd:attribute name="password" type="xsd:string" use="optional"/> <xsd:attribute name="password-type" type="password-type-enum" use="optional" default="PLAINTEXT"/> <xsd:attribute name="cbhandler-name" type="xsd:string" use="optional"/> <xsd:attribute name="add-nonce" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="add-created" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:complexType name="verify-username-token-config-type"> <xsd:sequence> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="password-type" type="password-type-enum" use="optional"/> <xsd:attribute name="require-nonce" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="require-created" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:complexType name="verify-x509-token-config-type"> <xsd:sequence> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="x509-token-config-type"> <xsd:sequence> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="cbhandler-name" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="timestamp-config-type"> <xsd:attribute name="expiry" type="xsd:long" default="28800"/> <xsd:attribute name="created" type="xsd:boolean" default="true"/> </xsd:complexType> <xsd:complexType name="encrypt-elements-config-type"> <xsd:sequence> <xsd:element name="tbe-element" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="name-space" type="xsd:anyURI" use="required"/> <xsd:attribute name="local-part" type="xsd:string" use="required"/> <xsd:attribute name="mode" type="encrypt-mode-enum" use="optional" default="CONTENT"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="sign-elements-config-type"> <xsd:sequence> <xsd:element name="tbs-element" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="name-space" type="xsd:anyURI" use="required"/> <xsd:attribute name="local-part" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="saml-token-config-type"> <xsd:sequence> <xsd:element name="subject-confirmation-method" type="subject-confirmation-method-config-type" minOccurs="0"/> <xsd:element name="attribute" type="attribute-config-type" minOccurs="0"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="saml-authority" type="saml-authority-config-type" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="name-format" type="name-identifier-format-enum" default="UNSPECIFIED"/> <xsd:attribute name="name" type="xsd:string" use="optional"/> <xsd:attribute name="cbhandler-name" type="xsd:string" use="optional"/> <xsd:attribute name="issuer-name" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:complexType name="verify-saml-token-config-type"> <xsd:sequence> <xsd:element name="subject-confirmation-methods" type="subject-confirmation-methods-config-type" minOccurs="0"/> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="subject-confirmation-methods-config-type"> <xsd:sequence> <xsd:element name="confirmation-method" default="SENDER-VOUCHES" maxOccurs="3"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="SENDER-VOUCHES"/> <xsd:enumeration value="SENDER-VOUCHES-UNSIGNED"/> <xsd:enumeration value="HOLDER-OF-KEY"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="subject-confirmation-method-config-type"> <xsd:sequence> <xsd:element name="confirmation-method" default="SENDER-VOUCHES" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="SENDER-VOUCHES"/> <xsd:enumeration value="SENDER-VOUCHES-UNSIGNED"/> <xsd:enumeration value="HOLDER-OF-KEY"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="attribute-config-type"> <xsd:attribute name="path" type="xsd:string" use="required"/> </xsd:complexType> <xsd:simpleType name="name-identifier-format-enum"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:enumeration value="UNSPECIFIED"/> <xsd:enumeration value="EMAIL"/> <xsd:enumeration value="X509-SUBJECT-NAME"/> <xsd:enumeration value="WINDOWS-DOMAIN-NAME"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="saml-authority-config-type"> <xsd:sequence> <xsd:element name="property" type="property-config-type" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="endpoint-address" type="xsd:string" use="required"/> <xsd:attribute name="auth-user-name" type="xsd:string" use="optional"/> <xsd:attribute name="auth-password" type="xsd:string" use="optional"/> <xsd:attribute name="require-signature" type="xsd:boolean" use="optional"/> </xsd:complexType> </xsd:schema>