12.3. EJB アプリケーションセキュリティー

12.3.1. セキュリティアイデンティティ (ID)

12.3.1.1. EJB のセキュリティーアイデンティティーについて

セキュリティーアイデンティティー呼び出しアイデンティティー とも呼ばれており、セキュリティー設定では <security-identity> タグのことです。これは、EJB がコンポーネントでメソッド呼び出しを行う際に必ず使う必要のあるアイデンティティーを指します。
呼び出しアイデンティティーは現在の呼び出し元か特定のロールのいずれかになります。現在の呼び出し元である場合は、<use-caller-identity> タグがあり、特定ロールの場合は <run-as> タグが使用されます。
EJB のセキュリティーアイデンティティー設定に関する情報は 「EJB のセキュリティーアイデンティティーの設定」 を参照してください。

12.3.1.2. EJB のセキュリティーアイデンティティーの設定

例12.3 呼び出し側と同じになるように EJB のセキュリティーアイデンティティーを設定する

この例は、現在の呼び出し側のアイデンティティーと同じになるように、EJB によって実行されたメソッド呼び出しのセキュリティーアイデンティティーを設定します。<security-identity> 要素の宣言を指定しない場合、この挙動がデフォルトになります。
<ejb-jar>
  <enterprise-beans>
	 <session>
		<ejb-name>ASessionBean</ejb-name>
		<!-- ... -->
		<security-identity>
		  <use-caller-identity/>
		</security-identity>
	 </session>
	 <!-- ... -->
  </enterprise-beans>
</ejb-jar>

例12.4 特定ロールに EJB のセキュリティーアイデンティティーを設定する

特定のロールにセキュリティーアイデンティティーを設定するには、<security-identity> タグの中に <run-as> または <role> タグを使用します。
<ejb-jar>
  <enterprise-beans>
	 <session>
		<ejb-name>RunAsBean</ejb-name>
		<!-- ... -->
		<security-identity>
		  <run-as>
			 <description>A private internal role</description>
			 <role-name>InternalRole</role-name>
		  </run-as>
		</security-identity>
	 </session>
  </enterprise-beans>
  <!-- ... -->
</ejb-jar>

デフォルトでは、<run-as> を使用すると anonymous という名前のプリンシパルが発信呼び出しへ割り当てられます。違うプリンシパルを割り当てる場合は <run-as-principle> を使用します。
<session>
    <ejb-name>RunAsBean</ejb-name>
    <security-identity>
        <run-as-principal>internal</run-as-principal>
    </security-identity>
</session>

注記

サーブレット要素内に <run-as> 要素と <run-as-principal> 要素を使用することもできます。