プロジェクトでの HTTP バインディングコンポーネントの使用

HTTP バインディングコンポーネントの使用

本書は Java Composite Application Platform Suite 6 (Java CAPS) に適用できます。

このガイドでは、HTTP バインディングコンポーネントの概要を説明し、JBI プロジェクトでバインディングコンポーネントを設定および配備するために必要な詳細について記述します。HTTP バインディングコンポーネントは、JBI 1.0 準拠の環境で SOAP over HTTP 接続を提供します。HTTP バインディングコンポーネントは、JBI 環境のサービスへの接続をサポートするプロバイダプロキシとしても、サービスを呼び出すコンシューマプロキシとしても使用されます。HTTP バインディングコンポーネントは、Java Business Integration コンポーネントインタフェースを実装する、JSR 208 準拠の JBI ランタイムコンポーネントです。

詳細は、Java CAPS の Web サイト http://goldstar.stc.com/support を参照してください。

必要な知識

HTTP バインディングコンポーネントを使用する前に必要な知識については、次のリンクを参照してください。

参照情報

HTTP バインディングコンポーネントの設定と使用に関する追加の参照情報については、次のリンクを参照してください。

HTTP バインディングコンポーネントについて

HTTP バインディングコンポーネントは、JBI 1.0 準拠の環境で SOAP over HTTP 接続を提供します。HTTP バインディングコンポーネントは、JBI 環境のサービスへの接続をサポートするプロバイダプロキシとしても、サービスを呼び出すコンシューマプロキシとしても使用されます。

JBI プラットフォームを使用すると、ソフトウェアベンダーは外部コンポーネントからさまざまなプロトコルを使用して呼び出すことのできるサービスを提供できます。このようなサービスは JBI サービスエンジンとして表現され、サービスのビジネスロジックを実装します。JBI バインディングコンポーネントは、JBI サービスエンジンで処理される抽象メッセージとプロトコルの具象メッセージの間のプロトコル変換を実装します。

HTTP バインディングコンポーネントを使用することにより、外部コンポーネントは HTTP/HTTPS プロトコルで SOAP メッセージを使用して、JBI プラットフォームでホストされているサービスを呼び出すことができます。また、JBI コンポーネントは、同じ SOAP over HTTP/HTTPS プロトコルを使用して外部 Web サービスを呼び出すことができます。

抽象メッセージから SOAP メッセージへの変換は、HTTP バインディングコンポーネント内で行われます。WSDL 1.1 仕様および SOAP 1.1 仕様で定義されている WSDL 拡張性要素は、この変換を正しく設定するために使用されます。これらの WSDL 拡張性要素は、WSDL ドキュメントの binding セクションおよび service セクションに含まれています。これらの WSDL ドキュメントは、バインディングコンポーネントに配備可能な JBI ユニットであるサービスユニットに含まれる主要アーティファクトです。メッセージの変換方法と送信先を決定するために、WSDL ドキュメントの binding セクションと service セクションの両方に正しく記入する必要があります。

HTTP/SOAP バインディングのアーキテクチャー

HTTP バインディングコンポーネントの SOAP バインディングを使用することにより、外部コンポーネントは HTTP プロトコルで SOAP メッセージを使用して、JBI プラットフォームでホストされている Web サービスを呼び出すことができます。また、これにより JBI エンジンはそのサービスを公開することができるようになります。Web サービスは、セキュリティー保護されていない場合と、HTTPS (HTTP over SSL) や TLS などの技術を使用してセキュリティー保護されている場合があります。

SOAP バインディングは JBI フレームワーク内にあります。Web コンテナによって提供されるサービスを利用して、着信する Web サービス要求を受信します。バインディングコンポーネントは、さまざまな J2EE ベースの JBI プラットフォームにわたる再利用性を高めるために標準規格に基づいており、独自仕様の API は使用していません。バインディングは、アウトバウンドの Web サービス要求には Web コンテナサービスを使用しません。

HTTP バインディングコンポーネントは B.P.1.0 に準拠しています。バインディングは、メッセージング (フォルトメッセージも含む SOAP メッセージの XML 表現、SOAP 処理モデル、および HTTP での SOAP の使用) およびトランスポートレベルのセキュリティーに関する、基本的なプロファイル要件を扱います。

次の図は、実行時環境内での HTTP バインディングコンポーネントとほかのコンポーネントの関係を示しています。

図は、本文中で説明されているとおり、アプリケーションサーバー内での HTTP バインディングコンポーネントとほかのコンポーネントの関係を示しています。

アプリケーションサーバーには、ESB/JBI コンテナのほかに、JAX-WS、JAX-RPC、JAXB、および WSIT (Tango ) が組み込まれた Metro コンテナと、非同期処理と NIO を追加する HTTP (Grizzly) コネクタがあります。ESB/JBI コンテナには、HTTP バインディングコンポーネント、BPEL サービスエンジン、Java EE サービスエンジン、およびほかの JBI コンポーネントが組み込まれています。HTTP/SOAP バインディングコンポーネントは、アプリケーションサーバー内の各種コンテナと JBI コンポーネントの間の対話を可能にします。

HTTP バインディングコンポーネントの機能

HTTP/SOAP バインディングコンポーネントの機能には、次のようなものがあります。

サービスプロバイダの機能

サービスプロバイダとして機能する HTTP バインディングコンポーネントは、HTTP メッセージまたは SOAP メッセージを外部 Web サービスに送信できます。

サービスプロバイダの機能には次のようなものがあります。

サービスコンシューマの機能

サービスコンシューマとして機能する HTTP バインディングコンポーネントは、HTTP クライアントからの HTTP 要求または SOAP 要求を処理し、これらを変換 (正規化) してから正規化メッセージルーターに送信します。

サービスコンシューマの機能には次のようなものがあります。

セキュリティー機能

セキュリティー機能には、次のものを介したトランスポートレベルのセキュリティーのサポートが含まれます。

HTTP バインディングコンポーネントのシナリオ例

次の注文書の例は、複合アプリケーションで HTTP バインディングコンポーネントを使用する基本的なシナリオを示しています。このシナリオ例では、単一の HTTP バインディングコンポーネントがサービスプロバイダかつサービスコンシューマとして機能します。

注文書の例

医薬品会社が、事前承認済みの顧客だけに一連の製品を掲載した Web サイトを提供しています。このような顧客の 1 つである病院が Web サイトにログオンし、1000 枚の外科手術用マスクと 2000 組のゴム手袋を注文します。注文書は医薬品会社のサーバーによって受信されて保存され、注文が受信されたことを確認する応答が病院に返送されます。

図 1 サービスプロバイダかつサービスコンシューマとして機能する HTTP バインディングコンポーネント

図は、HTTP バインディングコンポーネントの注文書シナリオを示しています。この図については本文中で説明されています。

このシナリオの注文書処理システムは、Sun Java Application Server と JBI フレームワークを使用して実装された Web サービスで表されます。

このシナリオの主体は次のとおりです。

シナリオでのメッセージフロー

注文書シナリオでのメッセージフローのステップは、図 1 の番号に従っています。

  1. Web クライアントは、JavaScript などのクライアント側スクリプト言語を使用して、Web フォームに入力された注文書の情報を取得し、SOAP メッセージにパッケージ化します。SOAP メッセージの形式は WSDL を使用して定義されます。

  2. SOAP メッセージは、HTTP バインディングコンポーネントによってホストされている Web サービスエンドポイントに送信されます。

  3. HTTP バインディングコンポーネントは SOAP メッセージを正規化メッセージに変換します。正規化メッセージは正規化メッセージルーターに送信されます。

  4. 正規化メッセージルーターは正規化メッセージを BPEL SE にルーティングします。

  5. BPEL SE は注文書の情報を解釈し、要求に対応するためにほかの BPEL プロセスを適切に呼び出します。

  6. BPEL SE は正規化メッセージの形式で応答メッセージを作成します。正規化メッセージは正規化メッセージルーターに送信されます。

  7. HTTP BC は応答メッセージを受信し、SOAP メッセージに変換します。SOAP メッセージは、WSDL で定義されている適切な応答として Web クライアントに返送されます。

  8. Web クライアントは応答を受け取り、人間が判読できる HTML ページを作成して、注文書が受け付けられたか拒否されたかをユーザーが理解できるようにします。

SOAP 処理

HTTP バインディングコンポーネントは、JBI 1.0 準拠の環境で SOAP over HTTP 外部接続を提供します。HTTP バインディングコンポーネントは SOAP 1.1 仕様をサポートし、WSDL 1.1 仕様の SOAP バインディングを実装します。

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

SOAP WSDL 拡張性要素

SOAP WSDL 要素を使用すると、HTTP バインディングコンポーネントの SOAP 接続および SOAP バインディングの情報を設定できます。

SOAP 接続要素

SOAP 接続要素は address 要素で構成されます。

SOAP address 要素

SOAP address 拡張性要素を使用すると、SOAP サーバーへの接続の情報を指定できます。

表 1 SOAP address 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

location 

SOAP サーバーに接続するための接続情報を指定する URL。 

必須 

http://myhost:7676/some/additional/context 

次の例は、SOAP address 要素の使用法を示しています。


<port binding="y:binding" name="soapEndpoint">
   <soap:address location="http://myhost:7676/some/additional/context" />
</port>

SOAP バインディング要素

抽象 WSDL メッセージを SOAP メッセージにバインドするための SOAP 拡張性要素は、いくつかのセクションに分かれています。各セクションは、バインディングがどのように行われるべきかを表します。バインディングレベルでは、設定はポートタイプ全体に適用されます。オペレーションレベルでは、設定はそのオペレーションだけに適用されます。メッセージレベルでは、入力メッセージか出力メッセージかにかかわらず、設定はその特定のメッセージに適用されます。

SOAP binding 要素

SOAP binding 要素は、バインディングが SOAP プロトコルの形式 (Envelope、Header、および Body) にバインドされていることを示すために使用されます。この要素は、メッセージのエンコーディングや形式に関する要求 (SOAP 1.1 仕様のセクション 5 に必ず従うことなど) は行いません。

表 2 SOAP binding 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

transport   

このバインディングが SOAP のどのトランスポートに対応するかを示します。 

省略可能 

http://schemas.xmlsoap.org/soap/http 

style   

この特定の SOAP バインディングのデフォルトスタイルを示します。 

省略可能 

rpc 

SOAP バインディングを使用するときは、SOAP binding 要素が存在する必要があります。次の例は、SOAP binding 要素の使用法を示しています。


<definitions .... >
    <binding .... >
        <soap:binding transport="uri"? style="rpc|document"?>
    </binding>
</definitions>

style 属性の値は、含まれている各オペレーションのデフォルトの style 属性です。style 属性が省略されている場合は、"document" と見なされます。

必須の transport 属性の値は、SOAP メッセージの配信に使用するトランスポートを示します。URI 値 http://schemas.xmlsoap.org/soap/http は、SOAP 仕様の HTTP バインディングに対応しています。ここにほかの URI を使用して、ほかのトランスポート (SMTP、FTP など) を指定することができます。

SOAP operation 要素

SOAP operation 要素は、抽象オペレーションから具象 SOAP オペレーションへのバインディング情報を提供するために使用されます。

表 3 SOAP operation 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

soapAction 

HTTP ヘッダーに挿入すべき soapAction を示します。 

省略可能 

urn:someSoapAction 

style  

この特定の SOAP オペレーションのデフォルトスタイルを示します。 

省略可能 

rpc 

次の例は、SOAP operation 要素の使用法を示しています。


<definitions .... >
    <binding .... >
        <operation .... >
           <soap:operation soapAction="uri"? style="rpc|document"?>?
        </operation>
    </binding>
</definitions>

style 属性 は、オペレーションが RPC 指向 (メッセージにパラメータと戻り値が含まれる) か、ドキュメント指向 (メッセージにドキュメントが含まれる) かを示します。この情報を使用して、適切なプログラミングモデルを選択することができます。この属性の値は、SOAP メッセージの本体の構築方法にも影響を与えます。この属性が指定されていない場合は、soap:binding 要素に指定されている値がそのデフォルト値になります。soap:binding 要素で style が指定されていない場合は、"document" と見なされます。

soapAction 属性は、このオペレーションの SOAPAction ヘッダーの値を指定します。この URI 値は SOAPAction ヘッダーの値として直接使用する必要があります。要求を行うときに、相対 URI 値を絶対値にしようとしないでください。SOAP の HTTP プロトコルバインディングの場合、この値は必須です (デフォルト値はない)。ほかの SOAP プロトコルバインディングの場合、これを指定してはならず、また soap:operation 要素は省略できます。

SOAP body 要素

SOAP body 要素は、抽象オペレーションから具象 SOAP オペレーションへのバインディング情報を提供するために使用されます。

表 4 SOAP body 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

parts  

WSDL メッセージから body 要素に含められるパートを示します。 

省略可能 

part1 

use 

SOAP body でメッセージパートがどのようにエンコードされるかを示します。 

省略可能 

literal 

encodingStyle 

使用する特定のエンコーディングスタイルを示します。 

省略可能 

http://someencodingstyle 

namespace 

RPC 形式のメッセージのラッパー要素の名前空間を示します。 

省略可能 

urn:someNamespace 

次の例は、SOAP body 要素を示しています。


<definitions .... >
    <binding .... >
        <operation .... >
           <input>
               <soap:body parts="nmtokens"? use="literal|encoded"?
                          encodingStyle="uri-list"? namespace="uri"?>
           </input>
           <output>
               <soap:body parts="nmtokens"? use="literal|encoded"?
                          encodingStyle="uri-list"? namespace="uri"?>
           </output>
        </operation>
    </binding>
</definitions>

nmtokens タイプの省略可能属性 parts は、メッセージの SOAP Body 部分のどこかに出現するパートを示します (SOAP が multipart/related MIME バインディングと組み合わせて使用される場合など、メッセージのほかのパートがメッセージのほかの部分に出現する可能性がある)。parts 属性が省略されている場合は、メッセージで定義されているすべてのパートが SOAP Body 部分に含められると見なされます。

必須の use 属性は、メッセージパートがなんらかのエンコーディング規則を使用してエンコードされるか、あるいはメッセージパートがメッセージの具象スキーマを定義するかを示します。

use が encoded の場合、各メッセージパートは type 属性を使用して抽象タイプを参照します。これらの抽象タイプを使用して、encodingStyle 属性で指定されているエンコーディングを適用することにより、具象メッセージが生成されます。namespace 属性は、抽象タイプで明示的に定義されていない内容だけに適用されますが、namespace 属性のパート名、タイプ、および値はすべてエンコーディングに入力されます。参照先のエンコーディングスタイルでは、(SOAP エンコーディングの場合と同様に) 形式の変形を許可する場合、すべての変形がサポートされる (reader makes right) 必要があります。

use が literal の場合、各パートは element 属性か type 属性を使用して具象スキーマ定義を参照します。前者の場合、パートで参照される要素が Body 要素の下に直接出現するか (ドキュメント形式のバインディングの場合)、メッセージパートの名前で指定されるアクセサ要素の下に出現します (RPC 形式の場合)。後者の場合、パートで参照されるタイプが、包含する要素のスキーマタイプになります (ドキュメント形式の場合は Body、RPC 形式の場合はパートのアクセサ要素)。

タイプを使用して複合 Body の内容を定義する例については、節 2.3.1 を参照してください。use が literal の場合は、encodingStyle 属性の値を使用して、具象形式は特定のエンコーディング (SOAP エンコーディングなど) を使用して生成されたが、指定された変形だけがサポートされる (writer makes right) ことを示すことができます。

encodingStyle 属性の値は URI のリストです。各 URI は 1 つの空白で区切られています。これらの URI は、メッセージで使用されるエンコーディングを、制限の強いものから弱いものへ順に表します (SOAP 仕様で定義されている encodingStyle 属性とまったく同様)。

SOAP fault 要素

fault 要素は、SOAP Fault Details 要素の内容を指定します。そのパターンは body 要素と同様になります。

表 5 SOAP fault 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

name 

WSDL メッセージから fault 要素に含められるパートの名前を示します。 

必須 

part1 

use 

SOAP fault でメッセージパートがどのようにエンコードされるかを示します。 

必須 

literal 

encodingStyle 

使用する特定のエンコーディングスタイルを示します。 

省略可能 

http://someencodingstyle 

namespace 

RPC 形式のメッセージのラッパー要素の名前空間を示します。 

省略可能 

urn:someNamespace 

次の例は、SOAP fault 要素を示しています。


<definitions .... >
    <binding .... >
        <operation .... >
           <fault>*
               <soap:fault name="nmtoken" use="literal|encoded"
                                 encodingStyle="uri-list"? namespace="uri"?>
           </fault>
        </operation>
    </binding>
</definitions>

name 属性は、オペレーションに定義されている wsdl:fault に soap:fault を関連付けます。障害メッセージのパートは 1 つでなければなりません。

useencodingStyle、および namespace 属性はどれも Body と同じ方法で使用されますが、障害にはパラメータが含まれないので style="document" と見なされる点だけが異なります。

SOAP header および headerfault 要素

header 要素と headerfault 要素を使用すると、SOAP Envelope の Header 要素内で送信されるヘッダーを定義できます。ヘッダーを使用する SOAP Envelope に出現するヘッダーをすべて列挙する必要があるわけではありません。たとえば、特定のヘッダーは実際のペイロードに追加されるように WSDL の拡張機能によって暗黙で指定されている場合があり、そのようなヘッダーはここに列挙する必要はありません。

表 6 SOAP header 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

message 

header 要素へのバインディングで使用される WSDL メッセージを示します。 

必須 

part1 

part 

WSDL メッセージから header 要素に含められるパートを示します。 

必須 

part1 

use 

SOAP header でメッセージパートがどのようにエンコードされるかを示します。 

必須 

literal 

encodingStyle 

使用する特定のエンコーディングスタイルを示します。 

省略可能 

http://someencodingstyle 

namespace 

RPC 形式のメッセージのラッパー要素の名前空間を示します。 

省略可能 

urn:someNamespace 

表 7 SOAP headerfault 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

name 

headerfault 要素へのバインディングで使用される WSDL メッセージを示します。 

必須 

part1 

part 

WSDL メッセージから headerfault 要素に含められるパートを示します。 

必須 

part1 

use 

SOAP headerfault でメッセージパートがどのようにエンコードされるかを示します。 

必須 

literal 

encodingStyle 

使用する特定のエンコーディングスタイルを示します。 

省略可能 

http://someencodingstyle 

namespace 

RPC 形式のメッセージのラッパー要素の名前空間を示します。 

省略可能 

urn:someNamespace 

次の例は、SOAP header および headerfault 要素を示しています。


<definitions .... >
    <binding .... >
        <operation .... >
           <input>
             <soap:header message="qname" part="nmtoken" use="literal|encoded"
                          encodingStyle="uri-list"? namespace="uri"?>*
               <soap:headerfault message="qname" part="nmtoken" use="literal|encoded"
                                 encodingStyle="uri-list"? namespace="uri"?/>*
             <soap:header>                                
           </input>
           <output>
               <soap:header message="qname" part="nmtoken" use="literal|encoded"
                            encodingStyle="uri-list"? namespace="uri"?>*
                 <soap:headerfault message="qname" part="nmtoken" use="literal|encoded"
                                   encodingStyle="uri-list"? namespace="uri"?/>*
               <soap:header>                                
           </output>
        </operation>
    </binding>
</definitions>

useencodingStyle、および namespace 属性はどれも Body と同じ方法で使用されますが、ヘッダーにはパラメータが含まれないので style="document" と見なされる点だけが異なります。

QName タイプの message 属性と nmtoken タイプのpart 属性はともに、ヘッダータイプを定義するメッセージパートを参照します。

省略可能な headerfault 要素は、header 内に出現し、header と同じ構文を持ちます。この要素を使用すると、ヘッダーに関連しヘッダーで定義されているエラー情報を送信するための、ヘッダータイプを指定できます。SOAP 仕様では、ヘッダーに関連するエラーはヘッダー内で返す必要があると記述されています。この機構を使用すると、そのようなヘッダーの形式を指定できます。

HTTP 処理

HTTP 拡張性要素は、HTTP 1.1 の GET 動詞と POST 動詞による Web ブラウザと Web サイトの間の対話を記述します。これにより、Web ブラウザ以外のアプリケーションがサイトと対話できるようになります。

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

HTTP WSDL 拡張性要素

HTTP WSDL 要素を使用すると、HTTP バインディングコンポーネントの HTTP 接続および HTTP バインディングの情報を設定できます。

HTTP WSDL 要素を使用すると、HTTP バインディングコンポーネントの HTTP 接続および HTTP バインディングの情報を設定できます。

次に示すプロトコル固有の情報を指定することができます。

ここの情報は 2 つの主要セクションに分割されます。1 つは、ユーザーが HTTP サービスのエンドポイントを設定する方法です。もう 1 つは、ユーザーが設定を指定して WSDL メッセージを HTTP メッセージにマップする方法です。

HTTP 接続要素

HTTP 接続要素は address 要素で構成されます。

HTTP address 要素

HTTP address 拡張性要素を使用すると、HTTP サーバーへの接続の情報を指定できます。

表 8 HTTP address 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

location 

HTTP サーバーに接続するための接続情報を指定する URL。 

必須 

http://myhost:7676/some/additional/context 

次の例は、サービスポートに定義される HTTP address 拡張性要素の使用法を示しています。


<port binding="y:binding" name="soapEndpoint">
   <http:address location="http://myhost:7676/some/additional/context" />
</port>

HTTP バインディング要素

抽象 WSDL メッセージを HTTP メッセージにバインドするための HTTP 拡張性要素は、いくつかのセクションに分かれています。各セクションは、バインディングがどのように行われるべきかを表します。バインディングレベルでは、設定はポートタイプ全体に適用されます。オペレーションレベルでは、設定はそのオペレーションだけに適用されます。メッセージレベルでは、入力メッセージか出力メッセージかにかかわらず、設定はその特定のメッセージに適用されます。

HTTP binding 要素

HTTP binding 要素は、バインディングが HTTP プロトコルにバインドされていることを示すために使用されます。

表 9 HTTP binding 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

verb 

このバインディングが HTTP のどのトランスポートに対応するかを示します。 

必須 

GET 

HTTP バインディングを使用するときは、HTTP binding 要素が存在する必要があります。次の例は、HTTP binding 要素を示しています。


<definitions .... >
    <binding .... >
        <http:binding verb="nmtoken" />
    </binding>
</definitions>

必須の verb 属性の値は、HTTP 動詞を示します。一般的な値は GET または POST ですが、ほかの値も使用できます。HTTP 動詞では大文字と小文字が区別されることに注意してください。

HTTP operation 要素

HTTP operation 要素は、抽象オペレーションから具象 HTTP オペレーションへのバインディング情報を提供するために使用されます。

表 10 HTTP operation 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

location 

相対 URI を示します。address 要素の location 属性と組み合わされます。 

必須 

o1 

次の例は、WSDL operation 要素を示しています。


<definitions .... >
    <binding .... >
        <operation .... >
           <soap:operation location="uri" />
        </operation>
    </binding>
</definitions>

location 属性は、オペレーションの相対 URI を指定します。この URI は、http:address 要素に指定されている URI と組み合わされて、HTTP 要求の完全な URI を形成します。URI の値は相対 URI でなければなりません。

HTTP urlEncoded 要素

urlEncoded 要素は、すべてのメッセージパートが標準の URI エンコーディング規則 (name1=value&name2=value...) を使用して HTTP 要求 URI 内にエンコードされることを示します。パラメータの名前はメッセージパートの名前に対応します。パートによって提供される各値は、名前=値のペアを使用してエンコードされます。これを GET とともに使用して URL エンコーディングを指定したり、POST とともに使用して FORM-POST を指定したりできます。GET の場合、「?」文字が必要に応じて自動的に追加されます。

例:


<definitions .... >
    <binding .... >
        <operation .... >
           <input .... >
               <http:urlEncoded/>
           </input>
           <output .... >
               <-- mime elements -->
           </output>
        </operation>
    </binding>
</definitions>

HTTP urlReplacement 要素

urlReplacement 要素は、すべてのメッセージパートが置換アルゴリズムを使用して HTTP 要求 URI 内にエンコードされることを示します。

メッセージパートには反復値が含まれていてはいけません。

HTTP urlReplacement 要素

例:


<definitions .... >
    <binding .... >
        <operation .... >
           <input .... >
               <http:urlReplacement/>
           </input>
           <output .... >
               <-- mime elements -->
           </output>
        </operation>
    </binding>
</definitions>

HTTP GET および POST 処理

HTTP バインディングコンポーネントは、WSDL 1.1 仕様で定義されている HTTP バインディングをサポートします。HTTP/SOAP バインディングに関する WSDL 1.1 仕様の詳細については、WSDL 1.1 仕様を参照してください。

バインディングコンポーネントは次のメッセージ処理をサポートします。

XML/HTTP GET 処理

HTTP バインディングコンポーネントは、JBI 環境のサービスへの接続を提供するプロバイダプロキシとして、あるいはサービスを呼び出すコンシューマプロキシとして使用されます。バインディングコンポーネントは、WSDL 1.1 仕様で定義されている HTTP 1.1 GET バインディングを実装します。これにより、アプリケーションは Web ブラウザに似た HTTP GET 対話を使用して、JBI 環境からサービスを消費または提供することができます。

HTTP バインディングコンポーネントを HTTP Get 対話用に設定する

HTTP バインディングコンポーネントを HTTP Get 対話で機能するように設定するには、バインディングコンポーネントがプロキシとして機能しているサービスの WSDL ファイルで、WSDL 1.1 仕様で定義されている次の HTTP バインディング言語要素を使用する必要があります。

HTTP バインディングコンポーネントをプロバイダプロキシまたはコンシューマプロキシとして設定する方法の例は、Using the HTTP Binding Component with the HTTP GET method および Using the HTTP Binding Component with the HTTP POST Method で参照できます。

バインディングの詳細

以降の節では、HTTP バインディングコンポーネントが HTTP バインディング言語要素をどのようにサポートし、実装するかについて説明します。特に指示がないかぎり、ここで説明する WSDL 要素は名前空間 http://schemas.xmlsoap.org/wsdl/http/ で定義されています。

http:binding 要素

<http:binding> 要素:


注 –

現在、HTTP バインディングコンポーネントでは GET と POST の値だけがサポートされています (HTTP メソッドでは大文字と小文字が区別されることに注意してください)。


例:


<http:binding verb="POST"/>

http:address 要素

<http:address> 要素:

例:


<http::address location="http://localhost/MyService/MyPort"/>

http:operation 要素

<http:operation> 要素:

HTTP バインディングコンポーネントでは、この要素の location 属性の値として空白がサポートされています。

例:


Given:
    <http:operation location="Submit">
    <http:address location="http://localhost/MyService/MyPort">

The full HTTP request URI is: 
http://localhost/MyService/MyPort/Submit

http:urlEncoded 要素

<http:urlEncoded> 要素:

例:


Given this description:
<wsd:message name="MyMessage">
    <wsdl:part name="partA" type="xsd:string"/>
    <wsdl:part name="partB" type="xsd:string"/>
</wsdl:message>
...
<wsdl:portType name="MyPortType">
    <wsdl:operation name="MyOperation">
        <wsdl:input message="MyMessage"/>
    </wsdl:operation>
</wsdl:portType>
...
<wsdl:binding name="MyBinding" type="MyPortType">
    <http:binding verb="GET"/>
    <wsdl:operation name="MyOperation">
        <wsdl:input>
            <http:urlEncoded/>
        </wsdl:input>
    </wsdl:operation>
</wsdl:binding>
...
<wsdl:service name="MyService">
    <wsdl:port name="Port1" binding="MyBinding">
        <http:address location="http://localhost/MyService/MyPort"/>
    </wsdl:port>
</wsdl:service>

Given these values mapped to the input parts:
"valueY" -> "partA"
"valueZ" -> "partB"

The full HTTP request URI is:
http://localhost/MyService/MyPort/MyOperation/partA=valueY&partB=valueZ

http:urlReplacement

<http:urlReplacement/> 要素:

例:


Given this description:
<wsd:message name="MyMessage">
    <wsdl:part name="partA" type="xsd:string"/>
    <wsdl:part name="partB" type="xsd:string"/>
</wsdl:message>
...
<wsdl:portType name="MyPortType">
    <wsdl:operation name="MyOperation">
        <wsdl:input message="MyMessage"/>
    </wsdl:operation>
</wsdl:portType>
...
<wsdl:binding name="MyBinding" type="MyPortType">
    <http:binding verb="GET"/>
    <wsdl:operation name="MyOperation/(partA)/subcategory/(partB)">
        <wsdl:input>
            <http:urlReplacement/>
        </wsdl:input>
    </wsdl:operation>
</wsdl:binding>
...
<wsdl:service name="MyService">
    <wsdl:port name="Port1" binding="MyBinding">
        <http:address location="http://localhost/MyService/MyPort"/>
    </wsdl:port>
</wsdl:service>

Given these values mapped to the input parts:
"valueY" -> "partA"
"valueZ" -> "partB"

The full HTTP request URI is:
http://localhost/MyService/MyPort/MyOperation/valueY/subcategory/valueZ

HTTP POST メソッドでの HTTP バインディングコンポーネントの使用

HTTP BC は、WSDL 1.1 仕様で定義されている HTTP 1.1 POST バインディングを実装します。これにより、アプリケーションは Web ブラウザに似た HTTP GET 対話を使用して、JBI 環境からサービスを消費または提供することができます。

HTTP バインディングコンポーネントを HTTP Get 対話用に設定する

HTTP バインディングコンポーネントを HTTP POST 対話で機能するように設定するには、バインディングコンポーネントがプロキシとして機能しているサービスの WSDL ファイルで、WSDL 1.1 仕様で定義されている次の HTTP バインディング言語要素を使用する必要があります。

HTTP バインディングコンポーネントをプロバイダプロキシまたはコンシューマプロキシとして設定する方法の例は、Using the HTTP Binding Component with the HTTP GET method および Using the HTTP Binding Component with the HTTP POST Method で参照できます。


注 –

現在、HTTP バインディングコンポーネントでは、HTTP GET でのみ <http:urlReplacement><http:urlEncoded> の使用がサポートされています。


バインディングの詳細

これらの要素のバインディングの詳細については、「バインディングの詳細」を参照してください。

HTTP POST での http:urlEncoded および http:urlReplacement の取り扱い

GET 要求と POST 要求では要求の構造が異なるため、HTTP バインディングコンポーネントでの WSDL HTTP バインディングの使用法には GET および POST 形式の対話にわたる一貫性がありません。

相違点は次のとおりです。

これらの相違点のため、現在の HTTP バインディングコンポーネントの実装では、http:urlEncodedhttp:urlReplacement は HTTP GET と組み合わせて使用される場合のみ意味を持つと見なされます。これらのバインディング要素は、GET 要求だけに適用される URL エンコーディングスタイルを示すからです。

HTTP POST の場合、現在の実装では http:urlEncoded バインディング要素と http:urlReplacement バインディング要素はどちらも無視されます。

HTTP バインディングコンポーネントの実行時プロパティー

HTTP バインディングコンポーネントの実行時プロパティーは、NetBeans IDE から、あるいはインストール中にコマンドプロンプト (コマンド行インタフェース) から設定できます。

HTTP バインディングコンポーネントのプロパティーは、すべてのプロバイダおよびコンシューマエンドポイントを含め、バインディングコンポーネント全体に適用されます。

    NetBeans IDE でプロパティーを表示または編集するには、次の手順を実行します。

  1. NetBeans IDE の「サービス」タブで、「サーバー」ノードを展開します。

  2. GlassFish v2 など、使用しているアプリケーションサーバーを起動します。そのためには、アプリケーションサーバーを右クリックし、ショートカットメニューから「起動」を選択します。

  3. アプリケーションサーバーの下で、「JBI」>「バインディングコンポーネント」ノードを展開し、「HTTP バインディングコンポーネント」(com.sun.httpsoapbc) を選択します。現在の HTTP バインディングコンポーネントのプロパティーが NetBeans IDE の右側に表示されます。HTTP バインディングコンポーネントをダブルクリックしてプロパティーウィンドウを開くこともできます。

  4. 必要に応じてプロパティーを編集します。加えた変更を HTTP バインディングコンポーネントの実行時プロパティーに適用するには、HTTP バインディングコンポーネントを停止してから再起動します。

図 2 HTTP バインディングコンポーネントの実行時プロパティー

図は、HTTP バインディングコンポーネントの実行時プロパティーエディタのダイアログボックスを示しています。ダイアログボックスには、プロパティーとその現在の値が表示されます。

HTTP バインディングコンポーネントのプロパティーは、クラスタ化とプロキシの設定を指定し、バインディングコンポーネントの説明、名前、タイプ、および状態を参照します。

表 11 HTTP バインディングコンポーネントの実行時プロパティー

プロパティー 

説明 

必須か省略可能か 

例 

一般プロパティー

説明 

HTTP バインディングコンポーネントの目的を示します。このプロパティーは参考のために表示されます。 

自動 

たとえば BPEL サービスエンジンに対して SOAP メッセージを送受信する HTTP SOAP バインディング。 

名前 

HTTP バインディングコンポーネントの名前を示します。このプロパティーは参考のために表示されます。 

自動 

com.sun.httpsoapbc-1.0-2 

状態 

HTTP バインディングコンポーネントの状態を「起動済み」または「停止済み」で示します。このプロパティーは参考のために表示されます。 

自動 

起動済み 

タイプ 

コンポーネントのタイプを示します。このプロパティーは参考のために表示されます。 

自動 

binding-component 

識別プロパティー

仕様バージョン 

コンポーネントの仕様バージョンを示します。 

静的 

1.0 

ビルド番号 

コンポーネントのビルド番号を示します。 

静的 

080311_4 

設定プロパティー

デフォルトの HTTP ポート番号 

HTTP バインディングコンポーネントインスタンスのデフォルトの HTTP ポート番号を指定します。このプロパティーはクラスタ化に必要で、各 HTTP コンポーネントをその一意のデフォルトポート番号で区別できるようにします。デフォルトポート番号は、バインディングコンポーネントが最初にアプリケーションサーバーインスタンスにインストールされたときに計算され、事前に割り当てられています。コンポーネントごとに、持続的な設定を含んでいるファイルが保存されます。これは、コンピュータ上の各 HTTP バインディングコンポーネントインスタンスに一意のデフォルトポート番号を割り当てるために使用されます。  

必須 

8180 

デフォルトの HTTPS ポート番号 

HTTP バインディングコンポーネントインスタンスのデフォルトの HTTP Secure ポート番号を指定します。このプロパティーはクラスタ化に必要で、各 HTTP コンポーネントをその一意のデフォルトポート番号で区別できるようにします。デフォルトポート番号は、バインディングコンポーネントが最初にアプリケーションサーバーインスタンスにインストールされたときに計算され、事前に割り当てられています。コンポーネントごとに、持続的な設定を含んでいるファイルが保存されます。これは、コンピュータ上の各 HTTP バインディングコンポーネントインスタンスに一意のデフォルトポート番号を割り当てるために使用されます。  

必須 

8280 

Sun Access Manager 設定ディレクトリ 

Access Manager のプロパティーファイルが格納されている Sun Access Manager 設定ディレクトリの場所を指定します。 

省略可能 

 

プロキシタイプ 

プロキシタイプを SOCKS、HTTP、または DIRECT として指定します。次の文字列値のいずれかを入力します。SOCKS 

プロキシサーバーは SOCKS (version 4 または version 5) サーバーです。HTTP 

プロキシは HTTP プロキシサーバーです。DIRECT 

接続はプロキシを経由しません。  

必須 

SOCKS 

プロキシホスト 

プロキシホストの名前または IP アドレスを指定します。 

省略可能 

polaris.sun.com 

プロキシポート 

プロキシポート番号を指定します。  

必須 

2080 

非プロキシホスト 

プロキシを経由させたくないホストのリストを指定します。各ホストはパイプ「|」で区切られます。 

省略可能 

localhost|127.0.0.4 

プロキシユーザー名 

プロキシサーバーへのアクセスに使用するユーザー名を指定します。SOCKS-v4 の場合、認証は必要ありません。SOCKS-v5 の場合、バインディングコンポーネントは無認証、およびユーザー名/パスワード認証をサポートします。HTTP プロキシの場合、バインディングコンポーネントは基本認証、ダイジェストアクセス、および NTLM をサポートします。基本認証には、指定されたユーザー名とパスワードが必要です。ダイジェストアクセスと NTLM には、サポートするための専用のプロキシサーバーが必要です。  

場合によっては必須 

 

プロキシパスワード 

プロキシサーバーにアクセスするためにプロキシユーザー名と組み合わせて使用するパスワードを指定します。SOCKS-v4 の場合、認証は必要ありません。SOCKS-v5 の場合、バインディングコンポーネントは無認証、およびユーザー名/パスワード認証をサポートします。HTTP プロキシの場合、バインディングコンポーネントは基本認証、ダイジェストアクセス、および NTLM をサポートします。基本認証には、指定されたユーザー名とパスワードが必要です。ダイジェストアクセスと NTLM には、サポートするための専用のプロキシサーバーが必要です。  

場合によっては必須 

 

デフォルトの JVM プロキシ設定を使用  

HTTP バインディングコンポーネントのプロキシ設定を、既存の JVM 設定によって指定するか、HTTP バインディングコンポーネントのプロパティーによって指定するかを示します。オプションの意味は次のとおりです。true 

プロキシは既存の JVM システム設定によって制御されます。設定はこのバインディングコンポーネントの外部にあるため、追加のプロキシ設定はすべて無視されます。false 

プロキシはバインディングコンポーネントのプロキシ設定によって制御されます。  

必須 

false 

アプリケーション設定 

複合アプリケーションのエンドポイント接続パラメータの値を指定し (通常は WSDL サービス拡張性要素で定義される)、ユーザーによって名前の付けられたエンドポイントの ConfigExtension プロパティーにこれらの値を適用します。 

アプリケーション設定プロパティーエディタには、そのコンポーネントのバインディングプロトコルに適用されるすべての接続パラメータのフィールドがあります。アプリケーション設定エディタで、保存された ConfigExtension の名前を入力し、接続パラメータを定義すると、プロジェクトの配備時に WSDL で定義されている接続属性よりもこれらの値が優先されます。これらの接続パラメータを再度変更するには、アプリケーション設定エディタで値を変更したあと、新しい値を適用するためにサービスアセンブリを停止してから起動します。 

省略可能 

ConfigExtension のユーザー定義の名前、および接続パラメータの値。

アプリケーション変数 

指定されたタイプの名前:値ペアのリストを指定します。アプリケーション変数名は、対応するバインディングの WSDL 拡張性要素属性のトークンとして使用できます。  

「アプリケーション変数」設定プロパティーでは、次の 4 つのタイプが提供されています。

  • String: パスやディレクトリなどの文字列値を指定します。

  • Number: 数値を指定します。

  • Boolean: ブール値を指定します。

  • Password: パスワード値を指定します。

省略可能 

名前の値をたとえば PASSWORD と入力し、変数の値をたとえば SECRET と入力します。

ブール値の場合、「値」フィールドにチェックボックスが表示されます (チェックマーク付き = true)。

パスワード値の場合、入力された値はアスタリスクでマスクされます。

統計情報プロパティー

交換、エラー、要求、応答など、19 種類のコンポーネントアクティビティーがあります。 

アクティブ化されたエンドポイント、平均応答時間、完了した交換など、アクションに関して収集されたコンポーネントの統計情報を表示します。実行中の統計情報は自動的に収集され表示されます。 

自動 

240 

ロガーのプロパティー

server.log によって記録できる 30 種類以上のコンポーネントアクティビティーがあります。 

各イベントのログレベルを指定します。FINEST (もっとも詳細)、FINER、FINE、CONFIG、INFO、WARNING、SEVERE (エラーメッセージのみ)、および OFF の 8 つのログレベルがあります。  

省略可能 

WARNING 

サービス品質 (QOS) 機能

サービス品質機能は CASA エディタから設定します。サービス品質機能には、再試行 (再配信) と制限の設定に使用されるプロパティーが含まれます。

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

サービス品質プロパティーの設定

QOS 属性は QoS プロパティー設定エディタから設定します。このエディタには複合アプリケーションサービスアセンブリ (CASA) エディタからアクセスします。QoS プロパティー設定エディタへのアクセス方法の例については、「HTTP バインディングコンポーネントのエンドポイントの制限を設定する」を参照してください。

属性 

説明 

値/例 

コンシューマ設定

サービス名 

コンシューマサービス名を指定します。省略符号ボタンをクリックして QName エディタを開きます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

エンドポイント名 

コンシューマエンドポイント名を指定します。省略符号ボタンをクリックして編集ウィンドウを開きます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

プロバイダ設定

サービス名 

プロバイダサービス名を指定します。省略符号ボタンをクリックして QName エディタを開きます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

エンドポイント名 

プロバイダエンドポイント名を指定します。省略符号ボタンをクリックして編集ウィンドウを開きます。 

キーストア設定エディタからキーストアを設定します。

RedeliveryExtension 設定

maxAttempts 

on-failure オプションを使用する前に再試行する最大回数を指定します。 

20 

waitTime 

再配信の試行間隔をミリ秒単位で指定します。 

300 

on-failure 

メッセージ交換 (ME) の再配信の試行が指定回数に達したときに実行するアクションのタイプを指定します。 

on-failure オプションは次のとおりです。

  • delete: 定義された最後の配信試行が失敗すると、QoS ユーティリティーはメッセージ交換 (ME) を中止し、JBI コンポーネントに Done 状態を返します。JBI コンポーネントは次のプロセスインスタンスに進みます。このオプションは In-Only メッセージ交換でのみサポートされます。

  • error: 定義された最後の配信試行が失敗すると、QoS ユーティリティーは JBI コンポーネントに Error 状態を返します。JBI コンポーネントは例外をスローします。これはデフォルトオプションであり、In-OnlyIn-Out の両方のメッセージ交換でサポートされます。

  • redirect: delete オプションと同様ですが、maxAttempts の回数に達すると、QoS ユーティリティーは設定されているリダイレクトエンドポイントに ME を再ルーティングします。QoS ユーティリティーがリダイレクトエンドポイントにメッセージを正常にルーティングできた場合は JBI コンポーネントに Done 状態が返され、それ以外の場合は Error 状態が返されます。このオプションは In-Only メッセージ交換でのみサポートされます。

  • suspend: 実際のプロビジョニングエンドポイントに ME を配信できない場合、QoS ユーティリティーは JBI コンポーネントに Error 状態を返します。再配信の試行が指定回数に達すると、JBI コンポーネントはプロセスインスタンスを中断します。このオプションは、JBI コンポーネントで監視が有効になっている場合のみサポートされます。これは、ユーザーが監視ツールを使用して中断されたインスタンスを再開する必要があるからです。このオプションは、In-OnlyIn-Out の両方のメッセージ交換でサポートされます。

delete 

ThrottlingExtension 設定

maximum-ConcurrencyLimit 

特定の接続上で同時に処理できるメッセージの最大数を指定します。この数を使用して、内部エンドポイントからプロバイダエンドポイントに同時に送信されるメッセージの最大数が設定されます。 

10 

メッセージ制限: 設定と使用

制限を使用することにより、特定のエンドポイントで同時に処理されるメッセージの最大数を設定できます。メッセージ負荷やメッセージペイロードが増加すると、メモリー使用量の急増をまねき、パフォーマンスを低下させる可能性があります。制限によってリソースの消費が制限され、一貫したパフォーマンスが維持されます。

HTTP バインディングコンポーネントは、Grizzly HTTP Web サーバーで提供される機能を使用してメッセージのフローを管理します。つまり、エンドポイントを評価することにより、要求を中断すべき場合や通常どおり処理を再開すべき場合を判定します。

HTTP BC および制限の詳細については、HTTP BC Throttling を参照してください。

HTTP バインディングコンポーネントのエンドポイントの制限を設定する

HTTP バインディングコンポーネントの場合、制限は CASA エディタから設定される QOS 機能です。

ProcedureHTTP/SOAP WSDL ポートの制限を設定する

  1. NetBeans IDE の「プロジェクト」ウィンドウから、複合アプリケーションの下にある「サービスアセンブリ」ノードを右クリックし、ポップアップメニューから「編集」を選択します。

    CASA エディタが開き、ユーザーの複合アプリケーションが表示されます。

    図は、本文中で説明されているとおり、CASA エディタの QOS アイコンを示しています。
  2. CASA エディタで、ユーザーの JBI モジュールと設定する WSDL ポートの間のリンク上にある QOS アイコンをクリックします。

    QoS プロパティーエディタが表示されます。

  3. QoS プロパティーエディタで、ThrottlingExtension の下の maximumConcurrencyLimit のプロパティーフィールドをクリックし、このエンドポイントで同時に許可されるメッセージの最大数を表す整数を入力します。

    図は、QoS プロパティーエディタを示しています。
  4. 「閉じる」をクリックします。

    サービスアセンブリの構築時に、プロジェクトの jbi.xml ファイル内に接続の制限設定が適切に生成されます。

再配信: 設定と使用

再配信は、初回の配信が失敗した場合のメッセージ配信を処理するサービス品質機構です。再配信を使用することにより、システムでメッセージ配信を試行する回数、試行間隔、およびメッセージが配信不能な場合やエンドポイントが応答していない場合の最終結果を定義できます。

再配信は特定の接続に対して設定されます。設定するには、複合アプリケーションサービスアセンブリ (CASA) エディタからその接続の QoS アイコンをクリックします。これにより、その接続の「QoS プロパティー設定」が開きます。エディタの RedeliveryExtension セクションから、再配信のプロパティーを設定します。

再配信の設定パラメータは次のとおりです。

注: on-failure の delete オプションと redirect オプションは、In-Out メッセージ交換には利用できません。In-Out メッセージ交換では、処理を進めるためにプロセスインスタンスから特定の応答が必要ですが、これらのオプションへの戻り値では十分ではないからです。

再配信の詳細については、Redelivery を参照してください。

HTTP バインディングコンポーネントでの基本認証の使用

基本認証を使用すると、トランザクションを行う場合にユーザー名とパスワードの形式で資格情報を要求することができます。資格情報はプレーンテキストで送信されます。プライバシを確保するために、ユーザー名とパスワードは送信前に Base 64 文字のシーケンスにエンコードされます。たとえば、ユーザー名「Fred」とパスワード「Dinosaur」は組み合わされて「Fred:Dinosaur」となり、Base 64 でエンコードされると「RnJlZDpEaW5vc2F1cg0K」になります。

プロバイダ Web サービスの場合は、クライアントからの要求メッセージの要求ヘッダーにユーザー名とパスワードのフィールドが含まれています。

コンシューマ Web サービスの場合は、基本認証を有効にして Web サービスを呼び出すと、認証の要求ヘッダーにユーザー名とパスワードが追加されます。

基本認証の詳細については、RFC 1945 (Hypertext Transfer Protocol HTTP/1.0)、RFC 2616 (Hypertext Transfer Protocol HTTP/1.1)、および RFC 2617 (HTTP Authentication: Basic and Digest Access Authentication) を参照してください。

基本認証でサポートされる機能

基本認証をサポートするには、WSDL にポリシーを指定します。基本認証ポリシーを WSDL に追加するには、手作業で行うか、Tango (WSIT) を介して提供され CASA からアクセスできる「WS-Policy Attachment」ウィンドウを使用します。基本認証ポリシーは WSDL のルートレベルに指定されます。WSDL の「Port type」セクションにポリシーの参照が作成されて、ポリシーがエンドポイントにバインドされます。

基本認証をサポートするために、HTTP バインディングコンポーネントでは次の WSDL 要素が定義されます。

コンシューマエンドポイントの認証機構

Web サービスコンシューマエンドポイントには、 3 種類の認証機構がサポートされています。

これらの機構の 1 つを使用するようにコンシューマエンドポイントを設定するには、エンドポイントの Policy の MustSupportBasicAuthentication 要素に子要素として追加します。

以降の節では、これらの機構の詳細について説明します。

WssTokenCompare

WssTokenCompare 要素を使用するには、Policy 要素が存在し、認証に使用されるユーザー名とパスワードが指定されている必要があります。HTTP Authorization 要求ヘッダーから抽出されたユーザー名およびパスワードは、Policy の WssUsernameToken10 要素と WssPassword 要素に指定されているユーザー名およびパスワードと比較されます。

次のサンプル WSDL には、WssTokenCompare を使用するためのポリシーとその参照が含まれています。パスワードが WSDL に公開されないように、パスワードにはアプリケーション変数トークンが使用されていることに注意してください。パスワードの値は、NetBeans を使用してコンポーネントのプロパティーで指定できます。「アプリケーション変数を使用した名前/値ペアの定義」を参照してください。


<wsdl:service name="echoService">
    <wsdl:port name="echoPort" binding="tns:echoBinding">
        <soap:address location="http://pponnala-tecra-xp.stc.com:18181/
         echoService/echoPort"/>
        <wsp:PolicyReference URI="#HttpBasicAuthBindingBindingPolicy"/>
    </wsdl:port>
</wsdl:service>

<wsp:Policy wsu:Id="HttpBasicAuthBindingBindingPolicy">
    <mysp:MustSupportBasicAuthentication on="true">
        <mysp:BasicAuthenticationDetail>
           <mysp:WssTokenCompare/>
        </mysp:BasicAuthenticationDetail>
    </mysp:MustSupportBasicAuthentication>
    <mysp:UsernameToken mysp:IncludeToken="http://schemas.xmlsoap.org/ws/
     2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
       <wsp:Policy>
            <sp:WssUsernameToken10>wilma</sp:WssUsernameToken10>
            <sp:WssPassword>${pass_token}</sp:WssPassword>
       </wsp:Policy>
  </mysp:UsernameToken>
</wsp:Policy>

注 –

上記のコードは読みやすいように折り返されています。


AccessManager

AccessManager を使用するには、Sun Access Manager を使用して HTTP クライアントの資格情報を認証するようにコンシューマエンドポイントを設定します。HTTP バインディングコンポーネントの SOAP バインディングは Sun Access Manager とシームレスに統合され、HTTP クライアントの資格情報 (HTTP Authorization ヘッダーから抽出されたユーザー名およびパスワード) を、Sun Access Manager のデータベースにあるユーザーの資格情報と照合して認証します。

Sun Access Manager による認証を使用する前に、バインディングコンポーネントの追加設定を行なって、HTTP SOAP BC で Access Manager を使用するように設定する必要があります。この設定の名前は「Sun Access Manager 設定ディレクトリ」で、値は Sun Access Manager の AMConfig.properties ファイルが置かれているディレクトリです。

    「Sun Access Manager 設定ディレクトリ」を設定するには、次の手順を実行します。

  1. NetBeans の「サービス」ウィンドウから「HTTP バインディングコンポーネントのプロパティー」にアクセスします。「サーバー」>「GlassFish·V2」>「JBI」>「バインディングコンポーネント」の下の sun-http-binding を右クリックし、ポップアップメニューから「プロパティー」を選択します。

  2. 「Sun Access Manager 設定ディレクトリ」プロパティーを設定して、Sun Access Manager の AMConfig.properties ファイルの場所を指定します。

次のサンプル WSDL には、AccessManager を使用するためのポリシーとその参照が含まれています。


<wsdl:service name="echoService">
    <wsdl:port name="echoPort" binding="tns:echoBinding">
        <soap:address location="http://pponnala-tecra-xp.stc.com:18181/
         echoService/echoPort"/>
        <wsp:PolicyReference URI="#HttpBasicAuthBindingBindingPolicy"/>
    </wsdl:port>
</wsdl:service>

<wsp:Policy wsu:Id="HttpBasicAuthBindingBindingPolicy">
    <mysp:MustSupportBasicAuthentication on="true">
        <mysp:BasicAuthenticationDetail>
           <mysp:AccessManager/>
        </mysp:BasicAuthenticationDetail>
    </mysp:MustSupportBasicAuthentication>
</wsp:Policy>

注 –

上記のコードは読みやすいように折り返されています。


Sun Java System Access Manager を使用してサービスのクライアントとサーバー間の通信をセキュリティーで保護する方法を示すチュートリアルは、Securing Communications in OpenESB with Sun Access Manager で参照できます。

Realm

Realm 要素を使用するには、Sun レルムセキュリティーを使用して HTTP クライアントの資格情報を認証するようにコンシューマエンドポイントを設定します。Realm 要素を使用する場合は、Sun レルムセキュリティーを使用して HTTP クライアントの資格情報を認証するようにコンシューマエンドポイントを設定します。HTTP SOAP バインディングコンポーネントは Sun レルムセキュリティーと統合され、HTTP クライアントの資格情報 (HTTP Authorization ヘッダーから抽出されたユーザー名およびパスワード) を、指定された Realm 内のユーザーの資格情報と照合して認証します。

レルムの名前は、Realm 要素の realmName という属性で指定されます。たとえば、GlassFish のインストールには事前設定済みの file レルムが含まれています。これは基本的に、ファイルベースのユーザーデータベースです。ユーザーを作成してレルムに追加する方法については、 GlassFish documentation on Realm security を参照してください。file レルムを例にとって、Realm を使用するためのポリシーとその参照を含んだサンプル WSDL を次に示します。

次のサンプル WSDL には、Realm を使用するためのポリシーとその参照が含まれています。


<wsdl:service name="echoService">
   <wsdl:port name="echoPort" binding="tns:echoBinding">
        <soap:address location="http://pponnala-tecra-xp.stc.com:18181/
         echoService/echoPort"/>
        <wsp:PolicyReference URI="#HttpBasicAuthBindingBindingPolicy"/>
    </wsdl:port>
</wsdl:service>

<wsp:Policy wsu:Id="HttpBasicAuthBindingBindingPolicy">
    <mysp:MustSupportBasicAuthentication on="true">
        <mysp:BasicAuthenticationDetail>
           <mysp:Realm realmName="file"/>
        </mysp:BasicAuthenticationDetail>
    </mysp:MustSupportBasicAuthenti</wsp:Policy>

アプリケーション変数を使用した名前/値ペアの定義

バインディングコンポーネントの「アプリケーション変数」プロパティーを使用すると、指定されたタイプの名前:値ペアのリストを定義できます。アプリケーション変数名は、対応するバインディングの WSDL 拡張性要素属性のトークンとして使用できます。たとえば、ホスト名を表すアプリケーション変数を FOO と定義する場合、WSDL 属性は ${FOO} となります。「アプリケーション変数」プロパティーで、名前として文字列値 FOO を入力し、必要な属性を値として入力します。アプリケーション変数を使用するアプリケーションを配備するとき、アプリケーションの WSDL で参照されているすべての変数が自動的にロードされます。

図は、HTTP バインディングコンポーネントの実行時プロパティーエディタと、アプリケーション変数のタイプを設定するためのダイアログボックスを示しています。

「アプリケーション変数」設定プロパティーでは、次の 4 つのタイプが提供されています。

変数を使用することで、WSDL ファイルの柔軟性を高めることができます。たとえば、アプリケーション変数を使用してシステム固有の情報を指定することにより、同じ WSDL を異なる実行時環境に使用できます。その後、必要に応じてバインディングコンポーネントの実行時プロパティーから、任意の環境に対してこれらの値を変更することができます。

アプリケーション変数を使用するアプリケーションを配備するとき、アプリケーションの WSDL ファイルで参照されているすべてのアプリケーション変数が自動的にロードされます。アプリケーションを起動しようとしたときにアプリケーション変数の値が定義されていない (そのアプリケーション変数に値が指定されていない) 場合は、例外がスローされます。

アプリケーションの実行中にプロパティーを変更するには、「アプリケーション変数」プロパティーの値を変更してから、「サーバー」>「GlassFish」>「JBI」>「サービスアセンブリ」の下の「サービス」ウィンドウでアプリケーションを右クリックし、ポップアップメニューで「停止」をクリックします。プロジェクトを再起動すると、新しい設定が有効になります。

パスワード保護のためにアプリケーション変数を使用する

保護されていないパスワードは WSDL ファイルに平文で表示されますが、Password アプリケーション変数をトークンとして挿入することにより、パスワードを保護できます。次の例では、名前 SECRET とパスワード PROTECT を使用するパスワードアプリケーション変数を作成します。

Procedureパスワードアプリケーション変数を作成する

  1. 「サーバー」ウィンドウの「サーバー」>「GlassFish·V2」>「JBI」の下の「バインディングコンポーネント」ディレクトリから sun-http-binding を選択します。

    sun-http-binding のプロパティーがプロパティーウィンドウに表示されます。

  2. 「アプリケーション変数」プロパティーの省略符号ボタン (...) をクリックします。

    アプリケーション変数エディタが表示されます。

  3. 「追加」をクリックし、変数のタイプとして Password を選択し、「了解」をクリックします。

    アプリケーション変数エディタに新しい行が追加されます。

  4. 名前として SECRET、値として PROTECT を入力します。

    これはパスワードタイプなので、パスワードの文字はアスタリスクで表示されます。

  5. ドル記号と中括弧を使用して、アプリケーション変数名 ${SECRET} を WSDL パスワード属性として使用します。

アプリケーション設定を使用した接続パラメータの設定

「アプリケーション設定」プロパティーを使用すると、作成したアプリケーション (サービスアセンブリなど) の外部接続パラメータを設定できます。また、アプリケーションの変更や再構築を行うことなく、同じアプリケーションを別のシステムに配備できます。たとえば、テスト環境で実行中のアプリケーションを、アプリケーションの再構築を行うことなく本稼働環境に配備できます。

「アプリケーション設定」プロパティーから、複合アプリケーションの外部接続パラメータの値を指定できます。これらのパラメータは通常、WSDL サービス拡張性要素で定義されます。ユーザーによって名前の付けられたエンドポイントの ConfigExtension プロパティーにこれらの値を適用することができます。アプリケーション設定プロパティーエディタには、そのコンポーネントのバインディングプロトコルに適用されるすべての接続パラメータのフィールドがあります。アプリケーション設定エディタで、保存された ConfigExtension の名前を入力し、接続パラメータを定義すると、プロジェクトの配備時に WSDL で定義されている接続属性よりもこれらの値が優先されます。これらの接続パラメータを再度変更するには、アプリケーション設定エディタで値を変更したあと、新しい値を適用するためにサービスアセンブリを停止してから起動します。

アプリケーション設定プロパティーエディタを使用すると、ユーザーが定義した独自の名前で参照できるさまざまなアプリケーション設定を作成できます。バインディングコンポーネントプロトコルが異なると、そその属性も異なります。HTTP バインディングの属性は JMS バインディングの属性とは異なるため、これらのバインディングコンポーネントのそれぞれで、アプリケーション設定プロパティーエディタに表示される属性は異なります。

アプリケーションの実行中にプロパティーを変更するには、「アプリケーション設定」プロパティーの値を変更してから、「サーバー」>「GlassFish」>「JBI」>「サービスアセンブリ」の下の「サービス」ウィンドウでアプリケーションを右クリックし、ポップアップメニューで「停止」をクリックします。プロジェクトを再起動すると、新しい設定が有効になります。

HTTP バインディングコンポーネントの「アプリケーション設定」プロパティーに含まれるパラメータは、「HTTP URL 位置」の 1 つだけです。

Procedure名前付き ConfigExtension をアプリケーション設定に適用する

  1. CASA エディタで、エンドポイントの「設定拡張」プロパティーから、エンドポイントの設定拡張の名前を指定します。

  2. 「サービス」ウィンドウで、JBI ノードの下の「バインディングコンポーネント」ディレクトリに移動し、アプリケーションで使用するバインディングコンポーネントを右クリックし、「プロパティー」を選択します。

    プロパティーウィンドウが表示されます。

  3. バインディングコンポーネントのプロパティーの中で、「アプリケーション設定」プロパティーの省略符号ボタン (...) をクリックします。

    アプリケーション設定プロパティーエディタが表示されます。

  4. ConfigExtension のユーザー定義の名前を入力し、接続パラメータの値を定義します。

  5. 「アプリケーション設定」の値の定義が完了したら、アプリケーションを配備します。

拡張されたログ

HTTP バインディングコンポーネントの実行時ロガープロパティーには、ユーザー指定のレベルで監視および記録できる 30 種類以上のコンポーネントアクティビティーがあります。HTTP バインディングコンポーネントのプロパティーエディタから、これらの各アクティビティーに対して個別にログレベルを設定できます。

各ロガーは、次のレベルのいずれかで情報を記録するように設定できます。

例外メッセージは一意の識別子で始まります。HTTP バインディングコンポーネントの例外メッセージは HTTPBC で始まります。例: HTTPBC-E00101.Start_failed=HTTPBC-E00101: \\{0\\} の起動に失敗しました。\\{1\\}

統計情報の監視

HTTP バインディングコンポーネントは、交換、エラー、要求、応答など、19 種類のコンポーネントアクティビティーに関する統計情報を記録して管理します。これらの統計情報は、エンドポイントのライフサイクル中に記録され、HTTP バインディングコンポーネントのプロパティーエディタからアクセスされます。たとえば、送信要求が完了した回数の統計情報は、アプリケーションの HTTP バインディングコンポーネントのプロパティーで、「統計情報」>「送信した要求」の現在の値として表示されます。

HTTP バインディングコンポーネントでの Tango Web サービス機能の使用

Tango は Metro プロジェクトの主要なコンポーネントです。Tango (WSIT とも呼ばれる) は、一般的に WS-サービスと呼ばれる WS-Security、WS-Reliable Messaging、WS-Transactions などの主要なエンタープライズ Web サービスを実装したものです。Tango は既存の JAX-WS および EJB プログラミングモデルを利用し、ユーザーが追加の設定ファイルをアプリケーションにバンドルすることでアプリケーションエンドポイントのセキュリティー、信頼性、およびトランザクション機能を定義できるようにします。

HTTP バインディングコンポーネントは、複合アプリケーションプロジェクトに適用できるいくつかの Tango 機能を公開します。

高信頼性メッセージ配信の設定

次の例は、プロジェクトの高信頼性メッセージ配信を設定する方法を示しています。NetBeans に含まれている「同期 BPEL プロセス」サンプルを使用しています。

Procedure「同期 BPEL プロセス」サンプルをインストールする

  1. NetBeans IDE で、「プロジェクト」タブを選択して「プロジェクト」ウィンドウを開きます。

  2. 「ファイル」メニューから「新規プロジェクト」を選択します。

    「新規プロジェクト」ダイアログボックスが表示されます。

  3. 「新規プロジェクト」ダイアログボックスの「カテゴリ」リストで、「サンプル」>「SOA」>「同期 BPEL プロセス」を選択し、「次へ」をクリックします。

  4. デフォルトのプロジェクト名と場所をそのまま使用し、「完了」をクリックします。

    「プロジェクト」ウィンドウに新規プロジェクトが表示されます。

Procedureプロジェクトの Web サービスを CASA エディタから設定する

  1. NetBeans IDE で、「プロジェクト」ウィンドウの SynchronousSampleApplication ノードを展開します。「サービスアセンブリ」を右クリックし、「編集」を選択します。

    NetBeans IDE 内に CASA エディタが開き、同期サンプルアプリケーションのデザインビューが表示されます。CASA エディタは .casa ファイルの作成と編集を行います。このファイルには、複合アプリケーションの設定情報が含まれています。このサンプルには、CASA エディタによって SynchronousSampleApplication.casa ファイルが作成されています。

  2. CASA エディタで、「プロジェクトの構築」アイコンをクリックして複合アプリケーションを構築します。

    構築が正常に完了すると、デザインビューに WSDL ポートエンドポイント、JBI モジュール、およびこのエンドポイントと JBI モジュールの間の接続が表示されます。

  3. 「SOAP バインディング」を右クリックし、ポップアップメニューから「編集する WSDL ポートを複製...」を選択します。

    「複合アプリケーションに WSDL ポートを複製」ダイアログが表示されます。「了解」をクリックして続行します。「SOAP バインディング」アイコンに、プロパティーエディタと「サーバー/クライアント設定」にアクセスするためのアイコンが表示されます。

  4. 「SOAP バインディング」上の「サーバー/クライアント設定」アイコンをクリックし、「サーバー設定」を選択します。

    SOAP バインディングポートの「WS-Policy Attachment」ダイアログボックスが表示されます。

HTTP バインディングコンポーネントで公開される Tango Web サービス属性の設定

複合アプリケーションの場合、Web サービス属性は、指定されたエンドポイントに関連付けられた WS Policy Attachment エディタを使用して、WSDL ポートに対して設定されます。WSDL ポートの WS Policy Attachment エディタには、CASA エディタからアクセスします。

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

Tango (WSIT) Web サービス属性の設定にアクセスする

Web サービス属性は、指定されたエンドポイントに関連付けられた WS Policy Attachment エディタを使用して、各 WSDL ポートに対して設定されます。WS Policy Attachments エディタには CASA エディタからアクセスします。そのためには、WSDL ポートを右クリックし、「Web サービス属性の編集」—>「サーバー設定」または「クライアント設定」を選択します。

以降の説明では、複合アプリケーションがすでに作成されていると想定しています。このオプションは、CASA で WSDL ポートが複製または作成されたあとで使用可能になります。

Procedure特定のエンドポイントの WS-Policy Attachment エディタにアクセスする

  1. NetBeans IDE の「プロジェクト」ウィンドウで、複合アプリケーションを展開します。「サービスアセンブリ」ノードを右クリックし、ポップアップメニューから「編集」を選択します。

    複合アプリケーションサービスアセンブリ (CASA) エディタが開き、複合アプリケーションが表示されます。

  2. CASA エディタで、「プロジェクトの構築」アイコンをクリックして複合アプリケーションを構築します。

    構築が正常に完了すると、デザインビューに WSDL ポートエンドポイント、JBI モジュール、およびこれらの間の接続が表示されます。

  3. WSDL ポートを作成または複製していない場合、そのポートを設定するための WS Policy Attachment は使用できません。ポートを複製するには、WSDL ポートを右クリックし、ポップアップメニューから「編集する WSDL ポートを複製」を選択します。

    図は、本文中で説明されているとおり、ユーザーが CASA で WSDL ポートを右クリックしている様子を示しています。

    ポートが複製されたあと、「ポートのプロパティー」アイコンと「Web サービス属性」アイコンがポートに追加されます。

  4. ポートの「Web サービス属性」アイコン (ポート下部のアイコン) をクリックし、「サーバー設定」または「クライアント設定」を選択して、該当する WS Policy Attachment 設定エディタを開きます。

サーバー設定 — Web サービス属性

HTTP バインディングコンポーネントで公開されるサーバー設定 Web サービス属性は、WS Policy Attachment 設定エディタから設定されます。

図は、本文中で説明されているとおり、「サーバー設定」の WS Policy Attachment エディタを示しています。

サーバー設定 Web サービス属性には次のようなものがあります。

属性 

説明 

値 

バインディング設定

バイナリデータの送信の最適化 (MTOM) 

Web サービスで、送信するメッセージを最適化するかどうか、および受信した最適化されたメッセージをデコードするかどうかを指定します。 

チェックボックスが選択されている場合、有効になっていることを示します。 

高信頼性メッセージ配信 

クライアントがメッセージ配信の失敗を認識してメッセージを再送信することができるように、配信された各メッセージについてサービスからクライアントに肯定応答を送信するかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

メッセージを正確な順序で配信する:  

特定のメッセージシーケンスのアプリケーションメッセージが、メッセージ番号によって指定された順序でエンドポイントアプリケーションに配信されることを、高信頼性メッセージングプロトコルで保証するかどうかを指定します。  

このオプションを使用すると、アプリケーションメッセージシーケンスの処理時間が増加し、Web サービスのパフォーマンスが低下する可能性があります。Web サービスで順序どおりの配信が必要な場合に限り、このオプションを有効にしてください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

フロー制御: 

フロー制御機能を有効にするかどうかを指定します。順序どおりの配信が必要な場合で、アプリケーションから前のメッセージがまだ到着していないときは、メッセージの保留が必要になることがあります。蓄積されたメッセージの数が「最大バッファーサイズ」設定で指定されたしきい値に達すると、そのシーケンスに属する着信メッセージは無視されます。  

チェックボックスが選択されている場合、有効になっていることを示します。 

フロー制御の最大バッファーサイズ: 

メッセージシーケンスに関してバッファーするメッセージの数を指定します。デフォルト設定は 32 です。 

デフォルト値は 32 です。 

非活動タイムアウト (ミリ秒): 

非アクティブの状態が続いたために発信元または送信先でメッセージシーケンスを中止できる時間間隔を、ミリ秒単位で指定します。Web サービスエンドポイントでは、時間切れになったシーケンスは常に中止されます。シーケンスをアクティブに保つために、非活動タイムアウトの期限が近づくと、アクティブでないクライアントは AckRequested ヘッダーを含んだスタンドアロンメッセージをハートビートとして送信します。 

デフォルト値は 600,000 (ミリ秒) です。 

セキュリティー保護されたサービス 

Web サービスのセキュリティーオプションを Web サービスのすべてのオペレーションに対して有効にするかどうかを指定します。 

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー機構 

Web サービスオペレーションで使用するセキュリティー機構を指定します。 

使用できるセキュリティー機構は次のとおりです。

詳細については、「セキュリティー機構」の節を参照してください。 

アプリケーションで使用するセキュリティー機構を選択します。  

選択した機構とその追加要件が、選択した項目の下のメッセージボックスに表示されます。 

設定: 

設定ボタンをクリックすると、選択したセキュリティー機構の設定エディタが開きます。 

設定プロパティーの詳細については、「セキュリティー機構」の節を参照してください。 

開発用のデフォルトを使用する: 

ただちに開発に使用するために GlassFish のキーストアとトラストストアに証明書をインポートするかどうかを指定します。デフォルトの証明書が正しい形式でインポートされ、「wsitUser」というユーザー名のデフォルトユーザーが file レルムに作成されます。

多くの場合、ユーザーは自分のプロジェクトにユーザー独自の証明書とユーザー設定を使用しますが、開発環境ではデフォルト設定が役立つこともあります。 

チェックボックスが選択されている場合、デフォルトの証明書を使用することを示します。 

キーストア 

「キーストア」ボタンをクリックすると、キーストア設定エディタが開きます。 

このエディタでは、次の情報を指定します。

  • 場所: 参照ボタンを使用して、キーストアの場所と名前を指定します。

  • キーストアパスワード: キーストアファイルのパスワードを指定します。GlassFish の下で実行している場合、GlassFish のパスワードがすでに入力されています。キーストアのパスワードをデフォルト値から変更してある場合は、このフィールドに正しい値を指定する必要があります。

  • 別名: 認証に使用する指定されたキーストア内の証明書の別名を指定します。

    非 STS アプリケーションのキーストア別名は、クライアント側用が xws-security-client、サーバー側設定用が xws-security-server です。

    STS アプリケーションのキーストアの別名は、クライアント側設定用と STS 設定用のどちらも xws-security-client です。

  • キーパスワード: キーストア内のキーのパスワードを指定します。デフォルトでは、キーパスワードにはストアのパスワードが使用されます。キーパスワードが異なっている場合のみ、このフィールドにパスワードを指定してください。

  • 別名セレクタクラス: 別名のセレクタクラスを指定します。

キーストア設定エディタからキーストアを設定します。

トラストストア 

「トラストストア」ボタンをクリックすると、トラストストア設定エディタが開きます。 

このエディタでは、次の情報を指定します。

  • 場所: 参照ボタンを使用して、CA の公開キー証明書とクライアントの公開キー証明書が格納されているトラストストアの場所とファイル名を指定します。

  • トラストストアパスワード: トラストストアのパスワードを指定します。GlassFish の下で実行している場合、GlassFish のパスワードは changeit です。トラストストアのパスワードをデフォルト値から変更してある場合は、このフィールドに正しい値を指定する必要があります。

  • 別名の読み込み: 「別名の読み込み」ボタンをクリックすると、トラストストアファイルに格納されている別名が「別名」フィールドに入力されます。このオプションが機能するためには、「場所」フィールドと「トラストストアパスワード」フィールドに正しく入力する必要があります。

  • 証明書セレクタ: 0 個以上の証明書の識別情報を指定する文字列を指定します。指定子は X.509 命名規則に準拠することができます。証明書セレクタでは、各種のショートカットを使用して、被認証者の代替名、ファイル名、または発行者と照合することもできます。

トラストストア設定エディタからトラストストアを設定します。

バリデータ 

「バリデータ」ボタンをクリックすると、バリデータ設定エディタが開きます。 

このエディタでは、次の情報を指定します。

  • ユーザー名バリデータ: サーバー側でユーザー名とパスワードを検証するためのバリデータクラスを指定します。このオプションを使用するのは Web サービスだけです。

    注: デフォルトのユーザー名バリデータを使用する場合、GlassFish を使用するときは、クライアントのユーザー名とパスワードが (管理コンソールを使用して) GlassFish に登録されていることを確認してください。また、Tomcat を使用するときは、tomcat-users.xml ファイルに含まれていることを確認してください。

  • タイムスタンプバリデータ: トークンのタイムスタンプを確認してトークンの期限が切れているかどうかを判定するためのバリデータクラスを指定します。

  • 証明書バリデータ: クライアントまたは Web サービスから提供された証明書を検証するためのバリデータクラスを指定します。

  • SAML バリデータ: クライアントまたは Web サービスから提供された SAML トークンを検証するためのバリデータクラスを指定します。

バリデータ設定エディタからバリデータを設定します。

詳細 (高度なセキュリティーオプション) 

「詳細」ボタンをクリックすると、高度なセキュリティーオプションエディタが開きます。 

このエディタでは、次の情報を指定します。

  • 最大クロックスキュー (ミリ秒): 送信側と受信側のシステムクロックの間に許容される最大の差を、ミリ秒単位で指定します。

  • タイムスタンプの新しさの制限 (ミリ秒): タイムスタンプの新しさの制限をミリ秒単位で指定します。受信側は、受信したタイムスタンプの作成時刻が「タイムスタンプの新しさの制限」の期間より古い場合、これらを拒否します。

  • デフォルトの証明書失効機構を使用する: このオプションが選択されている場合は、ベースとなる PKIX サービスプロバイダのデフォルトの失効検査機構が使用されます。

高度なセキュリティーオプションエディタから高度なセキュリティーオプションを設定します。

セキュアトークンサービスとして機能する (STS) 

「セキュアトークンサービスとして機能する」チェックボックスを選択し、「設定」ボタンをクリックすると、STS 設定エディタが開きます。 

このエディタでは、次の情報を指定します。

  • 発行者: 発行されるトークンの発行者の識別子を指定します。この値には、STS を一意に識別する任意の文字列を指定できます。

  • 規約実装クラス: トークンの発行や検証などを処理する WSTrustContract インタフェースの実際の実装クラスを指定します。SAML 表明を発行するためのデフォルト値は com.sun.xml.ws.trust.impl.IssueSamlTokenContractImpl です。または、参照ボタンをクリックして、別の規約実装クラスを選択することもできます。

  • 発行済みトークンの寿命 (ミリ秒): STS によって発行されるトークンの寿命を指定します。デフォルト値は 36000 ミリ秒です。

  • 発行するキーを暗号化: サービス証明書を使用して発行するキーを暗号化するかどうかを指定します。選択されている場合は、「はい」を示します。

  • 発行するトークンを暗号化: サービス証明書を使用して発行するトークンを暗号化するかどうかを指定します。選択されている場合は、「はい」を示します。

  • サービスプロバイダ: STS との信頼関係を持つサービスプロバイダを指定します。新規プロバイダを指定するには「追加」をクリックします。次のプロトコルを使用してプロバイダを一覧表示することができます。

    • プロバイダエンドポイント URI: サービスプロバイダのエンドポイント URI を指定します。

    • 証明書の別名: キーストア内のサービスプロバイダの証明書の別名を指定します。

    • トークンタイプ: サービスプロバイダが必要とするトークンのタイプを指定します。

    • キータイプ: サービスプロバイダが必要とするキーのタイプを、公開キーか対称キーかで指定します。

STS 設定エディタから STS 設定オプションを設定します。

TCP トランスポートを許可 

サービスで TCP および HTTP メッセージトランスポートをサポートするかどうかを指定します。TCP では、HTTP プロトコルでメッセージを送信するオーバーヘッドが除去され、小さいメッセージのパフォーマンスが向上します。 

チェックボックスが選択されている場合、有効になっていることを示します。 

Fast Infoset を無効にする 

同等の XML ドキュメントと比較して、より高速な解析、より高速な直列化、およびより小さいサイズのドキュメント作成のために Fast Infoset を有効にするかどうかを指定します。このオプションが選択されている場合、Web サービスでは、Fast Infoset を使用してエンコードされた着信メッセージの処理や送信メッセージの生成は行われません。 

チェックボックスが選択されている場合、有効になっていることを示します。 

オペレーション設定

トランザクション 

トランザクションをどのレベルでセキュリティー保護するかを指定します。 

 

入力メッセージ設定

認証トークン 

指定されたメッセージパートの署名や暗号化に使用するサポートトークンを指定します。オプションには、「ユーザー名」、「X509」、「SAML」、「発行済み」、または「なし」があります。

ユーザー名 

署名あり: 

認証トークンは署名付きのサポートトークンでなければならないことを指定します。署名付きのサポートトークンは、主メッセージ署名によっても署名されます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

承認済み: 

認証トークンは承認済みでなければならないことを指定します。承認サポートトークンでは、トークンで表されるキーを使用して主メッセージ署名が承認/署名されます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

 

メッセージパート: 

メッセージパートの署名や暗号化を行う必要があることを指定します。「メッセージパート」ボタンをクリックすると、「メッセージパート」ダイアログボックスが開きます。  

「メッセージパート」ダイアログボックスから、メッセージパートまたは要素に関する次のオプションを指定できます。

  • 署名: このメッセージパートには、完全性を保護するためにデジタル署名が必要であることを指定します。

  • 暗号化: このメッセージパートには、機密性のために暗号化が必要であることを指定します。

  • 必須: このメッセージパートはメッセージに必須であることを指定します。

「メッセージパート」ダイアログボックスには次のボタンもあります。

  • 本体を追加: メッセージ本体の行を追加します (これは行が削除されている場合にのみ必要)。

  • ヘッダーを追加: 特定の SOAP ヘッダーパートまたはすべての SOAP ヘッダーパートの行を追加します (これは該当する SOAP ヘッダー行が削除されている場合にのみ必要)。

  • XPath を追加: 使用する Xpath のバージョンを指定する XPath 式または URI に対して署名や暗号化を指定できる行を追加します。必須フィールドはデフォルトで選択されています。1 つの XPath 要素だけを指定できます。

  • 削除: 選択した行を削除します。

 

出力メッセージ設定

メッセージパート 

メッセージパートの署名や暗号化を行う必要があることを指定します。「メッセージパート」ボタンをクリックすると、「メッセージパート」ダイアログボックスが開きます。  

詳細については、前述の「入力メッセージ」の「メッセージパート」を参照してください。

 

セキュリティー機構を設定する

この節では、Tango を介して使用できる次のセキュリティー機構と、各選択項目のサーバー設定オプションについて説明します。これらのセキュリティー機構の詳細については、Security Mechanisms を参照してください。

使用できるセキュリティー機構は次のとおりです。

対称キーによるユーザー名認証

対称キーによるユーザー名認証機構では、アプリケーションの完全性と機密性が保護されます。対称キー暗号化方式は、メッセージの署名と暗号化の両方に使用される単一の共有秘密鍵を基にしています。通常は、公開キー暗号化方式より高速です。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 12 対称キーによるユーザー名認証の設定プロパティー

プロパティー 

説明 

値 

認証トークン 

指定されたメッセージパートの署名や暗号化に使用するサポートトークンを指定します。オプションには、「ユーザー名」、「X509」、「SAML」、「発行済み」、または「なし」があります。 

ユーザー名 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

アルゴリズム群により、実際のアルゴリズムおよび許容されるキーの長さが指定されます。代替の機構により、どのアルゴリズムをどのように使用するかが定義されます。通常、この属性の値はセキュリティーバインディングによって参照され、そのセキュリティーバインディングの下で実行されるすべての暗号化操作に使用するアルゴリズムを指定します。デフォルト値は Basic 128 ビットです。  

一部のアルゴリズム群の設定、特に 256 ビットの暗号化を使用するアルゴリズム群では、Java Runtime Environment (JRE) で無制限強度の暗号化を設定する必要があります。無制限強度の暗号化をダウンロードして設定する方法については、http://java.sun.com/products/jce/javase.html または http://java.sun.com/javase/downloads/index_jdk5.jsp#docs を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。  

オプションは次のとおりです。

  • Strict: 「使用前に宣言する」という一般的な原則に従って、セキュリティーヘッダーに項目が追加されます。

  • Lax: WSS: SOAP Message Security に準拠した任意の順序で、セキュリティーヘッダーに項目が追加されます。ただし、Lax が選択されている場合でも、WSIT は Strict に従います。

  • Lax (Timestamp First): セキュリティーヘッダー内の最初の項目が wsse:Timestamp でなければならないという点を除き、Lax と同じです。

  • Lax (Timestamp Last): セキュリティーヘッダー内の最後の項目が wsse:Timestamp でなければならないという点を除き、Lax と同じです。

Strict 

派生キーを必要とする 

派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。たとえばセキュリティー保護された通信の使用時など、繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

このオプションと「派生キーを必要とする」の両方が有効になっている場合は、派生キーが使用されます。それ以外の場合は、元のセッションキーが使用されます。  

セキュリティー保護されたセッションと高信頼性メッセージ配信に関する注: 高信頼性メッセージングはセキュリティー機構とは無関係に使用できます。ただし、セキュリティー機構とともに使用する場合、高信頼性メッセージングにはセキュリティー保護されたセッションを使用する必要があります。セキュリティー機構を選択する前に「高信頼性メッセージング」を選択した場合、セキュリティー保護されたセッションがセキュリティー機構に対して自動的に設定されます。セキュリティー保護されたセッションがセキュリティー機構に対して選択されている場合で、セキュリティー機構を指定する前に高信頼性メッセージングオプションを選択しなかったときは、セキュリティー保護されたセッションが機能するためには高信頼性メッセージングを手動で選択する必要があります。 

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

相互証明書セキュリティー

相互証明書セキュリティー機構では、認証とメッセージ保護によるセキュリティーを使用して、完全性と機密性が保護されます。この機構では、アプリケーションのクライアント側とサーバー側の両方に、キーストアおよびトラストストアのファイルが必要です。

相互証明書セキュリティーの WS Security を設定する例については、Using the WSIT Mutual Certificates Security Mechanism with the HTTP BC を参照してください。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 13 相互証明書セキュリティーの設定プロパティー

プロパティー 

説明 

値 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

派生キーを必要とする 

派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。たとえばセキュリティー保護されたセッションの使用時など、繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

トランスポートセキュリティー (SSL)

トランスポートセキュリティー機構では、メッセージ移送時の認証と機密性のために SSL が使用されます。トランスポートレイヤーのセキュリティーは、Secure Sockets Layer (SSL) でセキュリティー保護された HTTP トランスポート (HTTPS) を基にしています。このポイントツーポイントのセキュリティー機構は、認証、メッセージの完全性、および機密性のために使用できます。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 14 トランスポートセキュリティー (SSL) の設定プロパティー

プロパティー 

説明 

値 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

クライアント証明書を必要とする 

検証のためにクライアント証明書をサーバーに提供する必要があることを指定します。 

SSL によるセキュリティー機構を使用する場合、サーバーは初期ハンドシェーク中および検証中に再度、クライアント証明書を要求します。  

チェックボックスが選択されている場合、無効になっていることを示します。 

SSL を使用したメッセージ認証

SSL を使用したメッセージ認証機構は、暗号化によってセキュリティー保護された識別情報または認証トークンをメッセージに添付し、機密性保護のために SSL を使用します。認証は、ユーザー名サポートトークンまたは X.509 サポートトークンによって指定されます。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 15 SSL を使用したメッセージ認証の設定プロパティー

プロパティー 

説明 

値 

認証トークン 

指定されたメッセージパートの署名や暗号化に使用するサポートトークンを指定します。オプションには、「ユーザー名」、「X509」、「SAML」、「発行済み」、または「なし」があります。 

ユーザー名 

WSS バージョン 

Web Services Security 仕様のどのバージョンに従うかを指定します。オプションは 1.0 と 1.1 です。 

WSS 1.1 を有効にすると、クライアントによって生成された暗号化済みのキーをサーバーで再利用できます。これにより、応答の過程で対称キーを作成し、クライアントの公開キーを使用して暗号化し (負荷が大きい RSA 操作でもある)、暗号化したキーをメッセージで送信する (マークアップの領域を使用し、Base64 操作も必要) ことが不要になり、時間を節約できます。WSS 1.1 を有効にすると、暗号化されたヘッダーも有効になります。  

1.1 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「セキュリティーセッションに派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

SSL を使用した SAML 承認

SSL を使用した SAML 承認機構は、承認トークンをメッセージに添付します。機密性保護のために SSL が使用されます。この機構では、エンドユーザーに関する承認情報が SAML トークンで伝送されます。トークンの送信側は、実際に SAML トークンで資格情報を保証しています。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 16 SSL を使用した SAML 承認の設定プロパティー

プロパティー 

説明 

値 

SAML バージョン 

どのバージョンの SAML トークンを使用するかを指定します。SAML バージョンは、セキュリティーランタイムではなくコールバックハンドラで確認すべきものです。  

SAML トークンは、http://www.oasis-open.org/specs/index.php から入手可能な「WSS: SAML Token Profile」ドキュメントで定義されています。

1.1 (Profile 1.0) 

WSS バージョン 

Web Services Security 仕様のどのバージョンに従うかを指定します。オプションは 1.0 と 1.1 です。 

WSS 1.1 を有効にすると、クライアントによって生成された暗号化済みのキーをサーバーで再利用できます。これにより、応答の過程で対称キーを作成し、クライアントの公開キーを使用して暗号化し (負荷が大きい RSA 操作でもある)、暗号化したキーをメッセージで送信する (マークアップの領域を使用し、Base64 操作も必要) ことが不要になり、時間を節約できます。WSS 1.1 を有効にすると、暗号化されたヘッダーも有効になります。  

1.1 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

クライアント証明書を必要とする 

検証のためにクライアント証明書をサーバーに提供する必要があることを指定します。 

SSL によるセキュリティー機構を使用する場合、サーバーは初期ハンドシェーク中および検証中に再度、クライアント証明書を要求します。  

チェックボックスが選択されている場合、無効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

承認証明書

承認証明書機構は、完全性と機密性のために対象キーを使用するセキュリティー保護されたメッセージを使用します。また、クライアント承認証明書を使用して、メッセージ署名に関連付けられたトークンで申請する内容を補強します。クライアントはサービスの証明書を認識し、要求は特殊な識別情報によって承認されている必要があります。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 17 承認証明書の設定プロパティー

プロパティー 

説明 

値 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「セキュリティーセッションに派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

SAML Sender-Vouches と証明書

この機構は、相互証明書を使用してメッセージの完全性と機密性を提供し、Sender-Vouches SAML トークンを使用して承認を提供します。Sender-Vouches 方式では、SOAP メッセージとその SOAP メッセージに追加される SAML 表明の間の対応が確立されます。(SAML 表明内の) SAML 主体ステートメントの主体と SOAP メッセージコンテンツの間の対応を確立するのに使用される確認証拠は、証明エンティティーによって提供されます。

メッセージペイロードには署名と暗号化を行う必要があります。要求者は、要求者が代行している実体の資格情報 (SAML 表明内にある) を保証します。イニシエータトークンは X.509 トークンであり、署名に使用されます。受信者トークンも X.509 トークンであり、暗号化に使用されます。サーバーの場合はこれが逆になり、受信者トークンは署名トークン、イニシエータトークンは暗号化トークンです。SAML トークンが承認に使用されます。

SAML Sender-Vouches と証明書を使用して WS Security を設定する例については、Using the SAML Sender Vouches with Certificates Security Mechanism with the HTTP BC を参照してください。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 18 SAML Sender-Vouches と証明書の設定プロパティー

プロパティー 

説明 

値 

SAML バージョン 

どのバージョンの SAML トークンを使用するかを指定します。SAML バージョンは、セキュリティーランタイムではなくコールバックハンドラで確認すべきものです。  

SAML トークンは、http://www.oasis-open.org/specs/index.php から入手可能な「WSS: SAML Token Profile」ドキュメントで定義されています。

1.1 (Profile 1.0) 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

派生キーを必要とする 

派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

SAML Holder-of-Key

この機構は、クライアントの公開キーおよび承認情報を伝送する (信頼できる機関から発行された) 署名付き SAML 表明を含んだメッセージの完全性と機密性を、相互証明書を使用して保護します。Holder-of-Key (HOK) 方式では、SOAP メッセージとその SOAP メッセージに追加される SAML 表明の間の対応が確立されます。詳細については、http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0.pdf で「SAML Token Profile」ドキュメントを参照してください。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 19 SAML Holder-of-Key の設定プロパティー

プロパティー 

説明 

値 

SAML バージョン 

どのバージョンの SAML トークンを使用するかを指定します。SAML バージョンは、セキュリティーランタイムではなくコールバックハンドラで確認すべきものです。  

SAML トークンは、http://www.oasis-open.org/specs/index.php から入手可能な「WSS: SAML Token Profile」ドキュメントで定義されています。

1.1 (Profile 1.0) 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

派生キーを必要とする 

派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

STS 発行トークン

信頼できるセキュアトークンサービス (STS) によって発行されたトークンを使用してメッセージの完全性と機密性を保護します。

この機構を Web サービスに使用するには、使用するセキュリティー機構でこのオプションを選択します。サービスから参照できるセキュリティートークンサービスが必要です。このアプリケーションのクライアント側のセキュリティー設定は、アプリケーションに対して選択されたセキュリティー機構ではなく、STS に対して選択されたセキュリティー機構によって決まります。クライアントのトラストストアに STS の証明書が格納されている必要があります。更新済みの GlassFish 証明書を使用していれば、この証明書の別名は wssip です。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 20 STS 発行トークンの設定プロパティー

プロパティー 

説明 

値 

発行者アドレス 

メッセージで提供されるセキュリティートークンを受け入れる発行者 (STS) のアドレスを指定します。要素のタイプはエンドポイント参照です。STS には、セキュリティートークンの発行、交換、および検証に使用される一連のインタフェースが含まれています。 

たとえば、JAX-WS サービスの場合、発行者アドレスは http://localhost:8080/jaxws-sts/sts です。

http://localhost:8080/jaxws-sts/sts 

発行者メタデータアドレス 

発行者のメタデータを取得するアドレスを指定します。これは単に URL です。  

たとえば、JAX-WS サービスの場合、発行者メタデータアドレスは http://localhost:8080/jaxws-sts/sts です。

http://localhost:8080/jaxws-sts/sts 

トークンタイプ 

サービスプロバイダが必要とする SAML トークンのタイプを指定します。たとえば、urn:oasis:names:tc:SAML1.0:assertion です。

オプションは 1.0、1.1、または 2.0 です。 

1.1 

キータイプ 

サービスプロバイダが必要とするキーのタイプを指定します。  

選択肢は公開キーまたは対称キーです。

  • 対称キー暗号化方式は共有シークレットを基にしており、通常は公開キー暗号化方式より高速です。

  • 公開キー暗号化方式は、全員に公開されるキーを基にしており、主に暗号化に使用されますが、署名の検証にも使用可能です。

発行済みトークン機構だけに適用されます。 

対称キー 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

発行済みトークンに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「発行済みトークンに派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「発行済みトークンに派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

STS 発行トークンとサービス証明書

「STS 発行トークン」に似ていますが、クライアントは指定の STS によって発行された SAML トークンを使用して認証するようにサービスから要求されます。また、サービス証明書を使用して機密性保護が実現される点も異なります。サービス証明書は、サービスを認証するため、およびメッセージ保護を提供するためにクライアントで使用されます。GlassFish の場合は、デフォルトの証明書 s1as が付属しています。

この機構を Web サービスに使用するには、使用するセキュリティー機構でこのオプションを選択します。サービスから参照できるセキュリティートークンサービスが必要です。このアプリケーションのクライアント側のセキュリティー設定は、アプリケーションに対して選択されたセキュリティー機構ではなく、STS に対して選択されたセキュリティー機構によって決まります。クライアントのトラストストアに STS の証明書が格納されている必要があります。更新済みの GlassFish 証明書を使用していれば、この証明書の別名は wssip です。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 21 STS 発行トークンとサービス証明書の設定プロパティー

プロパティー 

説明 

値 

発行者アドレス 

メッセージで提供されるセキュリティートークンを受け入れる発行者 (STS) のアドレスを指定します。要素のタイプはエンドポイント参照です。STS には、セキュリティートークンの発行、交換、および検証に使用される一連のインタフェースが含まれています。 

たとえば、JAX-WS サービスの場合、発行者アドレスは http://localhost:8080/jaxws-sts/sts です。

http://localhost:8080/jaxws-sts/sts 

発行者メタデータアドレス 

発行者のメタデータを取得するアドレスを指定します。これは単に URL です。  

たとえば、JAX-WS サービスの場合、発行者メタデータアドレスは http://localhost:8080/jaxws-sts/sts です。

http://localhost:8080/jaxws-sts/sts 

トークンタイプ 

サービスプロバイダが必要とする SAML トークンのタイプを指定します。たとえば、urn:oasis:names:tc:SAML1.0:assertion です。

オプションは 1.0、1.1、または 2.0 です。 

1.1 

キータイプ 

サービスプロバイダが必要とするキーのタイプを指定します。  

選択肢は公開キーまたは対称キーです。

  • 対称キー暗号化方式は共有シークレットを基にしており、通常は公開キー暗号化方式より高速です。

  • 公開キー暗号化方式は、全員に公開されるキーを基にしており、主に暗号化に使用されますが、署名の検証にも使用可能です。

発行済みトークン機構だけに適用されます。 

対称キー 

キーサイズ 

要求する対称キーのサイズをビット数で指定します。  

これは、望ましいセキュリティー強度を示す情報として指定されます。有効な選択肢は 128、192、および 256 です。セキュリティートークンは、要求されたキーサイズの使用を強制されるわけではなく、STS も、同じキーサイズのトークンの発行を強制されるわけではありません。ただし、受信者はできるかぎり、指定された値以上の強度を持つキーを使用するように努めるべきです。  

発行済みトークン機構だけに適用されます。 

128 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

派生キーを必要とする 

派生キーが必要であることを指定します。  

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

STS 発行承認トークン

「STS 発行トークン」に似ていますが、クライアントは指定の STS によって発行された SAML トークンを使用して認証されます。承認トークンがメッセージ署名への署名に使用されます。

メッセージの完全性と機密性は、サービス用の暗号化された短期キーを使用して保護されます。短期キーでは、キーハンドルが破棄されたときに交換キーの値を暗号化サービスプロバイダ (CSP) から削除するアルゴリズムが使用されます。サービスでは、指定の STS によって発行された SAML トークンでメッセージが承認されていることが要求されます。

この機構の場合、サービスでは、セキュリティー保護された通信が信頼できる STS によって承認されていることが要求されます。サービスは、クライアントを直接信頼するのではなく、指定の STS によって発行されたトークンを信頼します。つまり、STS はクライアントを安全に認証するための 2 番目のサービスの役割を果たします。

この機構を Web サービスに使用するには、使用するセキュリティー機構でこのオプションを選択します。サービスから参照できるセキュリティートークンサービスが必要です。このアプリケーションのクライアント側のセキュリティー設定は、アプリケーションに対して選択されたセキュリティー機構ではなく、STS に対して選択されたセキュリティー機構によって決まります。クライアントのトラストストアに STS の証明書が格納されている必要があります。更新済みの GlassFish 証明書を使用していれば、この証明書の別名は wssip です。

サーバー側の要件

このセキュリティー機構に関しては、次のサーバー側オプションを設定する必要があります。

クライアント側の要件

このセキュリティー機構に関しては、次のクライアント側オプションを設定する必要があります。

表 22 STS 発行承認トークンの設定プロパティー

プロパティー 

説明 

値 

発行者アドレス 

メッセージで提供されるセキュリティートークンを受け入れる発行者 (STS) のアドレスを指定します。要素のタイプはエンドポイント参照です。STS には、セキュリティートークンの発行、交換、および検証に使用される一連のインタフェースが含まれています。 

たとえば、JAX-WS サービスの場合、発行者アドレスは http://localhost:8080/jaxws-sts/sts です。

http://localhost:8080/jaxws-sts/sts 

発行者メタデータアドレス 

発行者のメタデータを取得するアドレスを指定します。これは単に URL です。  

たとえば、JAX-WS サービスの場合、発行者メタデータアドレスは http://localhost:8080/jaxws-sts/sts です。

http://localhost:8080/jaxws-sts/sts 

トークンタイプ 

サービスプロバイダが必要とする SAML トークンのタイプを指定します。たとえば、urn:oasis:names:tc:SAML1.0:assertion です。

オプションは 1.0、1.1、または 2.0 です。 

1.1 

キータイプ 

サービスプロバイダが必要とするキーのタイプを指定します。  

選択肢は公開キーまたは対称キーです。

  • 対称キー暗号化方式は共有シークレットを基にしており、通常は公開キー暗号化方式より高速です。

  • 公開キー暗号化方式は、全員に公開されるキーを基にしており、主に暗号化に使用されますが、署名の検証にも使用可能です。

発行済みトークン機構だけに適用されます。 

対称キー 

キーサイズ 

要求する対称キーのサイズをビット数で指定します。  

これは、望ましいセキュリティー強度を示す情報として指定されます。有効な選択肢は 128、192、および 256 です。セキュリティートークンは、要求されたキーサイズの使用を強制されるわけではなく、STS も、同じキーサイズのトークンの発行を強制されるわけではありません。ただし、受信者はできるかぎり、指定された値以上の強度を持つキーを使用するように努めるべきです。  

発行済みトークン機構だけに適用されます。 

128 

アルゴリズム群 

対称キーベースまたは非対称キーベースのセキュリティートークンによる暗号化操作を実行するために必要なアルゴリズム群を指定します。  

詳細については、表 12 の「アルゴリズム群」を参照してください。

Basic 128 ビット 

セキュリティーヘッダーのレイアウト 

セキュリティーヘッダーに項目を追加する際に適用するレイアウト規則を指定します。オプションは、Strict、Lax、Lax (Timestamp First)、および Lax (Timestamp Last) です。 

詳細については、表 12 の「セキュリティーヘッダーのレイアウト」を参照してください。

Strict 

X509 トークンに派生キーを必要とする 

X509 トークンには派生キーが必要であることを指定します。詳細については、前述の「派生キーを必要とする」を参照してください。 

派生キーは、パスワードまたはほかのユーザーデータから作成される暗号化キーです。アプリケーションでは、必要に応じて派生キーを使用してセッションキーを作成できるため、特定のキーを保存する必要がなくなります。繰り返し行われるメッセージ交換に同じセッションキーを使用することは、リスクと見なされることがあります。そのようなリスクを低減するには、「X509 トークンに派生キーを必要とする」を有効にしてください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

発行済みトークンに派生キーを必要とする 

発行済みトークンには派生キーが必要であることを指定します。詳細については、前述の「X509 トークンに派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションを確立する (Secure Conversation) 

セキュリティー保護されたセッションでは、複数メッセージ交換のシーケンスが最初に開始されたときに、コンシューマとプロバイダの間で共有セキュリティーコンテキストを確立できます。後続のメッセージ (派生メッセージの場合もある) ではセッションキーを使用することにより、全体的なセキュリティーが向上するとともに、各メッセージのセキュリティー処理のオーバーヘッドが減少します。  

詳細については、表 12 の「セキュリティー保護されたセッションを確立する」を参照してください。

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティーセッションに派生キーを必要とする 

セキュリティー保護されたセッションには派生キーが必要であることを指定します。詳細については、前述の「X509 トークンに派生キーを必要とする」を参照してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

署名の確認を必要とする 

レスポンダが要求内の署名を処理することを指定します。WSS のバージョンが 1.1 の場合は、攻撃のリスクを低減するためにこのオプションを選択してください。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名を暗号化 

主署名と署名確認要素を暗号化する必要があるかどうかを指定します。  

チェックボックスが選択されている場合、有効になっていることを示します。 

署名前に暗号化 

メッセージ保護の順序として、SOAP コンテンツを暗号化してから SOAP 本体全体に署名することを指定します。暗号化キーと署名キーは、同じソースキーから派生させる必要があります。  

選択されていない場合、デフォルトの動作は「暗号化前に署名」です。  

チェックボックスが選択されている場合、無効になっていることを示します。 

クライアント設定 — Web サービス属性

WS Policy Attachment エディタに公開されるクライアント設定 Web サービス属性は、プロジェクトおよびサーバー設定によって決まります。

図は、本文中で説明されているとおり、「サーバー設定」の WS Policy Attachment エディタを示しています。

HTTP バインディングコンポーネントで公開される属性について、次の表で説明します。

属性 

説明 

値 

トランスポート設定

最適なエンコーディングを自動的に選択する (XML/Fast Infoset) 

XML を使用するか Fast Infoset エンコーディングを使用するかを指定します。 

Fast Infoset は、XML に代わる、より効率のよいバイナリエンコーディングです。サービスが Fast Infoset を許可するように設定されている場合、このオプションを選択して Fast Infoset を使用すると、同等の XML ドキュメントと比較して、より高速な解析、より高速な直列化、およびより小さいサイズのドキュメント作成が可能になります。 

チェックボックスが選択されている場合、有効になっていることを示します。 

最適なトランスポートを自動的に選択する (XML/Fast Infoset) 

サービスが TCP をサポートしているかどうかをクライアントランタイムで確認するかどうかを指定します。サービスが TCP をサポートしている場合、クライアントはサービスとクライアントの通信に自動的に TCP トランスポートを使用します。  

TCP を使用すると、小さいメッセージの送信時により高いパフォーマンスが得られます。パフォーマンスの向上は主に小さいメッセージで現れます。これは、HTTP プロトコルでメッセージを送信するオーバーヘッドが除去されるからです。サービスが TCP をサポートしていない場合や、クライアントに対してこのオプションが選択されていない場合は、HTTP がトランスポートとして使用されます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー設定

開発用のデフォルトを使用する 

ただちに開発に使用できるように GlassFish のキーストアとトラストストアに証明書をインポートするかどうかを指定します。セキュリティー機構では、v3 証明書を使用する必要があります。デフォルトの GlassFish のキーストアとトラストストアには、この時点で v3 証明書は含まれていません。GlassFish でメッセージセキュリティー機構を使用するには、v3 証明書の入ったキーストアファイルとトラストストアファイルを入手し、適切な証明書をデフォルトの GlassFish ストアにインポートする必要があります。  

証明書のインポートに加え、このオプションを選択すると、「wsitUser」というユーザー名のデフォルトユーザーが file レルムに作成されます。  

本稼働環境にはユーザー独自の証明書とユーザー設定を指定してください。 

チェックボックスが選択されている場合、有効になっていることを示します。 

キーストア 

「キーストア」ボタンをクリックすると、キーストア設定エディタが開きます。 

このエディタでは、次の情報を指定します。

  • 場所: クライアントを認証するための証明書キーが格納されているディレクトリとファイル名を指定します。場所と名前を指定するには、参照ボタンを使用します。

  • キーストアパスワード: クライアントで使用されるキーストアのパスワードを指定します。デフォルトの GlassFish パスワードは changeit です。

  • 別名: 認証に使用する指定されたキーストア内の証明書の別名を指定します。

  • 別名の読み込み: このボタンをクリックすると、選択したキーストアで使用可能なすべての証明書が「別名」リストに入力されます。このオプションは、キーストアの場所とパスワードが正しい場合にのみ機能します。

  • キーパスワード: キーストア内のキーのパスワードを指定します。デフォルトでは、キーパスワードにはストアのパスワードが使用されます。キーパスワードが異なっている場合のみ、このフィールドにパスワードを指定してください。

  • 別名セレクタクラス: 別名のセレクタクラスを指定します。

キーストア設定エディタからキーストアを設定します。

トラストストア 

「トラストストア」ボタンをクリックすると、トラストストア設定エディタが開きます。 

このエディタでは、次の情報を指定します。

  • 場所: サーバーの証明書キーが格納されているクライアントトラストストアのディレクトリとファイル名を指定します。場所とファイル名を選択するには、参照ボタンを使用します。

  • トラストストアパスワード: クライアントで使用されるトラストストアのパスワードを指定します。GlassFish の下で実行している場合、GlassFish のパスワードは changeit です。

  • 別名: クライアントが暗号化したデータを送信する必要があるときに使用する、トラストストア内の証明書のピア別名を指定します。

  • 別名の読み込み: 「別名の読み込み」ボタンをクリックすると、トラストストアファイルに格納されている別名が「別名」フィールドに入力されます。このオプションが機能するためには、「場所」フィールドと「トラストストアパスワード」フィールドに正しく入力する必要があります。

  • 証明書セレクタ: 0 個以上の証明書の識別情報を指定する文字列を指定します。指定子は X.509 命名規則に準拠することができます。証明書セレクタでは、各種のショートカットを使用して、被認証者の代替名、ファイル名、または発行者と照合することもできます。

トラストストア設定エディタからトラストストアを設定します。

認証資格 

認証資格が動的か静的かを指定します。「認証資格」の前にある関連する 2 つのプロパティーフィールドは、「認証資格」プロパティーの値によって変化します。 

  • 動的

  • 静的: この設定の場合、デフォルトのユーザー名とパスワードを指定してください。

注: 「静的」オプションでは、WSIT のクライアント側設定にプレーンテキスト文字列として格納されたパスワードが、公開されるリスクがあります。ただし、GlassFish のコンテキストで使用する場合、「静的」オプションは組み込み Web サービスクライアント (Web サービスクライアントとして機能するサーブレットや EJB など) に特に役立ちます。この場合のパスワードは、パスワード文字列を「$」文字で始めることにより、プレースホルダとして指定できます。次に、WSIT セキュリティーランタイムは SecretKeyCallback を作成し、パスワードのプレースホルダ (「$」文字を除いたもの) を渡します。SecretKeyCallback の結果として実際のパスワードが取得されます。  

詳細については、WSIT Security Configuration Demystified を参照してください。

動的 

ユーザー名コールバックハンドラまたはユーザー名

ユーザー名コールバックハンドラを指定します (「認証資格」の値が「動的」に設定されている場合)。 

CallbackHandler は javax.security.auth.callback を実装するクラスです。ユーザー名コールバックハンドラ (javax.security.auth.callback.NameCallback) の場合、NameCallback を使用してユーザー名が取得されます。これは、セキュリティー機構でクライアントがユーザー名とパスワードを指定するよう要求されている場合に必要です。CallbackHandler の呼び出しは、単純な J2SE Web サービスクライアントだけに適用されます。  

詳細については、WSIT Security Configuration Demystified を参照してください。

ユーザー名コールバックハンドラ

承認済みユーザーの名前を指定します (「認証資格」の値が「静的」に設定されている場合)。 

このオプションは開発環境での使用にのみ適しています。「デフォルトユーザー」と「デフォルトパスワード」を指定すると、ユーザー名とパスワードは wsit-client.xml ファイルに平文で保存され、それによってセキュリティーリスクが発生します。本稼働環境にはこのオプションを使用しないでください。 

ユーザー名

パスワードコールバックハンドラまたはパスワード

ユーザー名コールバックハンドラを指定します (「認証資格」の値が「動的」に設定されている場合)。 

パスワードコールバックハンドラ (javax.security.auth.callback.PasswordCallback) の場合、PasswordCallback を使用してパスワードが取得されます。これは、セキュリティー機構でクライアントがユーザー名とパスワードを指定するよう要求されている場合に必要です。CallbackHandler の呼び出しは、単純な J2SE Web サービスクライアントだけに適用されます。  

詳細については、WSIT Security Configuration Demystified を参照してください。

パスワードコールバックハンドラ

承認済みユーザーのパスワードを指定します (「認証資格」の値が「静的」に設定されている場合)。 

このオプションは開発環境での使用にのみ適しています。「デフォルトユーザー」と「デフォルトパスワード」を指定すると、ユーザー名とパスワードは wsit-client.xml ファイルに平文で保存され、それによってセキュリティーリスクが発生します。本稼働環境にはこのオプションを使用しないでください。 

パスワード

SAML コールバックハンドラ 

SAML コールバックハンドラを指定します。デフォルトの SAML コールバックハンドラはないので、SAML コールバックハンドラを使用するにはそれを作成する必要があります。 

CallbackHandler は javax.security.auth.callback を実装するクラスです。SAML コールバックハンドラ (com.sun.xml.wss.impl.callback.SAMLCallback) は、セキュリティー機構でクライアントが SAML 表明 (Sender-Vouches や Holder-of-Key など) を指定するよう要求されている場合に必要です。 

詳細については、WSIT Security Configuration Demystified を参照してください。

SAML コールバックハンドラ

詳細設定

RM 再送信間隔 (ミリ秒) 

送信側が受信側に未確認のメッセージを再送信する時間間隔を、ミリ秒単位で指定します。デフォルトでは、再送信は 2000 ミリ秒ごとに行われます。 

2000 

RM クローズタイムアウト (ミリ秒) 

クライアントが close() 呼び出しの戻りを待機する時間を、ミリ秒単位で指定します。この時間に達したあとで未確認のメッセージが受信され、close の呼び出しが戻っている場合は、失われたメッセージに関するエラーがログに記録されます。

RM Ack 要求間隔 (ミリ秒) 

送信側が受信側に Ack 要求を再度送信するまでに最小限待つべき推奨間隔を、ミリ秒単位で指定します。 

200 

セキュリティー保護されたセッションのトークンの寿命 (ミリ秒) 

セキュリティー保護されたセッションの期間 (セッションが期限切れになる間隔) を指定します。 

36000 

セキュリティー保護されたセッションの期限切れトークンを再生 

セキュリティー保護されたセッションの期限切れトークンを再生するかどうかを指定します。 

チェックボックスが選択されている場合、有効になっていることを示します。 

セキュリティー保護されたセッションの取り消しを必要とする 

セキュリティー保護されたセッションの取り消しを有効にするかどうかを指定します。 

チェックボックスが選択されている場合、有効になっていることを示します。 

最大クロックスキュー (ミリ秒) 

送信側と受信側のシステムクロックの間に許容される最大の差を、ミリ秒単位で指定します。 

300000 

タイムスタンプの新しさの制限 (ミリ秒) 

タイムスタンプの新しさの制限をミリ秒単位で指定します。受信側は、受信したタイムスタンプの作成時刻が「タイムスタンプの新しさの制限」の期間より古い場合、これらを拒否します。 

300000 

デフォルトの証明書失効機構を使用する 

このオプションが選択されている場合は、ベースとなる PKIX サービスプロバイダのデフォルトの失効検査機構が使用されます。 

チェックボックスが選択されている場合、有効になっていることを示します。 

WS-Transaction の使用

HTTP バインディングコンポーネントは、Tango (WSIT) を介して使用できる WS-Atomic Transaction の実装である、WS-Transaction と統合されています。WS-AtomicTransaction 仕様は、2 フェーズのコミットプロトコルを定義して、トランザクションがすべて完了するか、そうでない場合はすべてロールバックされることを保証します。これは「オールオアナッシング」とも呼ばれます。トランザクションが成功したかどうかに応じて、登録されているトランザクション参加者はコミットまたは中止を決定します。両方の参加者に最終結果が通知されます。

SoapWSATCompositeApp サンプル複合アプリケーション

HTTP バインディングコンポーネントおよび BPEL サービスエンジンでの WS-Transaction の使用方法を示すサンプル複合アプリケーションについては、HTTP BC AtomicTransactions を参照してください。

サンプルでは、次の内容が示されています。

HTTP バインディングコンポーネントのクラスタ化サポート

クラスタは、0 個以上のサーバーインスタンスを含んでいる論理エンティティーです。簡単に言えば、クラスタはアプリケーションサーバーインスタンスの集まりであり、クラスタ化されたアプリケーションインスタンス全体に作業負荷を分散してパフォーマンスを最適化できます。このようなサーバーインスタンスは、同じアプリケーション、リソース、および設定情報を共有します。クラスタ化されたサーバーインスタンスは、1 つのクラスタだけに属し、すべてをその親クラスタから継承します。クラスタ内のインスタンスは、任意の数のコンピュータに分散している可能性があります。

Sun Java System Application Server では、単一のホストまたは複数のホストにインストールされた同種の (同じ JBI コンポーネント、アプリケーション、および設定情報を持つ) アプリケーションサーバーインスタンスをクラスタ化できます。各アプリケーションサーバーインスタンスで実行されるアプリケーションは独立していますが、Web ブラウザベースの (DAS) クライアントまたはコマンド行クライアントを介した管理インフラストラクチャーによって管理することもできます。

HTTP ロードバランサ

HTTP ロードバランサは、HTTP 要求および HTTPS 要求を受け入れ、それらをクラスタ内のアプリケーションサーバーインスタンスに分散する、Web サーバープラグインです。これにより、HTTP バインディングコンポーネントを水平に拡大縮小して、Sun Java System Application Server クラスタ内の複数のインスタンスで実行することができます。

クラスタ化には、次のような多数の利点があります。

HTTP ロードバランサには次の機能があります。

HTTP バインディングコンポーネントをクラスタ化用に設定する

HTTP バインディングコンポーネントをクラスタ化用に設定する処理の大部分は、Sun Java System Application Server (GlassFish) によって行われます。HTTP バインディングコンポーネントは、アプリケーションサーバーにインストール済みのコンポーネントです。デフォルトの HTTP および HTTPS ポート番号は、バインディングコンポーネントがサーバーインスタンスにインストールされたときに計算され、事前に割り当てられています。HTTP バインディングコンポーネントによって提供される Web サービスは、「http://<hostname>:<port>/<context>」という構造の一意の URL 識別子で識別されます。

クラスタ内の各コンポーネントインスタンスはリソースに対して排他的アクセスを持つ必要があるため、各コンポーネントインスタンスに一意のポート番号が割り当てられます。コンポーネントが各インスタンスに配備されるときに、WSDL アーティファクトで定義済みのトークン名を使用して、実際のポート値が解決されます。

定義済み HTTP ポートトークン

定義済みトークンの名前は次のとおりです。

これらのトークンは、アプリケーションクライアントが HTTP 要求をデフォルトポートに送信できるように、エンドポイント URL (soap:address) で実際のポート番号の代わりに使用されます。その後、アプリケーションの配備時に、トークンの値は設定されているデフォルト値に基づいて HTTP バインディングコンポーネントによって解決されます。


注 –

HTTP バインディングコンポーネントを再インストールした場合、各コンポーネントインスタンスのデフォルトポートを適切に設定する必要があります。


${HttpDefaultPort} トークンについて

ここでは、${HttpDefaultPort} トークンの概略と、アプリケーションの配備時にこれがどのように解決されるかについて説明します。

GlassFish Web サービスは常に指定の HTTP ポート (設定済みのデフォルトは 8080) に配備されますが、それと同様に HTTP バインディングコンポーネントにも、Web サービスが配備されるデフォルトの HTTP ポートがあります。HTTP バインディングコンポーネントは GlassFish にインストール済みのコンポーネントとして付属しているため、デフォルトの HTTP ポートが常に割り当てられています。デフォルトポートは、GlassFish のインストール時に JBI ランタイムモジュールで設定されます。その際、GlassFish ドメイン内の各 HTTP バインディングコンポーネントインスタンスに、使用可能なポートが割り当てられます。

最初、このデフォルトポート設定と ${HttpDefaultPort} トークンは、クラスタ化をサポートするために WSDL URL に置かれ、同じマシンで複数の HTTP BC インスタンスを実行できるようになっていました。そのため、各インスタンスに割り当てられたポートの実際のポート値は、衝突が発生しないように、アプリケーションの配備時にポートトークンを使用して解決されます。

それ以降、ポートの使用法が発展して、HTTP バインディングコンポーネント (JBI の Web サービスコンテナ) は GlassFish Web サービスコンテナと同様の動作をするようになりました。アプリケーションがバインディングコンポーネントに「到着」すると、バインディングコンポーネントはそのデフォルトの HTTP ポート設定を検索し、URL 内のトークンを実際のポート番号で置き換えます。デフォルトのポート番号が設定されていない場合は、「初期化失敗」例外がスローされます。

一般的なユーザーシナリオ

    次に示す一般的なユーザーシナリオは、特定のビジネス目標を達成するためにコンポーネントが外部のシステムとどのように対話するかを示しています。最初の 5 つのシナリオは design-time オペレーションに適用され、残りのシナリオは runtime オペレーションに適用されます。

  1. 「HTTP 拡張性要素を WSDL エディタから検証する」

  2. 「WSDL ドキュメントに SOAP テンプレートを追加する」

  3. 「WSDL ドキュメントに HTTP テンプレートを追加する」

  4. 「HTTP 基本認証を使用してオペレーションを呼び出す Web サービスクライアント」

  5. 「HTTP 基本認証で保護されたオペレーションを実装する Web サービス」

  6. 「SSL 認証を使用してオペレーションを呼び出す Web サービスクライアント」

  7. 「SSL 認証で保護されたオペレーションを実装する Web サービス」

HTTP 拡張性要素を WSDL エディタから検証する

この例では、HTTP 拡張性要素の検証を WSDL エディタから実行します。この例では、HTTP 拡張性要素を含んだ既存の WSDL ドキュメントで作業していると想定しています。

結果

エディタの下部に「WSDL 検証」ウィンドウが表示されます。通常フローの場合、エラーは見つからなかったというメッセージが表示されます。例外フローの場合、現在のエラーをすべて表示するダイアログが表示されます。

メインシナリオ

このシナリオは、通常フローと例外フローのどちらについても同じです。

  1. WSDL をダブルクリックして WSDL エディタを開きます。

  2. WSDL エディタのツールバーの「XML の検証」ボタンをクリックします。NetBeans IDE の下部に「出力」区画が表示されます。

  3. プロジェクトエクスプローラで WSDL ファイルを右クリックし、ポップアップメニューから「XML の検証」を選択します。検証結果が「出力」区画に表示されます。

WSDL ドキュメントに SOAP テンプレートを追加する

この例では、新規 WSDL ドキュメントウィザードを使用して SOAP 拡張性要素を生成します。

結果

生成された WSDL には、バインディングレベル、バインディングオペレーションレベル、バインディングオペレーション入力レベル、およびポートレベルに SOAP 拡張性要素が含まれています。バインディングレベルのサブタイプは、新規 WSDL ドキュメントウィザードの手順 4 で選択したバインディングサブタイプに設定されます。

メインシナリオ

  1. プロジェクトエクスプローラでプロジェクトを右クリックし、ポップアップメニューから「新規」>「WSDL ドキュメント」を選択することにより、新しい WSDL ドキュメントを作成します。新規 WSDL ドキュメントウィザードが表示されます。

  2. ウィザードの手順 1 から 3 に従って、新しい WSDL ドキュメントを生成します。

  3. ウィザードの手順 4 では、バインディングタイプとして「SOAP」を選択します。使用可能なバインディングサブタイプのオプションが「バインディングサブタイプ」フィールドに表示されます。

    適切なオプションを選択します。

    • RPC リテラル

    • ドキュメントリテラル

    • RPC エンコード

  4. 「完了」をクリックして WSDL ドキュメントを生成します。

WSDL ドキュメントに HTTP テンプレートを追加する

この例では、新規 WSDL ドキュメントウィザードを使用して HTTP 拡張性要素を生成します。

結果

生成された WSDL には、バインディングレベル、バインディングオペレーションレベル、バインディングオペレーション入力レベル、およびポートレベルに HTTP 拡張性要素が含まれています。バインディングレベルのサブタイプは、新規 WSDL ドキュメントウィザードの手順 4 で選択したバインディングサブタイプに設定されます。

メインシナリオ

  1. プロジェクトエクスプローラでプロジェクトを右クリックし、ポップアップメニューから「新規」>「WSDL ドキュメント」を選択することにより、新しい WSDL ドキュメントを作成します。新規 WSDL ドキュメントウィザードが表示されます。

  2. ウィザードの手順 1 から 3 に従って、新しい WSDL ドキュメントを生成します。

  3. ウィザードの手順 4 では、バインディングタイプとして「HTTP」を選択します。使用可能なバインディングサブタイプのオプションが「バインディングサブタイプ」フィールドに表示されます。

    適切なオプションを選択します。

    • Post オペレーション UrlEncoded

    • Post オペレーション UrlReplacement

    • Get オペレーション UrlEncoded

    • Get オペレーション UrlReplacement

  4. 「完了」をクリックして WSDL ドキュメントを生成します。

HTTP 基本認証を使用してオペレーションを呼び出す Web サービスクライアント

この例では、クライアントが HTTP 基本認証を必要とするサービスを呼び出します。この例では、HTTP 基本認証を処理するように設定されている WSDL を含んだ配備済みの BPEL プロジェクトを実行していると想定しています。この BPEL プロジェクトは、HTTP 基本認証を使用して保護されたサービスを呼び出します。

結果

このサービスは、セキュリティー資格を確認したあと、想定されている HTTP 経由の SOAP メッセージを処理します。

メインシナリオ

  1. Web サービスクライアントが、BPEL プロセスによって実装されている In-Only 抽象オペレーションを呼び出します。抽象オペレーションには具象 HTTP SOAP バインディングが存在するので、クライアントは SOAP over HTTP プロトコルを使用してオペレーションを適切に呼び出す必要があります。

  2. クライアントとして機能している BPEL プロセスは、抽象オペレーションのメッセージを受け取り、別の In-Only 抽象オペレーションを呼び出します。このオペレーションには、HTTP 基本認証を必要とする具象 HTTP SOAP バインディングが存在します。

  3. バインディングコンポーネントは正規化メッセージを受け取って SOAP メッセージに変換します。

  4. バインディングコンポーネントは、該当するユーザー名とパスワードを Access Manager または WSDL から取得します。

  5. バインディングコンポーネントは、メッセージおよび適切なセキュリティー資格をサービスに転送します。

HTTP 基本認証で保護されたオペレーションを実装する Web サービス

この例では、HTTP 基本認証で保護された BPEL プロジェクトを JBI で作成します。この例では、HTTP 基本認証を必要とするサービスを実装している BPEL プロセスを含んだ配備済みの BPEL プロジェクトを実行していると想定しています。

結果

JBI プロセスは、セキュリティー資格を確認したあと、想定されている HTTP 経由の SOAP メッセージを受け取ります。

メインシナリオ

  1. BPEL サービスエンジンは、実装しているオペレーションに基本認証を必要とします。

  2. HTTP バインディングコンポーネントは HTTP メッセージを受け取り、HTTP 基本認証のセキュリティー情報を解析します。

  3. バインディングコンポーネントは、Access Manager または WSDL にあるユーザー名とパスワードの既知のデータベースを使用して、セキュリティー情報を確認します。

  4. バインディングコンポーネントは正規化メッセージを作成し、正規化メッセージルーターに送信します。

  5. BPEL サービスエンジンに属する BPEL プロセスが、抽象メッセージを処理し、Done または ERROR のどちらかの状態メッセージを返します。

SSL 認証を使用してオペレーションを呼び出す Web サービスクライアント

この例では、クライアントが SSL 認証を必要とするサービスを呼び出します。この例では、SSL 認証用に設定されている WSDL を含んだ配備済みの BPEL プロジェクトを実行していると想定しています。この BPEL プロジェクトは、SSL 認証によって保護されたサービスを呼び出します。

結果

サービスは、セキュリティー資格を確認したあと、想定されている HTTP 経由の SOAP メッセージを受け取ります。

メインシナリオ

  1. BPEL プロセスは、サービスの実装に対してクライアントとして機能します。抽象オペレーションには具象 HTTP SOAP バインディングが存在するので、クライアントは SOAP over HTTP プロトコルを使用してオペレーションを適切に呼び出す必要があります。

  2. HTTP バインディングコンポーネントは SOAP メッセージを受け取り、正規化メッセージに変換してから、正規化メッセージルーターおよび待ち受けている BPEL プロセスに転送します。

  3. クライアントとして機能している BPEL プロセスは、抽象オペレーションのメッセージを受け取り、別の In-Only 抽象オペレーションを呼び出します。このオペレーションには、SSL 認証を必要とする具象 HTTP SOAP バインディングが存在します。

  4. クライアント BPEL プロセスが抽象オペレーションを呼び出すと、正規化メッセージが生成され、正規化メッセージルーターに送信されます。

  5. バインディングコンポーネントは正規化メッセージを受け取って SOAP メッセージに変換します。

  6. バインディングコンポーネントは、サービスプロバイダとの間にセキュリティー保護された通信を確立し、要求を転送します。

SSL 認証で保護されたオペレーションを実装する Web サービス

この例では、サーバーが SSL 認証を必要とするサービスを実装します。この例では、SSL 認証を必要とするサービスを実装している BPEL プロセスを含んだ BPEL プロジェクト配備済みであると想定しています。

結果

サービスは、セキュリティー資格を確認したあと、想定されている HTTP 経由の SOAP メッセージを受け取ります。

メインシナリオ

  1. Web サービスクライアントが、BPEL プロセスによって実装されている In-Only 抽象オペレーションを呼び出します。このオペレーションには具象 HTTP SOAP バインディングが存在するので、クライアントは HTTP プロトコルを使用してオペレーションを適切に呼び出す必要があります。

  2. バインディングコンポーネントは SSL ハンドシェークを開始し、クライアントとのセキュリティー保護された通信を確立します。

  3. バインディングコンポーネントは HTTP メッセージを受け取り、SSL 認証のセキュリティー情報を解析します。

  4. バインディングコンポーネントは、既知の SSL 証明書を使用してセキュリティー情報を確認します。

  5. バインディングコンポーネントは正規化メッセージを作成し、正規化メッセージルーターに送信します。

  6. BPEL プロセスが抽象メッセージを処理し、Done または ERROR のどちらかの状態メッセージを返します。