Oracle® Fusion Middleware Oracle WebLogic Serverスタンドアロン・クライアントのプログラミング 11g リリース1 (10.3.6) B61622-05 |
|
前 |
次 |
この章では、JAAS (Java Authentication and Authorization Service)およびSecure Sockets Layer (SSL)を使用するWebLogicクライアントを開発する方法について説明します。
JAASでは、ユーザーIDに基づくアクセス制御機能が提供されます。ほとんどのWebLogic Serverクライアントの認証方法として推奨される手法です。一般には、ファイルの読取りや書込みの認証方法として使用します。JAAS認証を実装する方法の詳細については、『Oracle WebLogic Serverセキュリティのプログラミング』のJavaクライアントでのJAAS認証の使用に関する項を参照してください。
クライアント証明書認証(双方向SSL認証ともいう)が必要なユーザーは、JNDI認証を使用してください(『Oracle WebLogic Serverセキュリティのプログラミング』のJNDI認証の使用に関する項を参照)。
WebLogic Serverは、WebLogic Serverクライアントとサーバー、Javaクライアント、Webブラウザ、および他のサーバーの間で転送されるデータを暗号化するためにSecure Sockets Layer (SSL)をサポートしています。
すべてのSSLクライアントに、信頼を指定する必要があります。信頼とは、どの信頼性のある認証局がクライアントから信頼されるのかを指定するCA証明書の集合です。SSL接続を確立するためには、RMIクライアントでサーバーのデジタル証明書を発行した認証局を信頼する必要があります。サーバーの信頼性のあるCA証明書の場所は、RMIクライアントを起動する際に指定します。
デフォルトでは、JDK(...\jre\lib\security\cacerts
)から利用できるすべての信頼性のある認証局がRMIクライアントから信頼されます。ただし、サーバーの信頼性のあるCA証明書が、次のいずれかの信頼キーストアに格納されている場合は、そのキーストアを使用するために特定のコマンド・ライン引数を指定する必要があります。
デモ信頼
- デモ用信頼キーストア(DemoTrust.jks
)の信頼性のあるCA証明書は、WL_HOME
\server\lib
ディレクトリに格納されます。JDK cacertsキーストアの信頼性のあるCAも信頼されます。デモ信頼を使用するには、次のコマンド・ライン引数を指定します。
-Dweblogic.security.TrustKeyStore=DemoTrust
必要に応じて、次のコマンド・ライン引数を使用するとJDK cacerts信頼キーストアのパスワードを指定できます。
-Dweblogic.security.JavaStandardTrustKeyStorePassPhrase=password
password
は、Java標準信頼キーストアのパスワードです。このパスワードは、キーストアを作成するときに定義します。
カスタム信頼
- 独自に作成した信頼キーストア。カスタム信頼を使用するには、次のコマンド・ライン引数を指定します。
信頼キーストアへの完全修飾パスを指定します。
-Dweblogic.security.CustomTrustKeyStoreFileName=filename
キーストアのタイプを指定します。
-Dweblogic.security.CustomTrustKeyStoreType=jks
必要に応じて、キーストアの作成時に定義されたパスワードを指定します。
-Dweblogic.security.CustomTrustKeyStorePassPhrase=password
Oracleのkeytoolユーティリティ。このユーティリティを使用すると、秘密鍵、WebLogic Server用の自己署名デジタル証明書、およびCSR (証明書署名リクエスト)を取得できます。Oracleのkeytoolユーティリティの詳細は、http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
の「keytool-Key and Certificate Management Tool」を参照してください。Oracleが提供するチュートリアルhttp://download.oracle.com/javaee/1.4/tutorial/doc/Security6.html
にある「Installing and Configuring SSL Support」を参照してください。このチュートリアルは、「Creating a Client Certificate for Mutual Authentication」節が含まれています。
注意: keytoolユーティリティを使用する場合、デフォルトのキー・ペア生成アルゴリズムはDSAです。WebLogic Serverでは、DSA (Digital Signature Algorithm)の使用はサポートされていません。WebLogic Serverを使用する場合には、別のキー・ペア生成および署名アルゴリズムを指定します。 |
SSLの実装方法の詳細は、『Oracle WebLogic Serverの保護』のSSLの構成に関する項およびIDと信頼の構成に関する項を参照してください。
WebLogicシン・クライアント・アプリケーションでのJAAS認証は以下の方法でのみサポートされます。
WebLogicシン・クライアントでは、双方向SSLのみがサポートされます。双方向SSLには、SECURITY_CREDENTIALSプロパティに指定されているSSLContext
が必要です。例として、次のクライアント・コードを参照してください。
例14-1 SSLContextを使用したクライアント・コード
. . . System.out.println("Getting initial context"); Hashtable props = new Hashtable(); props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); props.put(Context.PROVIDER_URL,"corbaloc:iiops:" + host + ":" + port +"/NameService"); props.put(Context.SECURITY_PRINCIPAL,"weblogic"); props.put(Context.SECURITY_CREDENTIALS, "welcome1"); //Set the ssl properties through system property //set the path to the keystore file (one key inside the store) System.setProperty("javax.net.ssl.keyStore", YOUR-KEY_STORE_FILE_PATH); //set the keystore pass phrase System.setProperty("javax.net.ssl.keyStorePassword",YOUR_KEY_STORE_PASS_PHRASE); //Set the trust store //set the path to the trust store file System.setProperty("javax.net.ssl.trustStore",YOUR-TRUST_STORE_FILE_PATH); //set the trust store pass phrase System.setProperty("javax.net.ssl.trustStorePassword",YOUR_TRUST_STORE_PASS_PHRASE); Context ctx = new InitialContext(props); . . .
WebLogic Server製品には、セキュリティのサンプルが用意されています。これらのサンプルは、SAMPLES_HOME\server\examples\src\examples\security
ディレクトリにあります。各サンプルの説明と、サンプルをビルド、構成、実行する方法については、package-summary.htmlファイルを参照してください。これらのサンプル・コードは、変更して再利用できます。