プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server JMSリソース・アダプタの管理
12c (12.2.1.3.0)
E90334-01
目次へ移動
目次

前
次

11 JMSリソース・アダプタ接続の保護

次の各項では、JMSリソース・アダプタのセキュリティの考慮点について説明します。

Java Connector Architectureセキュリティ

JMSリソース・アダプタは、Java Connector Architectureセキュリティ規約に完全に準拠しています(Java™ EEコネクタ・アーキテクチャ仕様バージョン1.7を参照)。

アウトバウンド通信の場合、ra.xmlファイルで、authentication-mechanism-typecredential-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セキュリティに関する情報を提供します。

JMSセキュリティ・モデルの概要

WebLogic JMSでは、スレッドベースのセキュリティ・モデルが使用されます。スレッドのサブジェクトは、JNDIユーザー名とパスワード資格証明としてJNDIルックアップで確立されます。WebLogic JMSでは、サーバーで後から認証する際に使用されるのと同じサブジェクトの下の同じスレッド内で、関連するすべての操作が実行されると想定しています。JMS接続の作成に使用されるユーザー名とパスワードは、認証フェーズでは無視されます。

JMSリソースの保護

サービスまたはアプリケーションとしてデプロイされているJMSリソースを保護できます。JMS宛先を保護するには、すべての宛先(JMSキューとJMSトピック)に対して、グループとしてまたは個々の宛先(JMSキューまたはJMSトピック)として、JMSサーバー上にセキュリティ・ポリシーおよびセキュリティ・ロールを作成します。

Oracle WebLogic Serverロールおよびポリシーを使用したリソースの保護のJava Messaging Service (JMS)リソースを参照してください。

ユーザー名とパスワード資格証明の指定

次のどの方法でもユーザー名とパスワード資格証明を指定できます。

ホスト・アプリケーション・サーバーのJava Connector Architectureコンテナを使用することをお薦めします。ほとんどのベンダーが、セキュアなメソッドを使用して資格証明を動的に設定する方法を提供するJava Connector Architectureコンテナを提供しています。その他のメソッドでは、通常、資格証明はクリア・テキストで格納されます。資格証明を暗号化しないメソッドを選択した場合は、Oracleウォレットを使用してそれらを保護します。

詳細は、Oracleウォレットを使用した資格証明の保護を参照してください。

Java Connector Architectureコンテナを使用したインバウンド接続のユーザー名とパスワードの指定

アプリケーションは、インバウンドのリソース・アダプタのactivation-specで、ユーザー名とパスワード資格証明を指定できます。activation specは、外部アプリケーション・サーバーのJava Connector ArchitectureコンテナによってJMSリソース・アダプタに渡されます。

外部アプリケーション・サーバーのJava Connector Architectureコンテナを使用してユーザー名とパスワードを指定する方法の詳細は、Oracle GlassFish ServerでのJMSリソース・アダプタの管理を参照してください。

JNDIを使用したインバウンド接続のユーザー名とパスワードの指定

次に示すように、ユーザー名とパスワード資格証明を含めるようにresourceProviderDefinitionsjndiEnvプロパティを構成できます。

<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リソース・アダプタでは、JNDIの新しい初期コンテキスト・ファクトリweblogic.jms.WrappedInitialContextFactoryを使用したセキュリティ・モデルに基づく接続が提供されるため、外部アプリケーション・サーバーとのセキュリティの相互運用性が簡略化されます。生成されるサブジェクトは、次のルールを使用して決定されます。

  • サブジェクトは、接続ユーザー名とパスワードを使用して作成された各接続に関連付けられています。

  • ユーザー名とパスワードを指定せずに接続が作成された場合、JNDIのユーザー名とパスワードが使用されます。

  • 後続のすべてのJMS操作では、スレッド上にあるサブジェクトに関係なく、接続の作成コールで生成されたサブジェクトが使用されます。

アウトバウンド接続のユーザー名とパスワードの指定

アウトバウンド接続の場合、createConnection(java.lang.String, java.lang.String) APIを使用できます。

JMSリソース・アダプタでは、アウトバウンド接続用のユーザー名とパスワードを実装するための構成属性は提供されていません。

アウトバウンド接続の保護に関する詳細は、通信の保護を参照してください。

一部の外部アプリケーション・サーバーでは、ドメイン間でのセキュアな資格証明が提供されている場合があります。その場合、詳細はベンダーのドキュメントを参照してください。

Oracleウォレットを使用した資格証明の保護

Oracleウォレットでは、複数のドメイン間で資格証明を保護するための単純でわかりやすいメソッドが提供されています。これにより、個々の資格証明を変更しなくてもウォレットを更新して資格証明を更新できます。

資格証明を保護するには、次のことを行う必要があります。

  • ウォレット・ファイルを作成し、JMSリソース・アダプタ暗号化ユーティリティを使用して必要な資格証明を追加する。このステップにより、保護された資格証明にエイリアスをマッピングするcwallet.ssoファイルが、指定された場所に作成されます。

    詳細は、wljmsra暗号化ユーティリティの使用を参照してください。

  • JMSリソース・アダプタのデプロイメント・ディスクリプタまたは接続プール構成のエイリアスを指定する。

  • JMSリソース・アダプタのデプロイメント・ディスクリプタまたは接続プール構成のcwallet.ssoファイルの場所を指定する。

資格証明を設定するためのJNDIの構成例

次の表は、JMSリソース・アダプタJNDI環境プロパティの設定方法の例を示しています。

JNDIの設定 動作
java.naming.security.principal=principal
java.naming.security.principal=principal
java.naming.security.credentials=credentials

JMSリソース・アダプタの実行時には、principalおよびcredentialsの値を使用して宛先にアクセスします。

java.naming.security.principal=principal
java.naming.security.credentials=->alias
weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名としてprincipalの値が使用され、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、aliasの値が使用されます。

java.naming.security.principal=->alias1
java.naming.security.credentials=->alias2
weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名を取得および使用するために、alias1の値が使用され、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、alias2の値が使用されます。

java.naming.security.principal=->alias
java.naming.security.credentials=->
weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名と、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、aliasの値が使用されます。

java.naming.security.principal=principal
java.naming.security.credentials=->
weblogic.jms.walletDir=dirctory

JMSリソース・アダプタの実行時には、ユーザー名としてprincipalの値が使用され、directoryの値によって指定されたディレクトリにあるcwallet.ssoファイルに格納されているパスワードを取得および使用するために、principalの値が使用されます。

wljmsra暗号化ユーティリティの使用

JMSリソース・アダプタは、Oracleウォレット・ファイルにアプリケーションの資格証明を追加するためのコマンド行ユーティリティを提供します。ユーティリティを実行するには、WL_HOMEserver/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'.

次の例では、ウォレット内のエイリアスを表示するための暗号化ユーティリティを使用します。

java -jar wljmsra.rar dump mywallet
Info: Aliases found in wallet under 'mywallet'.
user4
Info: 1 aliases found.

通信の保護

送信される情報を保護するには、SSLまたはt3sを使用することをお薦めします。

詳細は、『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項を参照してください。