WebSphere® Application Server は、
クラスター環境でメッセージ・レベル保護を提供します。Web サービスのセキュアな会話 (WS-SecureConversation) を使用することで、クラスター環境内の Java™ API for XML Web サービス 2.0 (JAX-WS)
Web サービスをメッセージ・レベルで保護できます。
始める前に
セキュリティー・コンテキスト・トークン (SCT) で保護されている Web サービス要求はクラスターの 1 つのサーバーにルーティングされますが、
その SCT はクラスターの別のサーバーによって発行されたか更新された可能性があります。WebSphere
Application Server 分散キャッシュが複製されるように構成されていないか、迅速に複製されない場合、
要求を処理しているサーバーが SCT へのアクセス権限を持たない可能性があります。このトピックで説明するタスク・ステップは、クラスター・メンバーの複製設定が Web Services Security 分散キャッシュの非同期更新に設定されている場合にのみ実行する必要があります。
キャッシュ更新設定について詳しくは、『同期更新およびトークン・リカバリーを使用した分散キャッシュの使用可能化』トピックを参照してください。また、Web Services Security 分散キャッシュをデフォルト設定で使用可能にすることもできます。この場合、クラスター・メンバーの同期更新が可能となります。
このタスクについて
クラスター環境でメッセージ・レベルで保護するために Secure Conversation を使用している場合に、
分散キャッシュおよびセッション・アフィニティーを使用可能にするには、以下のハイレベル手順を実行してください。
手順
- セキュリティー・コンテキスト・トークンの分散キャッシュを使用可能にします。
- WebSphere Application Server の管理コンソールで、をクリックします。
- 「分散キャッシングを使用可能にする」チェック・ボックスを選択します。
- ラジオ・ボタンをクリックして、「クラスター・メンバーの非同期更新」を選択します。
- 「適用」をクリックしてから「保存」をクリックして、構成を保存します。
- 複製ドメインを作成します。次のステップを実行します。
- 管理コンソールで、の順にクリックします。
- 名前を入力します。例えば ABCDomain などです。
- 「レプリカの数」の下で、「ドメイン全体」オプションを選択します。
- 「OK」をクリックしてから「保存」をクリックして、構成を保存します。
- 動的キャッシュを使用可能にします。
クラスターの各サーバーに対して以下の手順を実行します。
- 管理コンソールで、とクリックします。
- 「キャッシュ複製を使用可能にする」オプションを選択します。
- 作成した複製ドメイン名を選択します。例えば ABCDomain などです。
- 「push と pull の両方」として複製タイプを選択します。
- 「OK」をクリックしてから「保存」をクリックして、構成を保存します。
- オプション: 分散キャッシュのバッチ更新間隔を変更します。 デフォルトでは、分散キャッシュのバッチ更新間隔
は 1,000 ミリ秒です。ただし、この間隔を 1,000 ミリ秒より小さい
値に設定することができます。値を
変更するには、クラスター内の各サーバーごとに以下の手順を実行します。
- 管理コンソールで、とクリックします。
- com.ibm.ws.cache.CacheConfig.batchUpdateInterval プロパティー名を入力します。
- プロパティー値を入力します。
- 「OK」をクリックしてから「保存」をクリックして、構成を保存します。
- セッション・アフィニティーをサポートする Web サーバーまたはプロキシー・サーバーをインストールおよび構成します。IBM®
HTTP Server および WebSphere Application Server プロキシー・サーバーは、
セッション・アフィニティーをサポートします。IBM HTTP
Server のインストールおよび構成については、WebSphere Application
Server インフォメーション・センターで、トピック『Web サーバーとの通信』を参照してください。
- Web サーバーまたはプロキシー・サーバーが実行されているホストおよびポートに Web サービス要求を送信するように、
クライアント・システムを構成します。Web サーバーまたはプロキシー・サーバーでは、適切なクラスター・メンバーに要求がルーティングされます。
- Web Services Secure Conversation を使用して保護される、Web サービス要求を
受信しているサービスで、HTTP トランスポート・セッション使用可能ポリシー・オプションを選択します。次の手順を実行してポリシー・セット構成を完了します。
- サービスで使用されているポリシー・セットに HTTP トランスポート・ポリシーを追加します。
- HTTP トランスポート・ポリシー用の構成パネルで、「セッションの有効化」を選択します。
- 「OK」をクリックしてから「保存」をクリックして、構成を保存します。
- Web サービス要求を送信しており、Secure Conversation で保護されている
クライアント・システムで、HTTP トランスポート維持セッション・プロパティーを使用可能にします。ポリシー・セット構成を完了するか、
プロパティーをプログラマチックに設定します。 構成でポリシー・セットを使用している場合、次の手順を実行してください。
- クライアントで使用されているポリシー・セットに HTTP トランスポート・ポリシーを追加します。
- 「HTTP トランスポート・ポリシー構成」パネルで、「セッションの有効化」オプションを選択します。
- 「OK」をクリックしてから「保存」をクリックして、構成を保存します。
タスクの結果
構成が完了した後、クラスター環境で secure conversation を使用している場合に、
分散キャッシュおよびセッション・アフィニティーを使用可能にしました。要求を処理しているサーバーに SCT へのアクセス権限がない場合、
Either null SCT or invalid SCT のエラーで要求に失敗します。
例
以下の例 (コード の一部) は、セッション維持プロパティーを適切な JAX-WS オブジェクトにプログラマチックに設定する方法を示しています。
Map<String> rc = ((BindingProvider) port).getRequestContext();
...
rc.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
... </String>