メッセージセキュリティーを使用できるように Application Server を設定する手順のほとんどは、管理コンソールまたは asadmin コマンド行ツールを使用するか、あるいはシステムファイルを手動で編集することで実現できます。一般に、システムファイルの編集はお勧めできません。なぜなら、Application Server が適切に動作しなくなるような変更を間違って施してしまう可能性があるからです。したがって、できるだけ、管理コンソールによる Application Server の設定手順を最初に示し、その後に asadmin ツールコマンドによる手順を示しています。システムファイルを手動で編集する手順は、管理コンソールと asadmin に同等の方法が存在しない場合にだけ示しています。
メッセージレイヤーセキュリティーのサポートは、プラグイン可能な認証モジュールの形式で Application Server とそのクライアントコンテナに統合されています。Application Server では、メッセージレイヤーセキュリティーはデフォルトで無効になっています。次の各節では、メッセージセキュリティー設定とプロバイダを有効化、作成、編集、および削除する方法について、詳しく説明します。
「アプリケーションクライアントのメッセージセキュリティーを有効にする」
ほとんどの場合、上記の管理操作を実行したあとで Application Server を再起動する必要があります。特に、操作実行時に Application Server 上にすでに配備されていたアプリケーションに管理上の変更を適用したい場合に Application Server の再起動が必要となります。
Application Server 上に配備された Web サービスエンドポイントのメッセージセキュリティーを有効にするには、サーバー側でデフォルトで使用されるプロバイダを指定する必要があります。メッセージセキュリティーのデフォルトプロバイダを有効にする場合、Application Server 上に配備された Web サービスクライアントが使用するプロバイダも有効にする必要があります。クライアントが使用するプロバイダを有効にする方法については、「アプリケーションクライアントのメッセージセキュリティーを有効にする」を参照してください。
配備済みエンドポイントからの Web サービス呼び出しに対するメッセージセキュリティーを有効にするには、デフォルトクライアントプロバイダを指定する必要があります。Application Server のデフォルトクライアントプロバイダを有効にした場合、Application Server 内に配備されたエンドポイントから呼び出されるすべてのサービスが、メッセージレイヤーセキュリティー用に正しく設定されていることを確認する必要があります。
管理コンソールのツリーコンポーネントで、「設定」ノードを展開します。
設定するインスタンスを選択します。
「セキュリティー」ノードを展開します。
「メッセージセキュリティー」ノードを展開します。
「SOAP」ノードを選択します。
「メッセージセキュリティー」タブを選択します。
「メッセージセキュリティー設定の編集」ページで、特定のプロバイダがバインドされていないすべてのアプリケーションに対して、サーバー側で使用されるプロバイダとクライアント側で使用されるプロバイダを指定します。
それには、次の各オプションプロパティーを変更します。
デフォルトプロバイダ – 特定のサーバープロバイダがバインドされていない任意のアプリケーションに対して呼び出されるサーバープロバイダの ID。
デフォルトでは、Application Server に対して、プロバイダの設定は何も選択されていません。サーバー側のプロバイダを特定するには、ServerProvider を選択します。null オプションの選択は、サーバー側ではメッセージセキュリティープロバイダがデフォルトで何も呼び出されないことを意味します。
通常、このフィールドでは ServerProvider を選択します。
デフォルトクライアントプロバイダ – 特定のクライアントプロバイダがバインドされていない任意のアプリケーションに対して呼び出されるクライアントプロバイダの ID。
デフォルトでは、Application Server に対して、プロバイダの設定は何も選択されていません。クライアント側のプロバイダを特定するには、ClientProvider を選択します。null オプションの選択は、クライアント側ではメッセージセキュリティープロバイダがデフォルトで何も呼び出されないことを意味します。
通常、このフィールドでは null を選択します。ClientProvider は、Application Server 上に配備された Web サービスエンドポイントからの Web サービス呼び出しに適用するデフォルトプロバイダとメッセージ保護ポリシーを有効にする場合に選択します。
「保存」をクリックします。
特定のクライアントプロバイダまたはサーバープロバイダを有効にしたあとで、その有効になったプロバイダのメッセージ保護ポリシーを変更する場合には、「メッセージセキュリティープロバイダを設定する」を参照し、この手順で有効にしたメッセージセキュリティープロバイダを変更する方法を確認してください。
デフォルトサーバープロバイダを指定するには、次のコマンドを実行します。
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 |
プロバイダの再設定は通常、そのメッセージ保護ポリシーを変更するために行われますが、プロバイダのタイプ、実装クラス、およびプロバイダ固有の設定プロパティーも変更可能です。
管理コンソールのツリーコンポーネントで、「設定」ノードを展開します。
設定するインスタンスを選択します。
「セキュリティー」ノードを展開します。
「メッセージセキュリティー」ノードを展開します。
「SOAP」ノードを選択します。
「プロバイダ」タブを選択します。
編集するメッセージセキュリティープロバイダを選択します。
Application Server には ClientProvider と ServerProvider が付属しています。
「プロバイダ設定の編集」の「プロバイダ設定」セクションで、次のプロパティーが変更に使用できます。
プロバイダタイプ – client、server、または client-server を選択して、プロバイダがクライアント認証プロバイダ、サーバー認証プロバイダ、あるいはこの両方 (クライアント - サーバープロバイダ) のいずれかとして使用されるようにします。
クラス名 - プロバイダの Java 実装クラスを入力します。クライアント認証プロバイダは、com.sun.enterprise.security.jauth.ClientAuthModule インタフェースを実装する必要があります。サーバー側プロバイダは、com.sun.enterprise.security.jauth.ServerAuthModule インタフェースを実装する必要があります。プロバイダはどちらのインタフェースも実装可能ですが、プロバイダタイプに対応したインタフェースを実装している必要があります。
「プロバイダ設定の作成」ページの「要求ポリシー」セクションで、必要に応じて、次のオプションの値を入力します。
これらのプロパティーはオプションですが、指定されない場合、認証はメッセージの要求にまったく適用されません。
「要求ポリシー」は、認証プロバイダが実行する要求処理に関連付けられた認証ポリシー要件を定義します。ポリシーはメッセージ送信者の順序で送信されます。この順序では、コンテンツのあとで暗号化するという要件は、メッセージ受信者がメッセージの復号化を行なってから署名の検証を想定することを意味しています。
認証元– sender、content、または null (空白オプション) を選択して、メッセージレイヤー送信者認証 (ユーザー名、パスワードなど)、コンテンツ認証 (デジタル署名など) の要件を定義するか、あるいはメッセージの要求に認証を適用しないようにします。null が指定される場合、要求のソース認証は必須ではありません。
認証受信者– beforeContent または afterContent を選択し、XML 暗号化などを使用して、送信者に対する要求メッセージの受信者のメッセージレイヤー認証要件を定義します。値が指定されない場合、デフォルトでは afterContent に指定されます。
SOAP メッセージセキュリティープロバイダがメッセージ保護ポリシーに従った決定として実行されるアクションについては、「要求および応答ポリシー設定のアクション」を参照してください。
「プロバイダ設定の作成」ページの「応答ポリシー」セクションで、必要に応じて、次のオプションの値を入力します。
これらのプロパティーはオプションですが、指定されない場合、認証はメッセージの応答にまったく適用されません。
「応答ポリシー」は、認証プロバイダが実行する応答処理に関連付けられた認証ポリシー要件を定義します。ポリシーはメッセージ送信者の順序で送信されます。この順序では、コンテンツのあとで暗号化するという要件は、メッセージ受信者がメッセージの復号化を行なってから署名の検証を想定することを意味しています。
認証元 – sender、content、または null (空白オプション) を選択して、メッセージの応答に適用されるように、メッセージレイヤー送信者認証 (ユーザー名、パスワードなど) またはコンテンツ認証 (デジタル署名など) の要件を定義します。null が指定される場合、応答のソース認証は必須ではありません。
認証受信者 – beforeContent または afterContent を選択し、XML 暗号化などを使用して、送信者に対する応答メッセージの受信者のメッセージレイヤー認証要件を定義します。値が指定されない場合、デフォルトでは afterContent に指定されます。
SOAP メッセージセキュリティープロバイダがメッセージ保護ポリシーに従った決定として実行されるアクションについては、「要求および応答ポリシー設定のアクション」を参照してください。
「プロパティーを追加」ボタンをクリックして、プロパティーをさらに追加します。
Application Server に同梱されるプロバイダは、次に表示するプロパティーをサポートします。ほかのプロバイダが使用されている場合、プロパティーおよび有効な値の詳細については、該当するドキュメントを参照してください。
server.config – サーバー設定情報を収める XML ファイルのディレクトリおよびファイル名。たとえば、domain-dir/config/wss-server-config.xml。
「保存」をクリックします。
応答ポリシーを設定するには、次のコマンドの 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」ノードを選択します。
「プロバイダ」タブを選択します。
「プロバイダ設定」ページで、「新規」をクリックします。
「プロバイダ設定の作成」ページの「プロバイダ設定」セクションで、次を入力します。
デフォルトプロバイダ – このフィールドの横にあるボックスをオンにして、新しいメッセージセキュリティープロバイダを、特定のプロバイダがバインドされていない任意のアプリケーションに対して呼び出されるプロバイダとして指定します。このプロバイダが、デフォルトクライアントプロバイダ、デフォルトサーバープロバイダ、その両方のいずれになるかは、「プロバイダタイプ」の値によって決まります。
プロバイダタイプ – client、server、または client-server を選択して、プロバイダがクライアント認証プロバイダ、サーバー認証プロバイダ、あるいはこの両方 (クライアント - サーバープロバイダ) のいずれかとして使用されるようにします。
プロバイダ ID - このプロバイダ設定の ID を入力します。この名前は「現在のプロバイダ設定」リストに表示されます。
クラス名 - プロバイダの Java 実装クラスを入力します。クライアント認証プロバイダは、com.sun.enterprise.security.jauth.ClientAuthModule インタフェースを実装する必要があります。サーバー側プロバイダは、com.sun.enterprise.security.jauth.ServerAuthModule インタフェースを実装する必要があります。プロバイダはどちらのインタフェースも実装可能ですが、プロバイダタイプに対応したインタフェースを実装している必要があります。
「プロバイダ設定の作成」ページの「要求ポリシー」セクションで、必要に応じて、次のオプションの値を入力します。
これらのプロパティーはオプションですが、指定されない場合、認証はメッセージの要求にまったく適用されません。
認証元– sender、content、または null (空白オプション) を選択して、メッセージレイヤー送信者認証 (ユーザー名、パスワードなど)、コンテンツ認証 (デジタル署名など) の要件を定義するか、あるいはメッセージの要求に認証を適用しないようにします。null が指定される場合、要求のソース認証は必須ではありません。
認証受信者– beforeContent または afterContent を選択し、XML 暗号化などを使用して、送信者に対する要求メッセージの受信者のメッセージレイヤー認証要件を定義します。値が指定されない場合、デフォルトでは afterContent に指定されます。
SOAP メッセージセキュリティープロバイダがメッセージ保護ポリシーに従った決定として実行されるアクションについては、「要求および応答ポリシー設定のアクション」を参照してください。
「プロバイダ設定の作成」ページの「応答ポリシー」セクションで、必要に応じて、次のオプションの値を入力します。
これらのプロパティーはオプションですが、指定されない場合、認証はメッセージの応答にまったく適用されません。
認証元 – sender、content、または null (空白オプション) を選択して、メッセージの応答に適用されるように、メッセージレイヤー送信者認証 (ユーザー名、パスワードなど) またはコンテンツ認証 (デジタル署名など) の要件を定義します。null が指定される場合、応答のソース認証は必須ではありません。
認証受信者 – beforeContent または afterContent を選択し、XML 暗号化などを使用して、送信者に対する応答メッセージの受信者のメッセージレイヤー認証要件を定義します。値が指定されない場合、デフォルトでは afterContent に指定されます。
SOAP メッセージセキュリティープロバイダがメッセージ保護ポリシーに従った決定として実行されるアクションについては、「要求および応答ポリシー設定のアクション」を参照してください。
「プロパティーを追加」ボタンをクリックして、プロパティーをさらに追加します。
Application Server に同梱されるプロバイダは、次に表示するプロパティーをサポートします。ほかのプロバイダが使用されている場合、プロパティーおよび有効な値の詳細については、該当するドキュメントを参照してください。
server.config – サーバー設定情報を収める XML ファイルのディレクトリおよびファイル名。たとえば、domain-dir/config/wss-server-config.xml。
「了解」をクリックしてこの設定を保存するか、「取消し」をクリックして保存しないで終了します。
create-message-security-provider
管理コンソールのツリーコンポーネントで、「設定」ノードを展開します。
設定するインスタンスを選択します。
「セキュリティー」ノードを展開します。
「メッセージセキュリティー」ノードを選択します。
削除する「メッセージセキュリティー設定」の左側のチェックボックスをクリックします。
「削除」をクリックします。
管理コンソールのツリーコンポーネントで、「設定」ノードを展開します。
設定するインスタンスを選択します。
「セキュリティー」ノードを展開します。
「メッセージセキュリティー」ノードを展開します。
「SOAP」ノードを選択します。
「プロバイダ」ページを選択します。
削除する「プロバイダ設定」の左側のチェックボックスをクリックします。
「削除」をクリックします。
delete-message-security-provider
クライアントプロバイダのメッセージ保護ポリシーは、通信相手となるサーバー側プロバイダのメッセージ保護ポリシーと等しくなるように設定する必要があります。Application Server のインストール時に設定された (しかしまだ有効化されていない) プロバイダでは、すでにそうなっています。
クライアントアプリケーションのメッセージセキュリティーを有効にするには、アプリケーションクライアントコンテナの Application Server 固有の設定を変更します。
クライアントコンテナ記述子に依存するすべてのクライアントアプリケーションを停止します。
テキストエディタで、domain-dir/config/sun-acc.xml に格納されている Sun アプリケーションクライアントコンテナ記述子を開きます。
このファイルに default-client-provider 要素を追加して、アプリケーションクライアントのデフォルトクライアントプロバイダを有効にします。
その他のコードは、クライアントアプリケーションのメッセージセキュリティーを有効にするコードを配置すべき場所を示すためにあります。実際のインストールでは、その他のコードが若干異なっている可能性があります。それらを変更しないでください。
<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"/> <response-policy/> <property name="security.config" value="C:/Sun/AppServer/lib/appclient/wss-client-config.xml"/> </provider-config> </message-security-config> </client-container> |
また、クライアントコンテナ内に設定されたメッセージセキュリティープロバイダは、非公開鍵と信頼できる証明書にアクセスする必要もあります。それには、アプリケーションクライアントの起動スクリプト内で、次のシステムプロパティーに適切な値を指定します。
-Djavax.net.ssl.keyStore
-Djavax.net.ssl.trustStore
「要求および応答ポリシー」は、認証プロバイダが実行する要求および応答処理に関連付けられた認証ポリシー要件を定義します。ポリシーはメッセージ送信者の順序で送信されます。この順序では、コンテンツのあとで暗号化するという要件は、メッセージ受信者がメッセージの復号化を行なってから署名の検証を想定することを意味しています。
メッセージセキュリティーを実現するには、サーバーとクライアントの両方で要求ポリシーと応答ポリシーが有効化されている必要があります。クライアントおよびサーバーのポリシーを設定する場合は、クライアントポリシーがアプリケーションレベルのメッセージのバインドで要求および応答保護のサーバーポリシーと一致する必要があります。
アプリケーションクライアント設定の要求ポリシーを設定するには、「アプリケーションクライアントのメッセージセキュリティーを有効にする」の説明に従って、アプリケーションクライアントコンテナの Application 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="install-dir/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 を参照してください。
『J2EE 1.4 Tutorial』の「Security」の章については、http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html を参照してください。
『 管理ガイド』の 第 9 章「セキュリティーの設定」。
『Developer’s Guide』の「Securing Applications」の章。
『Oasis Web Services Security: SOAP Message Security (WS-Security)』仕様については、http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf を参照してください。
『OASIS Web Services Security Username Token Profile 1.0』については、http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf を参照してください。
『OASIS Web Services Security X.509 Certificate Token Profile 1.0』については、http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0.pdf を参照してください。
XML-Signature Syntax and Processingドキュメントについては、http://www.w3.org/TR/xmldsig-core/ を参照してください。
XML Encryption Syntax and Processingドキュメントについては、http://www.w3.org/TR/xmlenc-core/ を参照してください。