WebLogic Web サービス リファレンス ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

BEA Web サービス セキュリティ ポリシー アサーションのリファレンス

OASIS WS-SecurityPolicy 仕様が規定される前にリリースされた旧バージョンの WebLogic Server では、WS-Policy 仕様に基づき、BEA 独自の Web サービス セキュリティ ポリシー スキーマを使用して記述されたセキュリティ ポリシー ファイルを使用していました。このリリースの WebLogic Server では、WS-SecurityPolicy 1.2 仕様に準拠したセキュリティ ポリシー ファイルと、BEA Web サービス セキュリティ ポリシー ファイル (WebLogic Server 9 から提供開始) の両方がサポートされています。以下の節では、BEA 独自のスキーマを使用した Web サービス セキュリティ ポリシー ファイルでコンフィグレーション可能なセキュリティ アサーションに関するリファレンス情報を示します。

警告 : この章の内容は、BEA Web サービス セキュリティ ポリシー スキーマを使用して記述されたポリシーを使用する JAX-RPC 1.1 ベースの Web サービスのみに適用されます。JAX-WS 2.0 ベースの Web サービス、および OASIS WS-SecurityPolicy 1.2 仕様に基づいて記述されたポリシーには適用されません。

 


セキュリティ アサーションを含むポリシー ファイルの概要

ポリシー ファイルを使用すると、WebLogic Web サービスのメッセージングレベルのセキュリティをコンフィグレーションできます。WebLogic Web サービスに関連付けられているセキュリティ ポリシー ファイルの名前を指定するには、その Web サービスを実装している JWS ファイルで @Policy および @Policies JWS アノテーションを使用します。

セキュリティ ポリシー ファイルは、WS-Policy 仕様に準拠する XML ファイルです。WS-Policy ファイルのルート要素は、常に <wsp:Policy> です。メッセージレベルのセキュリティをコンフィグレーションするには、認証用にサポートされているトークンのタイプ、および SOAP メッセージを暗号化してデジタル署名する方法を指定するポリシー アサーションを追加します。

注意 : これらのセキュリティ ポリシー アサーションは、2002 年 12 月 18 日に公開された Web Services Security Policy Language (WS-SecurityPolicy) 仕様に基づいています。つまり、WebLogic Server のアサーションの正確な構文と使用方法は、この仕様で説明されているアサーションとは異なっていますが、意味上の違いはありません。このアサーションは、最新の仕様 (2005 年 7 月 13 日付) には基づいていません。

WebLogic Server には、BEA Web サービス セキュリティ ポリシー スキーマを使用する 5 つのセキュリティ ポリシー ファイル (Auth.xmlSign.xmlEncrypt.xmlWssc-dk.xml、および Wssc-sct.xml) が用意されています。これらのパッケージ化されたポリシー ファイルには標準的なセキュリティ アサーションが含まれており、独自のセキュリティ ポリシー ファイルを作成しない場合は、これらのファイルを使用できます。これらのファイルの詳細については、「BEA Web サービス セキュリティ ポリシー ファイル」を参照してください。

BEA Web サービス セキュリティ ポリシー スキーマを使用するポリシー ファイルには、次のネームスペースが含まれます。

<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
>

このリリースの WebLogic Server には、OASIS WS-SecurityPolicy 1.2 仕様に準拠しているパッケージ化されたポリシー ファイルも数多く用意されています。WS-SecurityPolicy 1.2 ポリシー ファイルと BEA 独自の Web サービス セキュリティ ポリシー スキーマ ファイルには、相互の互換性はありません。したがって、1 つの Web サービス セキュリティ コンフィグレーションで両方のタイプのポリシー ファイルを使用することはできません。WS-SecurityPolicy 1.2 セキュリティ ポリシー ファイルについては、「WS-SecurityPolicy 1.2 ポリシー ファイルの使用」を参照してください。

メッセージレベルでセキュリティ保護された WebLogic Web サービスの作成の詳細については、「メッセージレベルのセキュリティのコンフィグレーション」を参照してください。

 


グラフィカルな表現

以下の図では、BEA セキュリティ ポリシー ファイルのセキュリティ アサーションの要素の階層構造を示します。

図 1-2 BEA セキュリティ ポリシー アサーションの要素階層

BEA セキュリティ ポリシー アサーションの要素階層

 


セキュリティ要素のあるポリシー ファイルの例

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part"
>
  <wssp:Identity>
<wssp:SupportedTokens>
<wssp:SecurityToken TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID">
<wssp:Claims>
<wssp:ConfirmationMethod>sender-vouches</wssp:ConfirmationMethod>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Identity>
  <wssp:Confidentiality>
<wssp:KeyWrappingAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<wssp:MessageParts
Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
wls:SecurityHeader(Assertion)
</wssp:MessageParts>
</wssp:Target>
    <wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
      <wssp:MessageParts 
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()</wssp:MessageParts>
</wssp:Target>
    <wssp:KeyInfo />
</wssp:Confidentiality>
</wsp:Policy>

 


要素の説明

CanonicalizationAlgorithm

デジタル署名する SOAP メッセージの要素を標準化するのに使用するアルゴリズムを指定します。

注意 : WebLogic Web サービス セキュリティ ランタイムでは、ネームスペース プレフィックスのリストや、正規化アルゴリズムに対してデフォルト ネームスペースの存在を示すトークンを含む、InclusiveNamespaces PrefixList の指定をサポートしていません。

表 D-1 <CanonicalizationAlgorithm> の属性
属性
説明
必須/省略可能
URI
デジタル署名する SOAP メッセージの標準化に使用するアルゴリズム。
指定できるのは以下の標準化アルゴリズムのみ。
http://www.w3.org/2001/10/xml-exc-cl4n#
必須

Claims

特定のタイプのセキュリティ トークンに関連付けられる追加メタデータ情報を指定します。セキュリティ トークンのタイプによって、以下の子要素を指定可能、または指定することが必要です。

セキュアな会話のセキュリティ トークンの有効期間は、デフォルトでは 12 時間です。このデフォルト値を変更するには、<TokenLifeTime> 子要素を定義して、セキュリティ トークンの新しい有効期間 (ミリ秒) を指定します。

この要素には、属性はありません。

Confidentiality

SOAP メッセージの暗号化に使用するアルゴリズムやキーに加え、SOAP メッセージの一部または全部を暗号化するように指定します。

たとえば、Web サービスで、SOAP メッセージの本文全体を triple-DES で暗号化する必要がある場合などです。

表 D-2 <Confidentiality> の属性
属性
説明
必須/省略可能
SupportTrust10
この属性の有効な値は、true および false。デフォルト値は false
省略可能

ConfirmationMethod

ID に SAML トークンを使用する場合に使う確認メソッドのタイプを指定します。この要素に対しては、sender-vouches または holder-of-key という 2 つの値のうちのいずれかを指定する必要があります。次に例を示します。

  <wssp:Claims>
<wssp:ConfirmationMethod>sender-vouches</wssp:ConfirmationMethod>
</wssp:Claims>

この要素には、属性はありません。

<ConfirmationMethod> 要素は、SAML トークンを使用している場合のみ、必要です。

セキュリティ ポリシー ファイル内の <ConfirmationMethod> アサーションの正確な場所は、コンフィグレーションしているコンフィグレーション メソッドのタイプによって違います。具体的には、以下のとおりです。

sender-vouches:

<Identity> アサーション内の <ConfirmationMethod> アサーションを、次の例に示すように指定します。

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part"
>
  <wssp:Identity>
<wssp:SupportedTokens>
<wssp:SecurityToken
TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID">
<wssp:Claims>
<wssp:ConfirmationMethod>sender-vouches</wssp:ConfirmationMethod>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Identity>
</wsp:Policy>

holder-of-key:

<Integrity> アサーション内の <ConfirmationMethod> アサーションを指定します。この確認メソッドのための <Integrity> アサーションに SAML トークンを含めるのは、Web サービス ランタイムで、sender-vouches では必要でないメッセージの整合性の証明が必要なためです。

次に例を示します。

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part">
  <wssp:Integrity>
<wssp:SignatureAlgorithm
URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<wssp:CanonicalizationAlgorithm
URI="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <wssp:Target>
<wssp:DigestAlgorithm
URI="http://www.w3.org/2000/09/xmldsig#sha1" />
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
</wssp:Target>
    <wssp:SupportedTokens>
<wssp:SecurityToken
IncludeInMessage="true"
TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID">
<wssp:Claims>
<wssp:ConfirmationMethod>holder-of-key</wssp:ConfirmationMethod>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Integrity>
</wsp:Policy>

2 つの SAML 確認メソッド (sender-vouches または holder-of-key) の詳細については、「WebLogic Web サービスでの SAML トークン プロファイルのサポート」を参照してください。

DigestAlgorithm

SOAP メッセージの指定部分にデジタル署名する際に使用するダイジェスト アルゴリズムを指定します。デジタル署名する SOAP メッセージの一部を指定するには、<MessageParts> 兄弟要素を使用します。

表 D-3 <DigestAlgorithm> の属性
属性
説明
必須/省略可能
URI
SOAP メッセージの指定部分にデジタル署名する際に使用するダイジェスト アルゴリズム。
指定できるのは以下のダイジェスト アルゴリズムのみ。
http://www.w3.org/2000/09/xmldsig#sha1
必須

EncryptionAlgorithm

SOAP メッセージの指定部分を暗号化する際に使用する暗号化アルゴリズムを指定します。デジタル署名する SOAP メッセージの一部を指定するには、<MessageParts> 兄弟要素を使用します。

表 D-4 <EncryptionAlgorithm> の属性
属性
説明
必須/省略可能
URI
SOAP メッセージの指定部分を暗号化する際に使用する暗号化アルゴリズム。
有効な値は以下のとおり。
http://www.w3.org/2001/04/xmlenc#tripledes-cbc
http://www.w3.org/2001/04/xmlenc#kw-tripledes
http://www.w3.org/2001/04/xmlenc#aes128-cbc
WebLogic Workshop 8.1 でビルドした Web サービスと相互運用する場合は、暗号化アルゴリズムとして http://www.w3.org/2001/04/xmlenc#aes128-cbc を指定しなければならない。
必須

Identity

認証用にサポートされているセキュリティ トークンのタイプ (ユーザ名、X.509、または SAML) を指定します。

この要素には属性はありません。

Integrity

SOAP メッセージのデジタル署名に使用するアルゴリズムやキーに加え、SOAP メッセージの一部または全部にデジタル署名するように指定します。

たとえば、Web サービスで、SOAP メッセージの本文全体にデジタル署名する必要があり、SHA1 と RSA キーを使用したアルゴリズムのみを受け付ける場合などです。

表 D-5 <Integrity> の属性
属性
説明
必須/省略可能
SignToken
SOAP メッセージの指定部分に加え、<Integrity><SecurityToken> 子要素で指定したセキュリティ トークンにもデジタル署名するかどうかを指定する。
この属性の有効な値は、true および false。デフォルト値は true
省略可能
SupportTrust10
この属性の有効な値は、true および false。デフォルト値は false
省略可能
X509AuthConditional
   

KeyInfo

暗号化用のセキュリティ トークンを指定するために使用します。

この要素には属性はありません。

KeyWrappingAlgorithm

メッセージの暗号化キーを暗号化するために使用するアルゴリズムを指定します。

表 D-6 <KeyWrappingAlgorithm> の属性
属性
説明
必須/省略可能
URI

SOAP メッセージの暗号化キーを暗号化するために使用するアルゴリズム。

有効な値は以下のとおり。

  • http://www.w3.org/2001/04/xmlenc#rsa-1_5
  • (RSA-v1.5 アルゴリズムを指定する場合)

  • http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
  • (RSA-OAEP アルゴリズムを指定する場合)

必須

Label

セキュリティ コンテキスト トークンのラベルを指定します。WS-SecureConversation セキュリティ コンテキストをコンフィグレーションする際に使用します。

この要素には属性はありません。

Length

セキュリティ コンテキスト トークンおよび派生キー トークンを使用する場合のキーの長さを指定します。このアサーションは、WS-SecureConversation セキュリティ コンテキストにのみ適用されます。

デフォルト値は 32 です。

この要素には属性はありません。

MessageAge

SOAP メッセージが有効期限切れになり、破棄されるまでの期間を指定します。

セキュリティ ポリシー ファイルにこのセキュリティ アサーションを含めると、Web サービス ランタイムは、セキュリティ ポリシー ファイルが関連付けられている方向 (着信、発信、またはその両方) に応じて、要求または応答の SOAP メッセージに <Timestamp> ヘッダを追加します。<Timestamp> ヘッダは、メッセージの有効期限を、SOAP メッセージの宛先に対して示すものです。

たとえば、セキュリティ ポリシー ファイルに、次のような <MessageAge> アサーションが含まれていると仮定します。

<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
>
...
<wssp:MessageAge Age="300" />
</wsp:Policy>

その結果、生成された SOAP メッセージには、以下に抜粋したものに類似の <Timestamp> ヘッダが付きます。

<wsu:Timestamp
wsu:Id="Dy2PFsX3ZQacqNKEANpXbNMnMhm2BmGOA2WDc2E0JpiaaTmbYNwT"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2005-11-09T17:46:55Z</wsu:Created>
<wsu:Expires>2005-11-09T17:51:55Z</wsu:Expires>
</wsu:Timestamp>

この例において、SOAP メッセージの宛先では、2005-11-09T17:51:55Z、つまりメッセージ作成から 5 分後以降に受信されたメッセージが破棄されます。

Web サービス ランタイムは、SOAP メッセージ生成時に、<Created> ヘッダを SOAP メッセージが作成された時刻に設定し、<Expires> ヘッダは、<MessageAge> アサーションの Age 属性の値を作成時刻に加算したものに設定します。

次の表では、<MessageAge> アサーションの属性について説明します。

表 D-7 <MessageAge> の属性
属性
説明
必須/省略可能
Age
SOAP メッセージの実際にタイムアウトになるまでの期間 (秒) を指定する。
省略可能

次の表では、WebLogic Web サービス セキュリティ ランタイムのタイムスタンプ動作を、そのデフォルト値とともに記述するプロパティをリストしています。

表 1-1 タイムスタンプ動作プロパティ
プロパティ
説明
デフォルト値
クロックを同期
Web サービスで同期化されたクロックを前提とするかどうかを指定する。
true
クロック精度
クロックが同期化されている場合に、同期の精度を表す。

注意 : このプロパティは、リリース 9.2 の WebLogic Web サービスでは非推奨。代わりに、クロックのずれプロパティを使用する。両方のプロパティが設定されている場合は、クロックのずれプロパティが優先される。

60000 ミリ秒
クロックのずれ
メッセージの送信側と受信側の間で許容する差異 (ミリ秒) を指定する。
60000 ミリ秒
厳密でない精度
クロック精度プロパティの適用方法を緩和できる。

注意 : このプロパティは、リリース 9.2 の WebLogic Web サービスでは非推奨。代わりに、クロックのずれプロパティを使用する。

false
最大処理遅延
受信メッセージの鮮度のポリシーを指定する。
-1
有効期間
送信側で発信メッセージが有効であることを要求する時間の長さを表す。
60 秒

通常、前述のタイムスタンプ プロパティに変更を加える必要が生じることはありません。しかし、実際に必要になった場合は、default_wss Web サービス セキュリティ コンフィグレーションがまだ存在していなければ、Administration Console を使用してそれを作成し、その後 [タイムスタンプ] タブをクリックして、タイムスタンプ コンフィグレーションを更新しなければなりません。タスクについては「Web サービス セキュリティ コンフィグレーションの作成」を、これらのタイムスタンプ プロパティの詳細なリファレンス情報については「ドメイン : Web サービス セキュリティ : タイムスタンプ」を参照してください。

MessageParts

要素の SOAP メッセージにおける、署名または暗号化されるべき SOAP メッセージの部分を、その要素の祖父要素が何であるかに応じて指定します。SOAP メッセージの部分指定を行うには、このアサーション内で XPath 1.0 式または一連のあらかじめ定義された関数のいずれかを使用できます。

MessageParts アサーションは常に、Target アサーションの子となります。Target アサーションは、Integrity アサーション (SOAP メッセージに対するデジタル署名の方法を指定) または Confidentiality アサーション (SOAP メッセージに対する暗号化の方法を指定) のいずれかの子とすることができます。

このアサーションの使い方の詳細と、さまざまなサンプルについては、「MessageParts を使用した暗号化または署名を必要とする SOAP メッセージの部分指定」を参照してください。

表 D-8 <MessageParts> の属性
属性
説明
必須/省略可能
Dialect
SOAP メッセージにおける、署名または暗号化されるべき部分の認識に使用される固有言語を識別する。この属性を指定しない場合、XPath 1.0 が使用される。
この属性の値は以下のいずれかにする。
  • http://www.w3.org/TR/1999/REC-xpath-19991116 : 署名または暗号化されるべき部分を指定するために、SOAP メッセージに対して XPath 1.0 式を使用することを指定する。
  • http://schemas.xmlsoap.org/2002/12/wsse#part : SOAP 本文全体に署名または暗号化を行うことを指定するために使用される、便利な固有言語。
  • http://www.bea.com/wls90/security/policy/wsee#part : WebLogic 固有のヘッダに署名または暗号化を行うことを指定するための、便利な固有言語。また、この言語を使用すると、QNames を使って、セキュリティ ヘッダにおける署名または暗号化されるべき部分を指定できる。
必須

SecurityToken

親要素によって、認証、暗号化、またはデジタル署名のいずれかで使用できるセキュリティ トークンを指定します。

たとえば、この要素が <Identity> 親要素で定義されている場合、Web サービスを呼び出したクライアント アプリケーションは、SOAP 要求にセキュリティ トークンをアタッチする必要があります。Web サービスによっては、機密データにアクセスできるようにするために、クライアント アプリケーションが、信頼性のある認証局によって発行された SAML 認証トークンを提示しなければならない場合もあります。この要素が <Confidentiality> の一部の場合、暗号用のトークンが指定されます。

特定のタイプのセキュリティ トークンは、親要素に加え、TokenType 属性の値によって決まります。

セキュアな会話のセキュリティ トークンの有効期間は、デフォルトでは 12 時間です。このデフォルト値を変更するには、<TokenLifeTime> 子要素を含む <Claims> 子要素を追加します。「Claims」を参照してください。

表 D-9 <SecurityToken> の属性
属性
説明
必須/省略可能
DerivedFromTokenType
省略可能
IncludeInMessage
SOAP メッセージにトークンを格納するかどうかを指定する。
有効な値は、true または false
この属性のデフォルト値は、<Confidentiality> アサーションで使用する場合は false<Integrity> アサーションで使用する場合は true
この属性の値は、<Identity> アサーションで使用する場合は、明示的に false に設定したとしても、常に true
省略可能
TokenType
セキュリティ トークンのタイプを指定する。有効な値は以下のとおり。
  • http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3 (バイナリ X.509 トークンの指定用)
  • http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken (ユーザ名トークンの指定用)
  • http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID (SAML トークンの指定用)
必須

SecurityTokenReference

内部使用のみに対応しています。

このセキュリティ アサーションは、絶対にカスタム セキュリティ ポリシー ファイルに含めないようにしてください。この節での説明は、情報提供のみを目的としています。WebLogic Web サービス ランタイムは、デプロイ済みの Web サービスの動的 WSDL でパブリッシュされているセキュリティ ポリシー ファイルに、このセキュリティ アサーションを自動的に挿入します。このセキュリティ アサーションは、WebLogic Server の公開鍵を指定するものです。Web サービスを呼び出すクライアント アプリケーションがその後、それを使用して、セキュリティ ポリシー ファイルで指定された SOAP メッセージの各部分を暗号化します。Web サービス ランタイムが次に、サーバのプライベート キーを使用して、メッセージを復号化します。

SignatureAlgorithm

デジタル署名の計算に使用する暗号アルゴリズムを指定します。

表 D-10 <SignatureAlgorithm> の属性
属性
説明
必須/省略可能
URI
署名の計算に使用する暗号アルゴリズムを指定する。

注意 : 社内で使用している証明書と互換性のあるアルゴリズムを必ず指定すること。

有効な値は以下のとおり。
http://www.w3.org/2000/09/xmldsig#rsa-sha1
http://www.w3.org/2000/09/xmldsig#dsa-sha1
必須

SupportedTokens

親要素によって、認証、暗号化、またはデジタル署名のいずれかで使用できるセキュリティ トークンのリストを指定します。

この要素には属性はありません。

Target

親要素によって、暗号化またはデジタル署名する SOAP メッセージの対象に関する情報をカプセル化します。

子要素も、親要素によって異なります。たとえば、<Integrity> で使用する場合は、<DigestAlgorithm><Transform>、および <MessageParts> 子要素を指定できます。<Confidentiality> で使用する場合は、<EncryptionAlgorithm><Transform>、および <MessageParts> 子要素を指定できます。

1 つまたは複数の対象を指定できます。

表 D-11 <Target> の属性
属性
説明
必須/省略可能
encryptContentOnly
要素全体を暗号化するか、その内容のみを暗号化するかを指定する。
この属性は、<Target><Confidentiality> の子要素である場合にのみ指定できる。
この属性のデフォルト値は true で、内容のみが暗号化される。
省略可能

TokenLifeTime

セキュリティ コンテキスト トークンまたは派生キー トークンの有効期間 (秒) を指定します。この要素は、WS-SecurityConversation セキュリティ コンテキストをコンフィグレーションする場合にのみ使用します。

セキュリティ トークンのデフォルトの有効期間は 12 時間 (43,200 秒) です。

この要素には属性はありません。

Transform

親要素によって、電子署名または暗号化される SOAP メッセージの一部に適用されるトランスフォーメーション アルゴリズムの URI を指定します。

0 個以上の任意の数のトランスフォーメーションを指定できます。指定したトランスフォーメーションは、<Target> 親要素で指定されている順序で実行されます。

表 D-12 <Transform> の属性
属性
説明
必須/省略可能
URI
トランスフォーメーション アルゴリズムの URI を指定する。
有効な URI は次のとおり。
  • http://www.w3.org/2000/09/xmldsig#base64 (Base64 デコード変換)
  • http://www.w3.org/TR/1999/REC-xpath-19991116 (XPath フィルタ処理)

これらの変換アルゴリズムの詳細については、「XML-Signature Syntax and Processing」を参照。

必須

UsePassword

プレーンテキストかパスワードのダイジェストかを SOAP メッセージに表示するように指定します。この要素は、ユーザ名トークンでのみ使用されます。

表 D-13 <UsePassword> の属性
属性
説明
必須/省略可能
Type
パスワードのタイプを指定する。有効な値は以下のとおり。
  • http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText : SOAP メッセージでクリアテキスト パスワードを使用するように指定する。
  • http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest : SOAP メッセージでパスワード ダイジェストを使用するように指定する。

注意 : 下位互換性を保つため、前述の 2 つの URI は、先頭に「www.」を付けても指定できる。次に例を示す。

  • http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText
  • http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest
必須

 


MessageParts を使用した暗号化または署名を必要とする SOAP メッセージの部分指定

セキュリティ ポリシー ファイルで Integrity または Confidentiality アサーションのいずれかを使用する場合、Target 子アサーションも使用して、デジタル署名または暗号化を行う SOAP メッセージの対象を指定することが求められます。Target アサーションでは、MessageParts 子アサーションを使用して、SOAP メッセージにおいて実際にデジタル署名または暗号化されるべき部分を指定することが必要です。この節では、MessageParts アサーションのさまざまな使い方を説明します。

Confidentiality アサーション内で MessageParts アサーションを使用する詳細なセキュリティ ポリシー ファイルの例については、「セキュリティ要素のあるポリシー ファイルの例」を参照してください。この例では、SOAP メッセージの本文全体と、Assertion セキュリティ ヘッダが、ともに暗号化されるように指定する方法を示します。

MessagePartsDialect 属性を使用し、SOAP メッセージの各部分の識別に使用される固有言語を指定します。WebLogic Web サービス セキュリティ ランタイムでは、次の 3 つの固有言語をサポートしています。

必ず、メッセージ セキュリティ Web サービスのクライアント呼び出しの結果として生じた SOAP メッセージ内に実際に存在するメッセージの一部を指定するようにしてください。セキュリティ ポリシー ファイルが署名または暗号化される部分として示している部分を含まない着信 SOAP メッセージに遭遇した場合、Web サービス セキュリティ ランタイムはエラーを返し、呼び出しは失敗します。唯一の例外としては、WebLogic 固有の wls:SystemHeader() 関数を使用して SOAP メッセージ中の任意の WebLogic 固有の SOAP ヘッダに対し署名または暗号化を行うと指定した場合に、SOAP メッセージ内にこれらのヘッダがまったく見つからなければ、Web サービス セキュリティ ランタイムはただ呼び出しを続行し、エラーを返すことはしません。

XPath 1.0

この固有言語では、XPath 1.0 式を使用して、SOAP メッセージにおける署名または暗号化されるべき部分を指定できます。この固有言語を有効化する Dialect 属性の値は、http://www.w3.org/TR/1999/REC-xpath-19991116 です。

通常、SOAP メッセージにおける暗号化またはデジタル署名されるべき部分は、soap:Body 要素、soap:Header 要素のいずれかの子要素であると指定する必要があります。このため、パラメータとして XPath 式を取る以下の 2 つの関数が用意されています。

また、前述の関数の 1 つを使わず、MessageParts アサーションのコンテンツとして簡素な XPath 式を使用することもできます。この場合、XPath 式が検索を開始するルート要素は soap:Envelope となります。

次の例では、ネームスペース プレフィックス n1 を持ち、SOAP メッセージ本文の中に入っている AddInt 部分に対して署名を行うか暗号化を行うかを、親 TargetIntegrity アサーションの子であるか Confidentiality アサーションの子であるかに応じて指定しています。

<wssp:MessageParts 
Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"
xmlns:n1="http://www.bea.com/foo">
wsp:GetBody(./n1:AddInt)
</wssp:MessageParts>

上の例では、XPath 式で指定された部分のネームスペース (この例では n1) が、セキュリティ ポリシー ファイルの別の場所で定義済みでなければ、MessageParts アサーションに対する属性としてそれを定義する必要があることを示しています。

以下の例は、前述のものに似ています。ただし、署名または暗号化される部分は、wsee:Security の子要素であり、SOAP メッセージ ヘッダ内に入っている、wsu:Timestamp です。

<wssp:MessageParts 
Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116">
wsp:GetHeader(./wsse:Security/wsu:Timestamp)
</wssp:MessageParts>

前述の例では、wsee: および wse: ネームスペースが、セキュリティ ポリシー ファイルの別の場所で定義済みであることが前提となっています。

注意 : XPath 式の作成方法については、このマニュルでは対応していません。詳細については、XML Path Language (XPath), Version 1.0 仕様を参照してください。

定義済みの wsp:Body() 関数

XPath 1.0」で説明した XPath 固有言語は、SOAP メッセージにおける暗号化または署名されるべき任意の部分を正確に特定するのに十分な柔軟性を備えています。しかし場合によっては、単に SOAP メッセージ本文全体に対する署名または暗号化の指定が必要なこともあります。この場合、XPath 式を使用すると、過度に複雑になってしまうので、次の例に示すように、この目的のためだけにあらかじめ定義されている wsp:Body() 関数を使用することをお勧めします。

<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>

WebLogic 固有の Header 関数

BEA では、WebLogic セキュリティまたはシステムのヘッダの一部または全部に対する署名または暗号化を簡単に指定するための、一連の関数をあらかじめ定義した、独自の固有言語を提供しています。XPath 固有言語でも同じ目的を果たすことができますが、この WebLogic 固有言語を使用する方が、ずっと簡単です。この固有言語は、Dialect 属性を http://www.bea.com/wls90/security/policy/wsee#part に設定することによって、有効化されます。

wls:SystemHeaders() 関数は、すべての WebLogic 固有ヘッダに対する署名または暗号化を指定します。これらのヘッダは、信頼性のあるメッセージングやアドレッシングなど、さまざまな機能に関して、WebLogic Web サービス ランタイムで内部的に使用されます。ヘッダは以下のとおりです。

以下の例では、wls:SystemHeader() 関数の使い方を示します。

<wssp:MessageParts
Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
wls:SystemHeaders()
</wssp:MessageParts>

セキュリティ ヘッダにおける署名または暗号化されるべき特定の部分を指定するには、以下の例に示すように、wls:SecurityHeader(header) 関数を使用します。

<wssp:MessageParts
Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
wls:SecurityHeader(wsa:From)
</wssp:MessageParts>

この例では、wsa:From セキュリティ ヘッダのみが署名または暗号化されます。wls:SecurityHeader() 関数に対しては、前述のヘッダのリストのうち任意のものを指定できます。


ページの先頭       前  次