ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JMSリソース・アダプタの管理
12c (12.1.2)
E48022-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

11 JMS RA接続の保護

この章では、JMS RAのセキュリティに関する考慮事項について説明します。

JCAセキュリティ

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-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)リソースに関する項を参照してください。

ユーザー名とパスワードの指定

ユーザー名とパスワードを指定するには、次の4つの方法があります。

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

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

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

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

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

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

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

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

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

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

JMS RAでは、アウトバウンド接続用のユーザー名とパスワードを実装するための構成属性は提供されていません。アウトバウンド接続の保護に関する詳細は、「ワイヤ通信の保護」を参照してください。

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

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

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

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

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

次の表は、JMS RA JNDI環境プロパティの設定方法の例を示しています。

表11-1 資格証明を設定するためのJNDIプロパティ

JNDIの設定 動作

java.naming.security.principal=principal

java.naming.security.credentials=credentials

JMS RAの実行時には、WebLogic Server宛先にアクセスするために、principalcredentialsの値が使用されます。

java.naming.security.principal=principal

java.naming.security.credentials=->alias

weblogic.jms.walletDir=dirctory

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

java.naming.security.principal=->alias1

java.naming.security.credentials=->alias2

weblogic.jms.walletDir=dirctory

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

java.naming.security.principal=->alias

java.naming.security.credentials=->

weblogic.jms.walletDir=dirctory

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

java.naming.security.principal=principal

java.naming.security.credentials=->

weblogic.jms.walletDir=dirctory

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


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

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'.

ウォレット内のエイリアスの表示

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

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

ワイヤ通信の保護

ワイヤを介して送信される情報を保護するには、SSL/t3sを使用することをお薦めします。詳細は、『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項を参照してください。