ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server Web サービス リファレンス
11g リリース 1 (10.3.1)
B55558-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

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

OASIS WS-SecurityPolicy 仕様が規定される前にリリースされた旧バージョンの WebLogic Server では、WS-Policy 仕様に基づき、独自の Web サービス セキュリティ ポリシー スキーマを使用して記述されたセキュリティ ポリシー ファイルを使用していました。WebLogic Serverの今回のリリースでは、http://www.oasis-open.org/committees/download.php/21401/ws-securitypolicy-1.2-spec-cd-01.pdfにある OASIS WS-SecurityPolicy 1.2 仕様に準拠するセキュリティ ポリシーファイルがサポートされます。WebLogic Serverの今回のリリースでは、WebLogic Server 9 に最初に含めた独自の Web サービス セキュリティ ポリシー ファイルもサポートされます。ただし、このレガシー ポリシー フォーマットは推奨されていません。新しいアプリケーションに使用しないでください。

以下の節では、独自のスキーマを使用した Web サービス セキュリティ ポリシー ファイルでコンフィグレーション可能なセキュリティ アサーションに関するリファレンス情報を示します。

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

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

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


注意 :

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

Oracle 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 ポリシー ファイルと Oracle 独自の Web サービス セキュリティ ポリシー スキーマ ファイルには、相互の互換性はありません。したがって、1 つの Web サービス セキュリティ コンフィグレーションで両方のタイプのポリシー ファイルを使用することはできません。WS-SecurityPolicy 1.2 セキュリティ ポリシー ファイルの使用については、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Web サービスのセキュリティ』の「WS-SecurityPolicy 1.2 ポリシー ファイルの使用」を参照してください。

メッセージレベルでセキュリティ保護された WebLogic Web サービスをタスク中心に説明している内容については、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Web サービスのセキュリティ』の「メッセージレベルのセキュリティのコンフィグレーション」を参照してください。

グラフィカルな表現

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

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

図 5-1 の説明は図の下のリンクをクリックしてください。
「図 5-1 Oracle セキュリティ ポリシー アサーションの要素階層」の説明

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

<?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 の指定をサポートしていません。

表 5-1 <CanonicalizationAlgorithm> の属性

属性 説明 必須/省略可能

URI

デジタル署名する SOAP メッセージの標準化に使用するアルゴリズム。

指定できるのは以下の標準化アルゴリズムのみ。

http://www.w3.org/2001/10/xml-exc-cl4n#


Claims

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

  • ユーザ名トークンの場合、<UsePassword> 子要素を定義すると、SOAP メッセージでパスワード ダイジェストを使用するかどうかを指定できる。詳細については、「UsePassword」を参照してください。

  • SAML トークンの場合、<ConfirmationMethod> 子要素を定義して、SAML 確認のタイプ (sender-vouches または holder-of-key) を指定する必要がある。詳細については、「ConfirmationMethod」を参照してください。

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

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

Confidentiality

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

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

表 5-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) の詳細については、『Oracle Fusion Middleware WebLogic Security の紹介』の「WebLogic Web サービスでの SAML トークン プロファイルのサポート」を参照してください。

DigestAlgorithm

SOAP メッセージの指定部分にデジタル署名する際に使用するダイジェスト アルゴリズムを指定します。暗号化する SOAP メッセージの一部を指定するには、<MessageParts> 兄弟要素を使用します。詳細については、「MessageParts」を参照してください。

表 5-3 <DigestAlgorithm> の属性

属性 説明 必須/省略可能

URI

SOAP メッセージの指定部分にデジタル署名する際に使用するダイジェスト アルゴリズム。

指定できるのは以下のダイジェスト アルゴリズムのみ。

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


EncryptionAlgorithm

SOAP メッセージの指定部分を暗号化する際に使用する暗号化アルゴリズムを指定します。暗号化する SOAP メッセージの一部を指定するには、<MessageParts> 兄弟要素を使用します。詳細については、「MessageParts」を参照してください。

表 5-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 キーを使用したアルゴリズムのみを受け付ける場合などです。

表 5-5 <Integrity> の属性

属性 説明 必須/省略可能

SignToken

SOAP メッセージの指定部分に加え、<Integrity><SecurityToken> 子要素で指定したセキュリティ トークンにもデジタル署名するかどうかを指定する。

この属性の有効な値は、true および false。デフォルト値は true

不可

SupportTrust10

この属性の有効な値は、true および false。デフォルト値は false

不可

X509AuthConditional

ID アサーションで、X.509 トークンをサポートされるトークン リストに含める場合は、ポリシーにも Integrity アサーションを含める必要がある。X.509 トークンがデジタル署名で使用されていない場合、サーバは X.509 トークンを認証の証拠として受け入ない。

ID アサーションがその他のトークン タイプを受け入れる場合、Integrity アサーションの X509AuthConditional 属性を使用して、実際の認証トークンが X.509 トークンの場合のみ、デジタル署名を必要とすることを指定できる。抽象 ID アサーションは、デプロイ時にあらかじめ処理されており、実行時環境によってサポートされているすべてのトークン タイプのリストを挿入することで、具象アサーションに変換される。

不可


KeyInfo

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

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

KeyWrappingAlgorithm

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

表 5-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> アサーションの属性について説明します。

表 5-7 <MessageAge> の属性

属性 説明 必須/省略可能

Age

SOAP メッセージの実際にタイムアウトになるまでの期間 (秒) を指定する。

不可


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

表 5-8 タイムスタンプ動作プロパティ

プロパティ 説明 デフォルト値

クロックを同期

Web サービスで同期化されたクロックを前提とするかどうかを指定する。

true

クロック精度

クロックが同期化されている場合に、同期の精度を表す。

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

60000 ミリ秒

クロックのずれ

メッセージの送信側と受信側の間で許容する差異 (ミリ秒) を指定する。

60000 ミリ秒

厳密でない精度

クロック精度プロパティの適用方法を緩和できる。

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

false

最大処理遅延

受信メッセージの鮮度のポリシーを指定する。

-1

有効期間

送信側で発信メッセージが有効であることを要求する時間の長さを表す。

60 秒


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

MessageParts

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

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

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

表 5-9 <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 を使って、セキュリティ ヘッダにおける署名または暗号化されるべき部分を指定できる。

これらの言語の使用例については、「MessageParts を使用した暗号化または署名を必要とする SOAP メッセージの部分指定」を参照してください。


SecurityToken

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

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

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

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

表 5-10 <SecurityToken> の属性

属性 説明 必須/省略可能

DerivedFromTokenType

派生元のセキュリティ トークンを指定する。たとえば、「http://schemas.xmlsoap.org/ws/2005/02/sc/sct」の値は、セキュアな会話トークンの古いバージョンから派生することを示す。

不可

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

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

表 5-11 <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 つまたは複数の対象を指定できます。

表 5-12 <Target> の属性

属性 説明 必須/省略可能

encryptContentOnly

要素全体を暗号化するか、その内容のみを暗号化するかを指定する。

この属性は、<Target><Confidentiality> の子要素である場合にのみ指定できる。

この属性のデフォルト値は true で、内容のみが暗号化される。

不可


TokenLifeTime

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

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

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

Transform

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

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

表 5-13 <Transform> の属性

属性 説明 必須/省略可能

URI

トランスフォーメーション アルゴリズムの URI を指定する。

有効な URI は次のとおり。

  • http://www.w3.org/2000/09/xmldsig#base64 (Base64 デコード変換)

  • http://www.w3.org/TR/1999/REC-xpath-19991116 (XPath フィルタ処理)

これらの変換アルゴリズムの詳細については、http://www.w3.org/TR/xmldsig-core/#sec-TransformAlg にある「XML-Signature Syntax and Processing」を参照してください。


UsePassword

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

表 5-14 <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 つの関数が用意されています。

  • wsp:GetBody(xpath_expression) - XPath 式が検索を開始するルート要素を soap:Body と指定します。

  • wsp:GetHeader(xpath_expression) - XPath 式が検索を開始するルート要素を soap:Header と指定します。

また、前述の関数の 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 式の作成方法については、このマニュルでは対応していません。詳細については、http://www.w3.org/TR/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 関数

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

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

  • wsrm:SequenceAcknowledgement

  • wsrm:AckRequested

  • wsrm:Sequence

  • wsa:Action

  • wsa:FaultTo

  • wsa:From

  • wsa:MessageID

  • wsa:RelatesTo

  • wsa:ReplyTo

  • wsa:To

  • wsax:SetCookie

以下の例では、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() 関数に対しては、前述のヘッダのリストのうち任意のものを指定できます。