Web サービス・セキュリティー制約は、Java 2 Platform, Enterprise Edition (J2EE) の Web サービス・デプロイメント記述子の IBM 拡張内で定義されています。 Web サービス・セキュリティーの IBM 拡張デプロイメント記述子およびバインディングは、IBM の所有です。
これらのファイルは複雑であり、エラーの原因となる可能性があるため、 テキスト・エディターを使用して手動でデプロイメント記述子およびバインディング・ファイルを編集することはお勧めできません。 ただし、IBM が提供するツールを使用して、アプリケーション用の Web サービス・セキュリティー制約を構成することは推奨されています。 これらのツールは、WebSphere Application Server 管理コンソール、Rational Application Developer、Rational Web Developer、および Application Server Toolkit です。
ファイル・タイプ | クライアント・サイド | サーバー・サイド |
---|---|---|
デプロイメント記述子 | ibm-webservicesclient-ext.xmi | ibm-webservices-ext.xmi |
バインディング・ファイル | ibm-webservicesclient-bnd.xmi | ibm-webservices-bnd.xmi |
どのメッセージ部分が署名されるか、どのトークンが暗号化されるかといった、デプロイメント記述子内で指定される「対象」。 どのようにメッセージが署名されるか、 どのようにセキュリティー・トークンが生成され消費されるかといった、バインディング・ファイル内で指定される「方法」。
アプリケーション・デプロイメント記述子およびバインディング・ファイルのほか、 WebSphere Application Server バージョン 6 以降ではサーバー・レベルの Web セキュリティー・サービス構成を持っています。 これらの構成は、すべてのアプリケーションに対してグローバルです。 WebSphere Application Server バージョン 6 以降は 5.x アプリケーションをサポートしているため、構成の うちのいくつかはバージョン 5.x アプリケーションにのみ有効であり、いくつかはバージョン 6 以降のアプリケーションにのみ有効です。
以下の図は、 アプリケーション・デプロイメント記述子およびバインディング・ファイルのセル・レベル (Network Deployment のみ) およびサーバー・レベルの構成に対する関係を表しています。
デフォルト・バインディングの設定は 1 つのみで、複数のアプリケーションで共用することができます。 この機能は、WebSphere Application Server バージョン 6 以降のアプリケーションのみで使用可能です。
以下の図は、アプリケーションのエンタープライズ・アーカイブ (EAR) ファイルと ws-security.xml ファイルの間の関係を示しています。
アプリケーション EAR 1 および EAR 2 は、アプリケーション・バインディング・ファイル内に固有のバインディングを持っています。 ただし、アプリケーション EAR 3 および EAR 4 では、アプリケーション・バインディング・ファイル内にバインディ ングが存在しません。ws-security.xml ファイル内で定義されたデフォルトのバインディングを 使用するためには、このバインディングを参照する必要があります。 構成は、階層内の一番近い構成によって解決されます。 例えば、アプリケーション・バインディング・ファイルおよびサーバー・レベルで定義された mykeylocator という名前の鍵ロケーターがあるとします。
mykeylocator がアプリケーション・バインディングで参照される場合は、 アプリケーション・バインディングで定義された鍵ロケーターが使用されます。 データの可視性スコープは、そのデータが定義された場所によって変わります。 データがアプリケーション・バインディング内で定義された場合は、その可視性はその特定のアプリケーションにスコープ宣言されます。 データがサーバー・レベルで定義された場合は、その可視性スコープは、そのサーバー上でデプロイされたすべてのアプリケーションです。 一般的に、データを他のアプリケーションと共用するつもりがないなら、アプリケーション・バインディング・レベルで構成を定義します。
以下の図は、アプリケーション・レベル、サーバー・レベル、およびセル (Network Deployment のみ) レベルのバインディングの関係を示しています。