Web Services Atomic Transaction のセキュリティー
Web Services Atomic Transaction (WS-AT) では、プロトコルの一部として使用される固有の内部 Web サービスを定義しています。 これらの内部 Web サービスは、トランザクション開始中と、コミットメント処理またはロールバック処理中に呼び出されます。 その間、WS-AT は両方向の通信を必要とします。 WS-AT では、一般的なファイアウォール環境で動作するには Liberty サーバーの DMZ プロキシーが必要であり、また許可を取得するには HTTPS エンドポイントが必要です。 以下の内容では、Liberty で WS-AT のためにプロキシーおよび Security Socket Layer (SSL) を構成する方法を説明します。
ファイアウォール・プロキシー
Liberty サーバーが一般的なファイアウォール環境にある場合、サーバーは、ファイアウォールを通じて相互に通信できません。 この状況の場合、サーバーが正常に動作するには、DMZ プロキシーが必要です。 プロキシー・エンドポイントの定義は、server.xml ファイルを構成して行えます。
例えば、IBM HTTP Server (IHS) を DMZ プロキシーとして設定します。
図 1 で、
IHS を介して 2 つの Liberty サーバー間で通信するには、次のステップを実行します。
- Liberty サーバーに要求を転送するように IHS プラグインを構成します。
詳しくは、
Liberty の Web サーバー・プラグインの構成を参照してください。
- IHS 1 では、Liberty A に要求を転送するように IHS 1 プラグインを構成し、<UriGroup> 項目に <Uri Name="/ibm/wsatservice/*" /> を追加します。
- IHS 2 では、Liberty B に要求を転送するように IHS 2 プラグインを構成し、<UriGroup> 項目に <Uri Name="/ibm/wsatservice/*" /> を追加します。
- Liberty で server.xml ファイルに externalURLPrefix パラメーターを追加します。
- Liberty A で、次のようにして externalURLPrefix 値を IHS 1 の http://proxyserver1:80 に設定します。
<wsAtomicTransaction externalURLPrefix="http://proxyserver1:80"/>
- Liberty B で、次のようにして externalURLPrefix 値を IHS 2 の http://proxyserver2:81 に設定します。
<wsAtomicTransaction externalURLPrefix="http://proxyserver2:81"/>
- Liberty A で、次のようにして externalURLPrefix 値を IHS 1 の http://proxyserver1:80 に設定します。
図 1. IHS を介した 2 つの Liberty サーバーの通信

Security Socket Layer
デフォルトでは、Liberty サーバーは SSL を使用せずに通信します。 WS-AT セキュリティーが必要で、セキュリティー情報がセキュア・ポートにリダイレクトされる場合、 appSecurity-2.0 の Liberty フィーチャーを server.xml ファイルに追加する必要があります。 Liberty およびそのアプリケーションの保護に従って、 Liberty で SSL を有効にすることもできます。
以下の項目に従って、WS-AT セキュリティーに SSL を構成できます。
<wsAtomicTransaction SSLEnabled="false" SSLRef="defaultSSLConfig" clientAuth="false"/>
各部の意味は、次のとおりです。- SSLEnabled
- WS-AT に SSL を有効にするかどうかを指定します。有効な値は true と false です。デフォルト値は false です。SSL を有効にするには、これを true に設定します。
- SSLRef
- server.xml ファイルに SSL 構成を定義します。 WS-AT は、通信にこの SSL 構成を必要とします。
- clientAuth
- WS-AT に clientAuthentication を有効にするかどうかを指定します。有効な値は true と false です。デフォルト値は false です。 clientAuthentication を有効にするために clientAuth 値を true に設定する前に、必ず、 SSL 構成で clientAuthenticationSupported 値を true に設定してください。
重要: SSL 構成は、Liberty サーバー・レベルのみで適用されます。
ヒント: 以下のコード・スニペットで、デフォルトの SSLEnabled 値は false です。
SSL とプロキシーの両方を有効にする場合は、
SSLEnabled 値を true に設定し、
externalURLPrefix 値を https:// で始まるプロキシー・アドレスに設定します。
<wsAtomicTransaction SSLEnabled="false" SSLRef="defaultSSLConfig" externalURLPrefix="" clientAuth="false"/>