Oracle® Fusion Middleware Oracle WebLogic Server JMSリソース・アダプタの管理 12c (12.1.2) E48022-02 |
|
前 |
次 |
この章では、JMS RAのセキュリティに関する考慮事項について説明します。
JMS RAは、http://download.oracle.com/otn-pub/jcp/connector_architecture-1.6-fr-oth-JSpec/connector-1_6-final-spec.pdfにあるJava (tm) EE Connector Architectureバージョン1.6の仕様に記載されている、JCAセキュリティ契約に完全に準拠しています。
アウトバウンド通信の場合、ra.xml
ファイルで、authentication-mechanism-type、credential-interfaceおよびreauthentication-supportを指定できます。たとえば、次のように構成します。
. . . <outbound-resourceadapter> . . . <authentication-mechanism> <authentication-mechanism-type> BasicPassword </authentication-mechanism-type> <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface> </authentication-mechanism> <reauthentication-support>false</reauthentication-support> . . . </outbound-resourceadapter> . . .
次の項では、WebLogic JMSセキュリティに関する情報を提供します。
WebLogic JMSでは、スレッドベースのセキュリティ・モデルが使用されます。スレッドのサブジェクトは、JNDIユーザー名および資格証明としてJNDIルックアップで確立されます。WebLogic JMSでは、サーバーで後から認証する際に使用されるのと同じサブジェクトの下の同じスレッド内で、関連するすべての操作が実行されると想定しています。JMS接続の作成に使用されるユーザー名とパスワードは、認証フェーズでは無視されます。
サービスまたはアプリケーションとしてデプロイされているJMSリソースを保護できます。JMS宛先を保護するには、すべての宛先(JMSキューとJMSトピック)に対して、グループとしてまたは個々の宛先(JMSキューまたはJMSトピック)として、JMSサーバー上にセキュリティ・ポリシーおよびセキュリティ・ロールを作成します。詳細は、『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』のJava Messaging Service (JMS)リソースに関する項を参照してください。
ユーザー名とパスワードを指定するには、次の4つの方法があります。
可能な場合、ホスト・アプリケーション・サーバーのJCAコンテナを使用することをお薦めします。ほとんどのベンダーが、セキュアなメソッドを使用して資格証明を動的に設定する方法を提供するJCAコンテナを提供しています。その他のメソッドでは、通常、資格証明はクリア・テキストで格納されます。資格証明を暗号化しないメソッドを選択した場合は、Oracleウォレットを使用してそれらを保護します。詳細は、「Oracleウォレットを使用した資格証明の保護」を参照してください。
アプリケーションは、インバウンドのリソース・アダプタのactivation-spec
で、ユーザー名とパスワードを指定できます。activation spec
は、外部アプリケーション・サーバーのJCAコンテナによってJMS RAに渡されます。
外部アプリケーション・サーバーのJCAコンテナを使用して、ユーザー名とパスワードを指定する方法の詳細は、「Oracle GlassFish ServerでのJMS RAの管理」を参照してください。
次に示すように、ユーザー名とパスワードを含めるように、resourceProviderDefinitions
のjndiEnv
プロパティを構成できます。
<config-property-name>resourceProviderDefinitions</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value> (weblogicAdmin: jndiEnv=(java.naming.factory.initial=weblogic.jms.WrappedInitialContextFactory, java.naming.provider.url='t3://host:port', java.naming.security.principal=xxxx, java.naming.security.credentials=yyyy)) </config-property-value> </config-property>
詳細は、「資格証明を設定するためのJNDIの構成例」を参照してください。
JMS RAでは、JNDIの新しい初期コンテキスト・ファクトリweblogic.jms.WrappedInitialContextFactory
を使用したセキュリティ・モデルに基づく接続が提供されるため、外部アプリケーション・サーバーとのセキュリティの相互運用性が簡略化されます。生成されるサブジェクトは、次のルールを使用して決定されます。
サブジェクトは、接続ユーザー名とパスワードを使用して作成された各接続に関連付けられています。
ユーザー名とパスワードを指定せずに接続が作成された場合、JNDIのユーザー名とパスワードが使用されます。
後続のすべてのJMS操作では、スレッド上にあるサブジェクトに関係なく、接続の作成コールで生成されたサブジェクトが使用されます。
アウトバウンド接続の場合、createConnection(java.lang.String, java.lang.String)
を使用できます。
JMS RAでは、アウトバウンド接続用のユーザー名とパスワードを実装するための構成属性は提供されていません。アウトバウンド接続の保護に関する詳細は、「ワイヤ通信の保護」を参照してください。
一部の外部アプリケーション・サーバーでは、ドメイン間でのセキュアな資格証明が提供されている場合があります。その場合、詳細はベンダーのドキュメントを参照してください。
Oracleウォレットでは、複数のドメイン間で資格証明を保護するための単純でわかりやすいメソッドが提供されています。これにより、個々の資格証明を変更せずにウォレットを更新することによって、資格証明を更新できます。
資格証明を保護するには、次のことを行う必要があります。
ウォレット・ファイルを作成し、JMS RA暗号化ユーティリティを使用して必要な資格証明を追加する。このステップにより、エイリアスを保護された資格証明にマッピングする指定された場所に、cwallet.sso
ファイルが作成されます。詳細は、「wljmsra暗号化ユーティリティの使用」を参照してください。
JMS RAのデプロイメント・ディスクリプタまたは接続プール構成のエイリアスを指定する。
JMS RAのデプロイメント・ディスクリプタまたは接続プール構成のcwallet.sso
ファイルの場所を指定する。
次の表は、JMS RA JNDI環境プロパティの設定方法の例を示しています。
表11-1 資格証明を設定するためのJNDIプロパティ
JNDIの設定 | 動作 |
---|---|
java.naming.security.principal=principal java.naming.security.credentials=credentials |
JMS RAの実行時には、WebLogic Server宛先にアクセスするために、principalとcredentialsの値が使用されます。 |
java.naming.security.principal=principal java.naming.security.credentials=- weblogic.jms.walletDir=dirctory |
JMS RAの実行時には、ユーザー名としてprincipalの値が使用され、directoryの値によって指定されたディレクトリにある |
java.naming.security.principal=- java.naming.security.credentials=- weblogic.jms.walletDir=dirctory |
JMS RAの実行時には、ユーザー名を取得および使用するために、alias1の値が使用され、directoryの値によって指定されたディレクトリにある |
java.naming.security.principal=- java.naming.security.credentials=- weblogic.jms.walletDir=dirctory |
JMS RAの実行時には、ユーザー名と、directoryの値によって指定されたディレクトリにある |
java.naming.security.principal=principal java.naming.security.credentials=-> weblogic.jms.walletDir=dirctory |
JMS RAの実行時には、ユーザー名としてprincipalの値が使用され、directoryの値によって指定されたディレクトリにある |
JMS RAは、Oracleウォレット・ファイルにアプリケーションの資格証明を追加するためのコマンドライン・ユーティリティを提供します。ユーティリティを実行するには、ディレクトリをインストールのwlserver/server/lib
ディレクトリに変更し、次のコマンドを入力して有効なコマンドを表示します。
java -jar wljmsra.rar help Usage: create <dir>: Create wallet under given directory. add <alias> <value> [dir]: Add value using the alias. replace <alias> <value> [dir]: Replace value of the alias. remove <alias> [dir]: Remove an alias. dump [dir]: List all aliases in the wallet. help: This help.
次の例では、ディレクトリmywallet
にウォレット・ファイルを作成するための暗号化ユーティリティを使用します。
java -jar wljmsra.rar create mywallet Info: Created wallet under directory 'mywallet'.
次の例では、エイリアスを作成するための暗号化ユーティリティを使用します。
java -jar wljmsra.rar add user6 pwd6 Info: Added alias 'user6'.
次の例では、エイリアスを置換するための暗号化ユーティリティを使用します。
java -jar wljmsra.rar replace user6 newpwd6 Info: Replaced alias 'user6'.
次の例では、エイリアスを削除するための暗号化ユーティリティを使用します。
java -jar wljmsra.rar remove user6 Info: Removed alias 'user6'.
ワイヤを介して送信される情報を保護するには、SSL/t3sを使用することをお薦めします。詳細は、『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項を参照してください。