メッセージセキュリティーを使用できるように Enterprise Server を設定する手順のほとんどは、管理コンソールまたは asadmin コマンド行ツールを使用するか、あるいはシステムファイルを手動で編集することで実現できます。一般に、システムファイルの編集はお勧めできません。なぜなら、Enterprise Server が適切に動作しなくなるような変更を間違って施してしまう可能性があるからです。したがって、できるだけ、管理コンソールによる Enterprise Server の設定手順を最初に示し、その後に asadmin ツールコマンドによる手順を示しています。システムファイルを手動で編集する手順は、管理コンソールと asadmin に同等の方法が存在しない場合にだけ示しています。
メッセージレイヤーセキュリティーのサポートは、プラグイン可能な認証モジュールの形式で Enterprise Server とそのクライアントコンテナに統合されています。Enterprise Server では、メッセージレイヤーセキュリティーはデフォルトで無効になっています。次の各節では、メッセージセキュリティー設定とプロバイダを有効化、作成、編集、および削除する方法について、詳しく説明します。
ほとんどの場合、上記の管理操作を実行したあとで Enterprise Server を再起動する必要があります。特に、操作実行時に Enterprise Server 上にすでに配備されていたアプリケーションに管理上の変更を適用する場合に Enterprise Server の再起動が必要となります。
Enterprise Server 上に配備された Web サービスエンドポイントのメッセージセキュリティーを有効にするには、サーバー側でデフォルトで使用されるプロバイダを指定する必要があります。メッセージセキュリティーのデフォルトプロバイダを有効にする場合、Enterprise Server 上に配備された Web サービスクライアントが使用するプロバイダも有効にする必要があります。クライアントが使用するプロバイダを有効にする方法については、「アプリケーションクライアントのメッセージセキュリティーの有効化」を参照してください。
配備済みエンドポイントからの Web サービス呼び出しに対してメッセージセキュリティーを有効にするには、デフォルトクライアントプロバイダを指定する必要があります。Enterprise Server のデフォルトクライアントプロバイダを有効にした場合、Enterprise Server 内に配備されたエンドポイントから呼び出されるすべてのサービスが、メッセージレイヤーセキュリティー用に正しく設定されていることを確認する必要があります。
コマンド行ユーティリティーを使用するには、次の手順に従います。
デフォルトサーバープロバイダを指定するには、次のコマンドを実行します。
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. default_provider=ServerProvider |
デフォルトクライアントプロバイダを指定するには、次のコマンドを実行します。
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. default_client_provider=ClientProvider |
プロバイダの再設定は、プロバイダタイプ、実装クラス、およびプロバイダ固有の設定プロパティーを変更するために実行することもできますが、通常はメッセージ保護ポリシーを変更するために実行します。
コマンド行ユーティリティーを使用して、応答ポリシーを設定する場合は、次のコマンドの request という単語を response に置き換えてください。
要求ポリシーをクライアントに追加して、認証元を設定します。
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ClientProvider.request-policy.auth_source= sender | content |
要求ポリシーをサーバーに追加して、認証元を設定します。
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ServerProvider.request-policy.auth_source= sender | content |
要求ポリシーをクライアントに追加して、認証受信者を設定します。
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ClientProvider.request-policy.auth_recipient= before-content | after-content |
要求ポリシーをサーバーに追加して、認証受信者を設定します。
asadmin set --user admin-user --port admin-port server-config.security-service.message-security-config.SOAP. provider-config.ServerProvider.request-policy.auth_recipient= before-content | after-content |
管理コンソールを使用して既存のプロバイダを設定するには、「設定」ノード > 設定するインスタンス >「セキュリティー」ノード >「メッセージセキュリティ」ノード >「SOAP」ノード >「プロバイダ」タブの順に選択します。
メッセージセキュリティープロバイダの作成方法については、管理コンソールのオンラインヘルプを参照してください。
クライアントプロバイダのメッセージ保護ポリシーは、通信相手となるサーバー側プロバイダのメッセージ保護ポリシーと等しくなるように設定する必要があります。Enterprise Server がインストールされるとき、プロバイダはデフォルトでそのように設定されます (ただし、有効化はされていない)。
クライアントアプリケーションのメッセージセキュリティーを有効にするには、アプリケーションクライアントコンテナの Enterprise Server 固有の設定を変更します。
「要求および応答ポリシー」は、認証プロバイダが実行する要求および応答処理に関連付けられた認証ポリシー要件を定義します。ポリシーはメッセージ送信者による順序で示されるので、「コンテンツのあと」ではメッセージ受信者が署名の検証前にメッセージを復号化することを意味します。
メッセージセキュリティーを実現するには、サーバーとクライアントの両方で要求ポリシーと応答ポリシーが有効化されている必要があります。クライアントおよびサーバーのポリシーを設定する場合は、クライアントポリシーがアプリケーションレベルのメッセージのバインドで要求および応答保護のサーバーポリシーと一致する必要があります。
アプリケーションクライアント設定の要求ポリシーを設定するには、「アプリケーションクライアントのメッセージセキュリティーの有効化」の説明に従って、アプリケーションクライアントコンテナの Enterprise Server 固有の設定を変更します。アプリケーションクライアント設定ファイル内で request-policy 要素と response-policy 要素を次のように追加することで、要求ポリシーを設定します。
その他のコードは参照用に用意されています。実際のインストールでは、その他のコードが若干異なっている可能性があります。変更しないでください。
<client-container> <target-server name="your-host" address="your-host" port="your-port"/> <log-service file="" level="WARNING"/> <message-security-config auth-layer="SOAP" default-client-provider="ClientProvider"> <provider-config class-name="com.sun.enterprise.security.jauth.ClientAuthModule" provider-id="ClientProvider" provider-type="client"> <request-policy auth-source="sender | content" auth-recipient="after-content | before-content"/> <response-policy auth-source="sender | content" auth-recipient="after-content | before-content"/> <property name="security.config" value="as-install/lib/appclient/wss-client-config.xml"/> </provider-config> </message-security-config> </client-container> |
auth-source の有効な値には、sender と content があります。auth-recipient の有効な値には、before-content と after-content があります。これらの値をさまざまに組み合わせた結果を記述した表については、「要求および応答ポリシー設定のアクション」を参照してください。
要求または応答ポリシーを指定しない場合は、この要素を空白のままにします。次に例を示します。
<response-policy/> |
Java 2 Standard Edition のセキュリティーに関する議論 (http://java.sun.com/j2se/1.4.2/docs/guide/security/index.html)
『Java EE 5.0 Tutorial』の「Security」の章 (http://java.sun.com/javaee/5/docs/tutorial/doc/index.html
『管理ガイドの』の章
『開発者ガイド』の「Securing Applications」の章
『XML-Signature Syntax and Processing』のドキュメント (http://www.w3.org/TR/xmldsig-core/)
『XML Encryption Syntax and Processing』のドキュメント (http://www.w3.org/TR/xmlenc-core/)