4.3. 信頼できるセキュリティードメインのアウトフロー設定

セキュリティーが呼び出しされると、対象のセキュリティードメインに対してセキュリティーアイデンティティーが確立されます。呼び出しの処理時に、SecurityIdentity は現在のスレッドに関連付けられます。同じセキュリティードメインで、後続の getCurrentSecurityIdentity() が呼び出されると、関連するアイデンティティーが返されます。

アプリケーションサーバー内には、1 回の呼び出しまたはスレッドに対して複数の SecurityDomain インスタンスが存在する場合があります。SecurityDomain インスタンスはそれぞれ、異なる SecurityIdentity に関連付けることができます。セキュリティードメインの getCurrentSecurityIdentity() メソッドを呼び出すと、正しいセキュリティーアイデンティティーが返されます。デプロイメントは、リクエストの処理中に他のデプロイメントを呼び出すことができます。デプロイメントごとに、1 つのセキュリティードメインに関連付けられます。呼び出されたデプロイメントが同じセキュリティードメインを使用する場合には、現在のセキュリティーアイデンティティーにセキュリティードメイン 1 つという概念は残ります。ただし、各デプロイメントは、そのデプロイメントが使用するセキュリティードメインを参照できます。

次のセクションで説明されているように、セキュリティードメインに関連付けられたセキュリティーアイデンティティーを別のセキュリティードメインにインポートすることが可能です。

セキュリティーアイデンティティーのインポート

セキュリティードメインから別のセキュリティードメインにセキュリティーアイデンティティーをインポートして、ドメインのセキュリティーアイデンティティーを取得するには、主に 3 つの処理フローがあります。

同じセキュリティードメイン
セキュリティードメインは、常に独自のセキュリティーアイデンティティーをインポートできます。独自のセキュリティーアイデンティティーをインポートする場合には、セキュリティードメインは常に自身を信頼します。
一般的なセキュリティーレルム
インポートプロセス中に、セキュリティードメインは、インポートされたセキュリティーアイデンティティーからプリンシパルを取得し、設定済みのプリンシパルトランスフォーマーとレルムマッパーに渡して、セキュリティードメイン内のアイデンティティーにマッピングします。アイデンティティーを作成したセキュリティードメインと同じセキュリティーレルムが使用される場合には、いずれも、基盤となる同じアイデンティティーがサポートするので、インポートが可能です。
信頼できるセキュリティードメイン
アイデンティティーが正常にマップされたものの、共通のセキュリティーレルムがない場合には、インポートを処理するセキュリティードメインがテストされ、インポート元のセキュリティードメインが信頼できるかどうかを確認します。信頼できる場合には、インポートが可能です。
注記

このアイデンティティーはインポートを処理するセキュリティードメインに存在する必要があります。このセキュリティーアイデンティティーは、存在する間は信頼できません。

アウトフロー

セキュリティードメインは、セキュリティーアイデンティティーを異なるセキュリティードメインに自動的に送信するように設定できます。

セキュリティードメインでは、セキュリティーアイデンティティーが確立され、現在の呼び出しに使用される場合に、アウトフローのセキュリティードメインのリストが反復され、セキュリティードメインごとにセキュリティーアイデンティティーがインポートされます。

このモデルは、Web アプリケーションが共通のセキュリティードメインを使用して 5 つの異なる EJB を呼び出す場合など、異なるセキュリティードメインを使用してデプロイメントに複数の呼び出しを行う場合に、より適しています。