リスナー・ポートを使用するメッセージ駆動型 Bean のセキュリティーの構成
Java™ EE コネクター・アーキテクチャー (JCA) 以外のメッセージング・プロバイダーでは、接続ファクトリー、宛先、およびメッセージ駆動型 Bean の間の関連は、リスナー・ポートによって提供されます。 この場合、コンテナー管理の別名を設定することによって、メッセージ駆動型 Bean のリソース・セキュリティーおよびセキュリティー権限を構成できます。MDB リスナーのセキュリティー情報は、MDB リスナーの JMS 接続が作成されたときに確立されます。
始める前に
リスナー・ポートにより、このポートに関連付けられている、デプロイされたメッセージ駆動型 Bean は、関連宛先からメッセージを検索できるようになります。 リスナー・ポートについて詳しくは、メッセージ駆動型 Bean - リスナー・ポート・コンポーネントを参照してください。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
このタスクについて
MDB のセキュリティーはほとんどの点で、他のエンタープライズ Bean のセキュリティーと同一です。 例えば、JDBC リソースおよび JCA リソース (CICS® や IMS™ など) へのアクセスは、エンティティー Bean またはセッション Bean の場合と同じ方法で処理されます。また、他の JMS リソースへのアクセスも他のエンタープライズ Bean と同じ方法で処理されます。
リスナー・ポートにデプロイされた MDB を保護するには、サーバーが JMS プロバイダーおよび宛先に接続できるように認証および許可を構成して、MDB の onMessage() メソッドで、処理するためにメッセージを宛先から取得できるようにします。
一部の MDB では、onMessage() メソッドは、初期 JMS 接続の確立後に、追加の JMS リソースにアクセスしようとします。その場合、セキュリティーは、エンティティーまたはセッション EJB による JMS 呼び出しと同様に処理されます。
- コンテナー管理の別名が接続ファクトリーに定義されている場合は、コンテナー管理の別名に関連付けられたユーザー ID が createQueueConnection(userid,password) などの接続作成呼び出しで使用されます。
- コンポーネント管理の別名がこの接続ファクトリーに定義されている場合は、コンポーネント管理の別名に関連付けられたユーザー ID が、接続作成呼び出しで使用されます。
- どちらの別名も指定されておらず、接続ファクトリーがバインディング・モード (つまり TransportType = "BINDINGS") で定義されている場合は、サーバー ID が使用されます。
サーバー ID は、サーバント内のサーバント ID およびコントローラー内のコントローラー ID へとさらに細かく変換されます。 そのため、listening-in コントローラーの場合は、コントローラー ID が関連し、サーバント ID も関連します。listening-in コントローラーについての関連情報は、
z/OS でのメッセージ・リスナー・サービスを参照してください。
コンテナー管理の別名を設定するには、(そのオプションを選択した場合は)、管理コンソールを使用して以下のステップを実行します。
手順
- リスナー・ポート設定を表示するには、 とクリックします。
- JMS 接続ファクトリーの名前を取得するには、「接続ファクトリー JNDI 名」プロパティーを参照してください。
- JMS 接続ファクトリー・プロパティーを表示します。例えば、キュー接続ファクトリーのプロパティーを表示するには、 をクリックします。
- 「コンテナー管理認証別名」プロパティーを設定します。
- 「OK」をクリックします。
次のタスク
他の EJB の起動
リスナー・ポートに到着するメッセージには、関連付けられたクライアント・クレデンシャルがありません。 このメッセージは匿名です。メッセージ駆動型 Bean からセキュアなエンタープライズ Bean を呼び出すには、メッセージ駆動型 Bean を RunAs ID デプロイメント記述子で構成する必要があります。 セキュリティーは、メッセージ駆動型 Bean の RunAs ID が EJB コンポーネントとして指定するロールによって決まります。
EJB セキュリティーについて詳しくは、エンタープライズ Bean アプリケーションの保護を参照してください。 アプリケーションのセキュリティー構成について詳しくは、アセンブリーおよびデプロイメント中のアプリケーションの保護を参照してください。