6장. Jakarta Enterprise Beans 애플리케이션 보안
6.1. 보안 ID
6.1.1. Jakarta Enterprise Beans 보안 ID 정보
Jakarta Enterprise Beans는 다른 구성 요소에서 방법을 호출할 때 사용할 ID를 지정할 수 있습니다. 이는 호출 ID라고도 하는 Jakarta Enterprise Beans 보안 ID입니다.
기본적으로 Jakarta Enterprise Beans는 자체 호출자 ID를 사용합니다. ID는 또는 특정 보안 역할로 설정할 수 있습니다. 특정 보안 역할을 사용하면 세그먼트된 보안 모델을 구성하려는 경우(예: 구성 요소 집합에 대한 액세스를 내부 Jakarta Enterprise Beans로만 제한).
6.1.2. Jakarta Enterprise Bean의 보안 ID 설정
Jakarta Enterprise Beans의 보안 ID는 보안 구성의 <security-identity>
태그를 통해 지정됩니다. <security-identity>
태그가 없으면 기본적으로 Jakarta Enterprise Bean의 호출자 ID가 사용됩니다.
예제: Jakarta Enterprise Bean의 보안 ID를 호출자로 설정
이 예에서는 Jakarta Enterprise Beans에서 만든 메서드 호출에 대한 보안 ID를 현재 호출자의 ID와 동일하게 설정합니다. <security-identity>
요소 선언을 지정하지 않으면 이 동작이 기본값입니다.
<ejb-jar> <enterprise-beans> <session> <ejb-name>ASessionBean</ejb-name> ... <security-identity> <use-caller-identity/> </security-identity> </session> ... </enterprise-beans> </ejb-jar>
예제: Jakarta Enterprise Bean의 보안 ID를 특정 역할로 설정
보안 ID를 특정 역할로 설정하려면 <
태그를 사용합니다.
security-identity> 태그 내에
><run-as> 및
<role-name
<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-principal>
을 사용합니다.
<session> <ejb-name>RunAsBean</ejb-name> <security-identity> <run-as-principal>internal</run-as-principal> </security-identity> </session>
서블릿 요소 내에서 <run-as>
및 <run-as-principal>
요소를 사용할 수도 있습니다.