![]() ![]() ![]() ![]() |
この章では、Web サービス セキュリティをコンフィグレーションする方法について説明します。
転送レベルのセキュリティとは、セキュア ソケット レイヤ (SSL) を使用したクライアント アプリケーションと Web サービスの間の接続の保護です。
SSL に関する概要と WebLogic Server に含まれている実装については、「セキュア ソケット レイヤ (SSL)」を参照してください。
転送レベルの Web サービス セキュリティをコンフィグレーションするには、次の手順に従います。
一方向の SSL (WebLogic Server がクライアント アプリケーションに証明書を提示する必要がある)、または双方向の SSL (クライアント アプリケーションと WebLogic Server が両方とも互いに証明書を提示する必要がある) のいずれかをコンフィグレーションできます。
WebLogic Server コア セキュリティ サブシステムに対して、双方向および一方向の SSL をコンフィグレーションする手順については、「SSL のコンフィグレーション」を参照してください。
@weblogic.jws.security.UserDataConstaint
アノテーションを追加し、Web サービスが HTTPS 転送を使用して呼び出されることを要求します。
詳細については、「weblogic.jws.security.UserDataConstraint」を参照してください。
「WebLogic Web サービスの反復的な開発」を参照してください。
clientgen
Ant タスクを呼び出す build.xml
ファイルを更新して、Web サービスの JAX-RPC スタブの生成に、デプロイされているサービスの動的 WSDL ではなく、静的 WSDL を使用するようにします。
この場合に、clientgen
が動的 WSDL からスタブを生成できない理由は、@UserDataConstraint
アノテーションを指定する際に、すべてのクライアント アプリケーションで、clientgen
を含むトラストストアを指定することが必要であるためです。しかし現在、clientgen
でトラストストアを指定する方法はありません。したがって、Ant タスクは、動的 WSDL と同じ方法で Web サービスを記述する静的な WSDL からクライアント コンポーネントを生成しなければなりません。
-Djava.protocol.handler.pkgs=weblogic.net
-Dweblogic.security.SSL.trustedCAKeyStore=trustStore
trustStore
には、信頼性のある証明書 (そのうちの 1 つはサーバの証明書でなければならない) のリストを格納するクライアントサイドのトラストストアの名前を指定します。ホスト名検証を無効にするには、次のプロパティも指定します。
-Dweblogic.security.SSL.ignoreHostnameVerification=true
-Djavax.net.ssl.trustStore=trustStore
trustStore
には、信頼性のある証明書 (そのうちの 1 つはサーバの証明書でなければならない) のリストを格納するクライアントサイドのトラストストアの名前を指定します。ホスト名検証を無効にするには、次のプロパティも指定します。
-Dweblogic.wsee.client.ssl.stricthostchecking=false
双方向 SSL の詳細については、「クライアント アプリケーションでの双方向 SSL のコンフィグレーション」を参照してください。
WebLogic Server で双方向 SSL をコンフィグレーションした場合は、一方向 SSL で必要なように WebLogic Server がクライアント アプリケーションに証明書を提示するだけでなく、クライアント アプリケーションも WebLogic Server に証明書を提示する必要があります。さらに、以下の要件も満たしている必要があります。
J2SE の SSL パッケージでは、クライアントのプライベート キーのパスワードはクライアントのキーストアのパスワードと同じでなければなりません。このため、クライアントのキーストアには 1 つのプライベート キーと X.509 証明書のペアしか格納できません。
この手順には、Cert Gen ユーティリティまたは Sun Microsystems の keytool ユーティリティを使用できます。開発が目的の場合は、keytool
ユーティリティを使用すると簡単に開始できます。
「プライベート キー、デジタル証明書、信頼性のある認証局の取得」を参照してください。
-Djavax.net.ssl.trustStore=
trustStore
-Djavax.net.ssl.trustStorePassword=
trustStorePassword
trustStore
には、信頼性のある証明書 (そのうちの 1 つはサーバの証明書でなければならない) のリストを格納するクライアントサイドのトラストストアの名前を指定し、trustStorePassword
には、トラストストアのパスワードを指定します。
上記のプロパティは、クライアントサイド キーストアを指定するために設定する必要のある標準的なプロパティに追加されるものです。
-Djavax.net.ssl.keyStore=
keyStore
-Djavax.net.ssl.keyStorePassword=
keyStorePassword
dev2dev CodeShare は、BEA の技術に関するアイデア、コード、およびベスト プラクティスを共有する、開発者向けのコミュニティです。このサイトでは、BEA のさまざまなの技術のサンプル コードが紹介されており、Web サービスでの SSL の使い方に関するサンプル コードもあります。
dev2dev サイトで SSL Web サービスのサンプル コードの表示とダウンロードを行うには、メインのプロジェクト ページに移動し、[By Technology] カラムで [Web Services] リンクをクリックします。
![]() ![]() ![]() |