プラットフォーム構成とバインディングの概要
Web Services Security ポリシーは、JAX-RPC プログラミング・モデルを使用している場合は Web サービス・デプロイメント記述子の IBM® 拡張で指定され、JAX-WS プログラミング・モデルを使用している場合はポリシー・セットで指定されます。Web Services Security ポリシーをサポートするためのバインディング情報は、JAX-RPC および JAX-WS のどちらのプログラミング・モデルの場合も、Web サービス・デプロイメント記述子の IBM 拡張で保管されます。

これらのファイルは複雑であり、エラーの原因となる可能性があるため、 テキスト・エディターを使用して手動でデプロイメント記述子およびバインディング・ファイルを編集することはお勧めできません。 ただし、IBM が提供するツールを使用して、アプリケーション用の Web Services Security 制約を構成することは推奨されています。これらのツールは、WebSphere Application Server 管理コンソールまたはアセンブリー・ツールです。IBM アセンブリー・ツールについて詳しくは、『アセンブリー・ツール』の情報を参照してください。
WebSphere Application Server のポリシー・セットを使用することで、Web サービスの構成を簡素化することができます。 これは、ポリシー・セットによって、セキュリティーおよびその他の Web サービス設定が、再使用可能なユニットにグループ化されるためです。 ポリシー・セットとは、サービスの品質が定義される方法についての表明です。 ポリシー・セットは、複数のポリシー・タイプと、その設定を取り込んだものです。
アプリケーション・デプロイメント記述子およびバインディング・ファイルのほか、WebSphere Application Server バージョン 6 以降ではセル・レベルおよびサーバー・レベルの構成を持っています。これらの構成は、すべてのアプリケーションに対してグローバルです。 WebSphere Application Server バージョン 6 以降は 5.x アプリケーションをサポートしているため、構成のうちのいくつかはバージョン 5.x アプリケーションにのみ有効であり、いくつかはバージョン 6 以降のアプリケーションにのみ有効です。
以下の図は、 アプリケーション・デプロイメント記述子およびバインディング・ファイルのセル・レベル (WebSphere Application Server Network Deployment のみ) およびサーバー・レベルの構成に対する関係を表しています。
プラットフォーム構成
- Nonce キャッシュ・タイムアウト
- このオプションは、セル・レベル (WebSphere Application Server Network Deployment のみ) およびサーバー・レベルにありますが、 nonce のキャッシュ・タイムアウト値を秒単位で指定します。
- Nonce 最大存続期間
- このオプションは、セル・レベル (WebSphere Application Server Network Deployment のみ) およびサーバー・レベルにありますが、nonce のデフォルトの存続期間を秒単位で指定します。
- Nonce クロック・スキュー
- このオプションは、セル・レベル (WebSphere Application Server Network Deployment のみ) およびサーバー・レベルにありますが、 デフォルトのクロック・スキューを、ネットワーク遅延、処理遅延などのアカウントに対して指定します。 nonce の有効期限が切れる時期の計算に使用されます。 単位は秒です。
- 分散 nonce キャッシング
- この機能によって、クラスター内の異なるサーバーに、nonce 用のキャッシュを分散することができます。 この機能は、WebSphere Application Server バージョン 6.0.x 以降に使用できます。
- 鍵ロケーター
- この機能は、署名、暗号化、および暗号化解除のために鍵を検索する方法を指定します。 鍵ロケーターの実装クラスは、WebSphere Application Server バージョン 6 以降とバージョン 5.x では異なります。
- コレクション証明書ストア
- この機能は、証明書パス検証の証明書ストアを指定します。 通常は、PKCS#7 フォーマットでエンコードされた証明書取り消しリストを使用して、 署名検査または X.509 トークンの構成の際に X.509 トークンを妥当性検査するために使用されます。 証明書取り消しリストは、WebSphere Application Server バージョン 6.x 以降のアプリケーションのみでサポートされています。
- トラスト・アンカー
- この機能は、署名者証明書のトラスト・レベルを指定し、通常、シグニチャー検査の際に X.509 トークン検証で使用されます。
- トラステッド ID エバリュエーター
- この機能は、ID のトラスト・レベルの検証方法を指定します。 この機能は、ID アサーションで使用されます。
- ログイン・マッピング
- この機能は、認証メソッドに対するログイン構成バインディングを指定します。 この機能は、WebSphere Application Server バージョン 5.x アプリケーションによってのみ使用されるもので、お勧めできません。
デフォルト・バインディング
デフォルトのセル・レベル・バインディングおよびデフォルトのサーバー・レベル・バインディングの構成は、WebSphere Application Server では変更されました。従来は、セルについてはデフォルト・バインディングのセットを 1 つのみ構成でき、オプションで、サーバーごとにデフォルト・バインディングのセットを 1 つ構成できました。 バージョン 7.0 以降では、1 つ以上の一般プロバイダー・バインディングと 1 つ以上の一般クライアント・バインディングを構成できます。ただし、デフォルトとして指定できるのは、1 つの汎用プロバイダー・バインディングと 1 つの汎用クライアント・バインディングのみです。
以下の図は、アプリケーションのエンタープライズ・アーカイブ (EAR) ファイルと ws-security.xml ファイルの間の関係を示しています。
アプリケーション EAR 1 および EAR 2 は、アプリケーション・バインディング・ファイル内に固有のバインディングを持っています。 ただし、アプリケーション EAR 3 および EAR 4 では、アプリケーション・バインディング・ファイル内にバインディ ングが存在しません。ws-security.xml ファイル内で定義されたデフォルトのバインディングを 使用するためには、このバインディングを参照する必要があります。 構成は、階層内の一番近い構成によって解決されます。 例えば、アプリケーション・バインディング・ファイル、サーバー・レベル、 およびセル・レベルで定義された mykeylocator という名前の 3 つの鍵ロケーターがあるとします。
mykeylocator がアプリケーション・バインディングで参照される場合は、 アプリケーション・バインディングで定義された鍵ロケーターが使用されます。 データの可視性スコープは、そのデータが定義された場所によって変わります。 データがアプリケーション・バインディング内で定義された場合は、その可視性はその特定のアプリケーションにスコープ宣言されます。 データがサーバー・レベルで定義された場合は、その可視性スコープは、そのサーバー上でデプロイされたすべてのアプリケーションです。 データがセル・レベルで定義された場合は、その可視性スコープは、そのセル内のサーバー上でデプロイされたすべてのアプリケーションです。 一般的に、データを他のアプリケーションと共有するつもりがないなら、アプリケーション・バインディング・レベルで構成を定義します。
以下の図は、アプリケーション・レベル、サーバー・レベル、およびセル (WebSphere Application Server Network Deployment のみ) レベルのバインディングの関係を示しています。
汎用バインディング
汎用バインディングは、セル・レベルまたはサーバー・レベルでのデフォルト・バインディングとして使用されます。WebSphere Application Server に付属する汎用バインディングは当初はデフォルトのバインディングとして設定されていますが、別のバインディングをデフォルトとして選択したり、デフォルトとして使用されるバインディングのレベルを変更 (例えば、セル・レベル・バインディングからサーバー・レベル・バインディングに変更) したりできます。
バージョン 7.0 以降では、アプリケーション固有のバインディングと汎用バインディングの、2 種類のバインディングがあります。どちらのタイプのバインディングも WS-Security ポリシー・セットでサポートされます。汎用バインディングは、複数のアプリケーションで共有したり、トラスト・サービスの関連付け用に共有したりできます。一般バインディングには、サービス・プロバイダー用とサービス・クライアント用の、2 つのタイプがあります。複数の汎用バインディングをプロバイダーに、そしてクライアントにも定義することができます。