역할 기반 권한
권한 부여 정보는 호출자가 서비스를 요청하는 데 필요한 권한을 가졌는지 여부를 판별하는 데 사용됩니다.
다음 그림은 권한 부여 프로세스를 보여줍니다.

웹 클라이언트에서의 웹 자원 액세스는 웹 협력자에서 처리됩니다. 엔터프라이즈 JavaBeans Java™ 클라이언트(엔터프라이즈 Bean이든 서블릿이든)로부터의 (EJB) 자원 액세스는 EJB 협력자에 의해 처리됩니다. EJB 협력자 및 웹 협력자는 오브젝트 요청 브로커(ORB) 현재 오브젝트에서 클라이언트 신임 정보를 추출합니다. 클라이언트 신임 정보는 수신된 신임 정보로 인증 프로세스 중에 ORB 현재 오브젝트에서 설정됩니다. 자원 및 수신된 신임 정보는 WSAccessManager 액세스 관리자에서 표시되어 액세스가 요청된 자원 액세스를 위해 클라이언트에 허용된 것인지를 확인합니다.
- 자원 권한 모듈은 제공된 자원에 필요한 역할 판별에 도움이 됩니다. 이 모듈은 애플리케이션 시작 중에 보안 런타임으로 빌드되는 자원 대 역할 맵핑 테이블을 사용합니다. 자원 대 역할 맵핑 테이블을 빌드하기 위해 보안 런타임은 엔터프라이즈 Bean 또는 웹 모듈(ejb-jar.xml 파일 또는 web.xml 파일)의 배치 디스크립터를 읽습니다.
- 권한 부여 테이블 모듈은 역할 대 사용자 또는 그룹 테이블을 참조하여 클라이언트에 필요한 역할 중 하나가
부여되었는지 판별합니다. 역할 대 사용자 또는 그룹 맵핑 테이블은 권한 부여 테이블이라고도 하며
애플리케이션 시작 중에 보안 런타임으로 작성됩니다.
권한 부여 테이블을 빌드하기 위해 보안 런타임은 애플리케이션 바인딩 파일
ibm-application-bnd.xmi파일 또는ibm-application-bnd.xml파일을 적절하게 읽습니다.지원되는 구성: 을 위한 IBM® 확장 및 바인딩 파일,.xmi 또는.xml 파일 이름 확장자는 사전 사용 여부에 따라 다릅니다. Java EE 5 애플리케이션이나 모듈 또는 Java EE 5 이상의 애플리케이션 또는 모듈. 안 IBM 확장자 또는 바인딩 파일의 이름이 지정되었습니다.ibm-*-ext.xmi 또는ibm-*-bnd.xmi 여기서 *는 다음과 같은 확장 또는 바인딩 파일의 유형입니다.app ,application ,ejb-jar , 또는web . 다음과 같은 조건이 적용됩니다.그러나 Java EE 5 이상의 모듈은 사전을 포함하는 애플리케이션 내에 존재할 수 있습니다. Java EE 5개의 파일을 사용하며.xmi 파일 이름 확장자.
ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi 및 ibm-portlet-ext.xmi 파일을 계속 .xmi 파일 확장자를 사용합니다.
권한 부여 정보를 사용하여 호출자에게 서비스 요청에 필요한 권한이 있는지를 판별하십시오. 권한 부여 정보는 많은 방법으로 저장할 수 있습니다. 예를 들어, 각 자원을 사용하여 사용자 및 사용자 권한 목록이 포함된 액세스 제어 목록을 저장할 수 있습니다. 자원 목록 및 해당 권한을 각 사용자와 연관시켜서도 정보를 저장할 수 있습니다. 이 목록은 기능 목록이라고 합니다.
WebSphere® Application Server Java 2 플랫폼을 사용하며, Enterprise Edition ( J2EE ) 인증 모델. 이 모델에서 권한 부여 정보는 다음과 같이 구성됩니다.
애플리케이션 어셈블리 중에 메소드를 호출하는 권한이 하나 이상의 역할에 부여됩니다. 역할은 권한 세트입니다. 예를 들어, 금융 애플리케이션에서 역할은 창구 직원, 감독자, 캐시어, 기타 업종 관련 직위를 포함할 수 있습니다. 창구 직원 역할은 계정의 자금 관리에 관련된 메소드, 예를 들어 인출 및 입금 메소드를 실행하는 권한에 연관됩니다. 창구 직원 역할에 계정 닫기 권한은 부여되지 않습니다. 이 권한은 감독자 역할에 제공됩니다. 애플리케이션 어셈블러는 각 역할에 대한 메소드 권한 목록을 정의합니다. 이 목록은 애플리케이션에 대해 배치 디스크립터에 저장됩니다.
다음 세 개의 특수 주제(Subject)는 J2EE 모델로 정의되지 않습니다. AllAuthenticatedUsers, AllAuthenticatedInTrustedRealms, Everyone. 특수한 주제(Subject)는 사용자 레지스트리 밖에서 정의되는 제품 정의 엔티티입니다. 이 엔티티는 일반적으로 레지스트리의 사용자 또는 그룹 클래스를 표시하는 데 사용됩니다.
- AllAuthenticatedUsers 주체(Subject)는 보호된 메소드에 액세스하는 인증된 모든 사용자를 허용합니다. 사용자가 성공적으로 인증할 수 있으면 사용자는 보호된 자원에 액세스하도록 허용됩니다.
- AllAuthenticatedInTrustedRealms 주체(Subject)는 보호된 메소드에 액세스하는 모든 인증된 외부 사용자(다른 영역에 바인드되는 사용자)를 허용합니다. 사용자가 성공적으로 인증할 수 있으면 사용자는 보호된 자원에 액세스하도록 허용됩니다.
- Everyone 주제(Subject)는 보호된 자원에 대해 무제한 액세스를 허용합니다. 사용자는 액세스를 얻기 위해 인증될 필요가 없습니다. 이 특수 주체(Subject)는 자원이 보호되지 않는 것처럼 보호된 메소드에 액세스를 제공합니다.
애플리케이션 배치 중에 실제 사용자 또는 사용자 그룹은 역할에 지정됩니다. 사용자가 역할에 지정되면 사용자는 해당 역할에 부여된 모든 메소드 권한을 갖게 됩니다.
애플리케이션 배치자는 개별 메소드를 이해할 필요가 없습니다. 역할을 메소드에 지정하여 애플리케이션 어셈블러는 애플리케이션 배치자 작업을
단순화합니다. 메소드 세트에 대해 작업하는 대신 배치자는 역할에 대해 작업하며 이는 메소드에 대한
시맨틱 그룹화를 표시합니다.
사용자는 둘 이상의 역할에 지정 가능합니다. 사용자에 부여되는 권한은 각 역할에 부여되는 권한의 유니온입니다. 또한, 인증 메커니즘이 사용자 그룹화를 지원하면 이 그룹은 역할에 지정될 수 있습니다. 그룹을 역할에 지정하는 겻은 각 개별 사용자를 역할에 지정하는 것과 동일한 효과가 있습니다.
- 권한 검사 중에 성능이 향상됩니다. 일반적으로 사용자 수보다 권한 수가 훨씬 적습니다.
- 그룹 멤버십을 사용하여 자원 액세스를 제어해서 더 많은 융통성을 제공합니다.
- 제품 환경 밖에서의 그룹에서 사용자 추가 및 삭제를 지원합니다. 이 조치는 WebSphere Application Server 역할에 사용자를 추가하고 제거할 때 선호됩니다. 이런 변경사항이 적용되도록 하려면 엔터프라이즈 애플리케이션을 중지하고 다시 시작하십시오. 이 조치는 프로덕션 환경에서 큰 혼란을 일으킬 수 있습니다.
런타임 시 WebSphere Application Server는 사용자 ID 정보 및 역할에 대한 사용자 맵핑을 기반으로 수신 요청에 대한 권한을 부여합니다. 사용자가 메소드를 실행할 권한이 있는 임의 역할에 속하는 경우 요청이 권한 부여됩니다. 사용자가 권한이 있는 역할에 속하지 않으면 요청은 거부됩니다.
- getCallerPrincipal: 이 메소드는 사용자 ID 정보를 검색합니다.
- isCallerInRole: 이 메소드는 특정 역할에 대해 사용자 ID 정보를 검사합니다.
- getRemoteUser
- isUserInRole
- getUserPrincipal
이 메소드는 엔터프라이즈 Bean 메소드의 용도에 대응합니다.