![]() ![]() ![]() ![]() |
JAAS (Java Authentication and Authorization Service) およびセキュア ソケット レイヤ (SSL) を使用する Weblogic クライアントを開発できます。以下の節では、セキュリティ対応クライアントの開発について説明します。
JAAS では、ユーザ ID に基づくアクセス制御機能が提供されます。WebLogic Server クライアントの認証方法として推奨される手法です。一般には、ファイルの読み取りや書き込みの認証方法として使用します。クライアントの証明書認証 (双方向 SSL 認証ともいう) が必要な場合は JNDI 認証を使用します。JAAS 認証を実装する方法については、「Java クライアントでの JAAS 認証の使用」を参照してください。
WebLogic Server は、WebLogic Server クライアントとサーバ、Java クライアント、Web ブラウザ、および他のサーバの間で転送されるデータを暗号化するためにセキュア ソケット レイヤ (SSL) をサポートしています。
すべての SSL クライアントに、信頼を指定する必要があります。信頼とは、どの信頼性のある認証局がクライアントから信頼されるのかを指定する CA 証明書の集合です。SSL 接続を確立するためには、RMI クライアントでサーバのデジタル証明書を発行した認証局を信頼する必要があります。サーバの信頼性のある CA 証明書の場所は、RMI クライアントを起動する際に指定します。
デフォルトでは、JDK (...\jre\lib\security\cacerts
) から利用できるすべての信頼性のある認証局が RMI クライアントから信頼されます。ただし、サーバの信頼性のある CA 証明書が、以下のいずれかのタイプの信頼キーストアに格納されている場合は、そのキーストアを使用するために特定のコマンドライン引数を指定する必要があります。
DemoTrust.jks
) の信頼性のある CA 証明書は、WL_HOME\server\lib directory
ディレクトリに格納されます。JDK cacerts キーストアの信頼性のある CA も信頼されます。デモ信頼を使用するには、次のコマンドライン引数を指定します。
-Dweblogic.security.TrustKeyStore=DemoTrust
必要に応じて、次のコマンドライン引数を使用すると JDK cacerts 信頼キーストアのパスワードを指定できます。
-Dweblogic.security.JavaStandardTrustKeystorePassPhrase=
password
password
は、Java 標準信頼キーストアのパスワードです。このパスワードは、キーストアを作成するときに定義します。
-Dweblogic.security.CustomTrustKeyStoreFileName=
filename
-Dweblogic.security.TrustKeystoreType=CustomTrust
必要に応じて、キーストアの作成時に定義されたパスワードを指定します。
-Dweblogic.security.CustomTrustKeystorePassPhrase=
password
注意 : | keytool ユーティリティを使用する場合、デフォルトのキー ペア生成アルゴリズムは DSA です。WebLogic Server では、DSA (Digital Signature Algorithm) の使用はサポートされていません。WebLogic Server を使用する場合には、別のキー ペア生成および署名アルゴリズムを指定します。 |
SSL の実装方法の詳細については、『WebLogic Server のセキュリティ』の「SSL のコンフィグレーション」および「ID と信頼のコンフィグレーション」を参照してください。
WebLogic シン クライアント アプリケーションでの JAAS 認証は以下のクラスでのみサポートされます。
WebLogic シン クライアントでは、双方向 SSL のみがサポートされます。双方向 SSL には、SECURITY_CREDENTIALS
プロパティに指定されている SSLContext が必要です。例として、次のクライアント コードを参照してください。
.
.
.
// KeyManager の KeyManagerFactory を取得する
System.out.println("Retrieving KeyManagerFactory & initializing");
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509","SunJSSE");
kmf.init(ks,keyStorePassword);
// SSLContext を取得して初期化する
System.out.println("Initializing the SSLContext");
SSLContext sslCtx = SSLContext.getInstance("SSL");
sslCtx.init(kmf.getKeyManagers(),null,null);
// SSLContext を初期コンテキスト ファクトリに渡し、InitialContext
// を取得する
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, sslCtx);
Context ctx = new InitialContext(props);
.
.
.
WebLogic Server 製品には、セキュリティのサンプルが用意されています。これらのサンプルは、SAMPLES_HOME\server\examples\src\examples\security
ディレクトリにあります。各サンプルの説明と、サンプルをビルド、コンフィグレーション、実行する方法については、package-summary.html
ファイルを参照してください。これらのサンプル コードは、変更して再利用できます。
![]() ![]() ![]() |