역할 기반 권한

권한 부여 정보를 사용하여 호출자가 서비스 요청에 필요한 권한을 가지고 있는지 판별합니다.

다음 그림은 권한 부여 중에 사용되는 프로세스를 설명합니다.

웹 클라이언트에서의 웹 자원 액세스는 웹 협력자에서 처리됩니다. 엔터프라이즈 Bean 또는 서블릿의 Java 클라이언트의 EJB(Enterprise JavaBeans) 자원 액세스는 EJB 협력자로 처리됩니다. EJB 협력자 및 웹 협력자는 오브젝트 요청 브로커(ORB) 현재 오브젝트에서 클라이언트 신임 정보를 추출합니다. 클라이언트 신임 정보는 수신된 신임 정보로 인증 프로세스 중에 ORB 현재 오브젝트에서 설정됩니다. 자원 및 수신된 신임 정보는 WSAccessManager 액세스 관리자에서 표시되어 액세스가 요청된 자원 액세스를 위해 클라이언트에 허용된 것인지를 확인합니다.

웹 클라이언트에서의 웹 자원 액세스는 웹 협력자에서 처리됩니다. 엔터프라이즈 Bean 또는 서블릿의 Java™ 클라이언트의 EJB(Enterprise JavaBeans) 자원 액세스는 EJB 협력자로 처리됩니다. EJB 협력자 및 웹 협력자는 오브젝트 요청 브로커(ORB) 현재 오브젝트에서 클라이언트 신임 정보를 추출합니다. 클라이언트 신임 정보는 수신된 신임 정보로 인증 프로세스 중에 ORB 현재 오브젝트에서 설정됩니다. 자원 및 수신된 신임 정보는 WSAccessManager 액세스 관리자에서 표시되어 액세스가 요청된 자원 액세스를 위해 클라이언트에 허용된 것인지를 확인합니다.

액세스 관리자 모듈에는 두 개의 기본 모듈이 포함됩니다.
  • 자원 권한 모듈은 제공된 자원에 필요한 역할 판별에 도움이 됩니다. 이 모듈은 애플리케이션 시작 중에 보안 런타임으로 빌드되는 자원 대 역할 맵핑 테이블을 사용합니다. 자원 대 역할 맵핑 테이블을 빌드하기 위해 보안 런타임은 엔터프라이즈 Bean 또는 웹 모듈(ejb-jar.xml 파일 또는 web.xml 파일)의 배치 디스크립터를 읽습니다.
  • 권한 부여 테이블 모듈은 역할 대 사용자 또는 그룹 테이블을 참조하여 클라이언트에 필요한 역할 중 하나가 부여되었는지 판별합니다. 역할 대 사용자 또는 그룹 맵핑 테이블은 권한 부여 테이블이라고도 하며 애플리케이션 시작 중에 보안 런타임으로 작성됩니다.

    권한 부여 테이블을 빌드하기 위해 보안 런타임은 애플리케이션 바인딩 파일 ibm-application-bnd.xmi 파일 또는 ibm-application-bnd.xml 파일을 적절하게 읽습니다.

    [z/OS]권한 부여 테이블은 RACF®와 같은 SAF(Security Access Facility)를 사용하여 권한 부여 시에 EJBROLE 프로파일에 액세스할 때도 빌드할 수 있습니다.

    지원된 구성 지원된 구성: IBM® 확장 및 바인딩 파일의 경우 .xmi 또는 .xml 파일 이름 확장자는 Java EE 5 이전 애플리케이션이나 모듈을 사용하는지 또는 Java EE 5 이상 애플리케이션이나 모듈을 사용하는지 여부에 따라 달라집니다. IBM 확장 또는 바인딩 파일 이름은 ibm-*-ext.xmi 또는 ibm-*-bnd.xmi입니다. 여기서, *는 확장 또는 바인딩 파일의 유형입니다(예: app, application, ejb-jar 또는 web). 다음 조건이 적용됩니다.
    • 버전 5 이전의 Java EE 버전을 사용하는 애플리케이션 또는 모듈의 경우, 파일 확장자는 .xmi여야 합니다.
    • Java EE 5 이상을 사용하는 애플리케이션 또는 모듈의 경우, 파일 확장자는 .xml이어야 합니다. .xmi 파일이 애플리케이션 또는 모듈에 포함된 경우 제품에서 .xmi 파일을 무시합니다.

    그러나 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 파일 확장자를 계속 사용합니다.

    sptcfg

권한 부여 정보를 사용하여 호출자에게 서비스 요청에 필요한 권한이 있는지를 판별하십시오. 권한 부여 정보는 많은 방법으로 저장할 수 있습니다. 예를 들어, 각 자원을 사용하여 사용자 및 사용자 권한 목록이 포함된 액세스 제어 목록을 저장할 수 있습니다. 자원 목록 및 해당 권한을 각 사용자와 연관시켜서도 정보를 저장할 수 있습니다. 이 목록은 기능 목록이라고 합니다.

WebSphere® Application Server는 J2EE(Java 2 Platform, Enterprise Edition) 권한 부여 모델을 사용합니다. 이 모델에서 권한 부여 정보는 다음과 같이 구성됩니다.

애플리케이션 어셈블리 중에 메소드를 호출하는 권한이 하나 이상의 역할에 부여됩니다. 역할은 권한 세트입니다. 예를 들어, 금융 애플리케이션에서 역할은 창구 직원, 감독자, 캐시어, 기타 업종 관련 직위를 포함할 수 있습니다. 창구 직원 역할은 계정의 자금 관리에 관련된 메소드, 예를 들어 인출 및 입금 메소드를 실행하는 권한에 연관됩니다. 창구 직원 역할에 계정 닫기 권한은 부여되지 않습니다. 이 권한은 감독자 역할에 제공됩니다. 애플리케이션 어셈블러는 각 역할에 대한 메소드 권한 목록을 정의합니다. 이 목록은 애플리케이션에 대해 배치 디스크립터에 저장됩니다. Java EE7 이상에서는 특수 역할 이름 "**"가 도입됩니다. 이 역할은 사용자가 인증될 때 액세스 권한이 부여됨을 표시합니다.

다음 세 개의 특수 주제(Subject)는 J2EE 모델로 정의되지 않습니다. AllAuthenticatedUsers, AllAuthenticatedInTrustedRealms, Everyone. 특수한 주제(Subject)는 사용자 레지스트리 밖에서 정의되는 제품 정의 엔티티입니다. 이 엔티티는 일반적으로 레지스트리의 사용자 또는 그룹 클래스를 표시하는 데 사용됩니다.

문제점 방지 문제점 방지: WebSphere Application Server가 SAF를 사용하여 구성되면 특수 주제(Subject)는 무시됩니다. 이 기능은 SAF 내에서 사용 가능합니다. 기능은 RACF에서 RESTRICTED 특성을 사용하여 인증되지 않은 사용자 ID로 시뮬레이션됩니다. EJBROLE 프로파일이 READ의 UACC(Universal Access)로 작성되면 인증된 모든 사용자는 액세스 권한을 가지며 인증되지 않은 사용자 ID만 예외입니다. gotcha

애플리케이션 배치 중에 실제 사용자 또는 사용자 그룹은 역할에 지정됩니다. 사용자가 역할에 지정되면 사용자는 해당 역할에 부여된 모든 메소드 권한을 갖게 됩니다.

[z/OS]환경에 따라 일부 제한사항이 있을 수 있습니다. 예를 들어, SAF를 사용할 때 SAF 데이터베이스에 대해서는 항상 검사가 수행됩니다. 인증이 지정된 역할에 대한 액세스 검사가 시작되기 전에 인증이 완료되지 않으면 기본 SAF ID가 검사에 사용됩니다. 유효한 기본 사용자 ID가 com.ibm.SAF.authorization 특성에 정의되는 경우를 제외하고는 액세스가 부여되지 않습니다.

[AIX Solaris HP-UX Linux Windows][IBM i]애플리케이션 배치자는 개별 메소드를 이해할 필요가 없습니다. 역할을 메소드에 지정하여 애플리케이션 어셈블러는 애플리케이션 배치자 작업을 단순화합니다. 메소드 세트에 대해 작업하는 대신 배치자는 역할에 대해 작업하며 이는 메소드에 대한 시맨틱 그룹화를 표시합니다.

[z/OS]관리자는 이 역할 관리를 담당합니다.

사용자는 둘 이상의 역할에 지정 가능합니다. 사용자에 부여되는 권한은 각 역할에 부여되는 권한의 유니온입니다. 또한, 인증 메커니즘이 사용자 그룹화를 지원하면 이 그룹은 역할에 지정될 수 있습니다. 그룹을 역할에 지정하는 겻은 각 개별 사용자를 역할에 지정하는 것과 동일한 효과가 있습니다.

[AIX Solaris HP-UX Linux Windows][IBM i]배치 중에 우수 사례는 다음과 같은 이유로 개별 사용자 대신 그룹을 역할에 지정하는 것입니다.
  • 권한 검사 중에 성능이 향상됩니다. 일반적으로 사용자 수보다 권한 수가 훨씬 적습니다.
  • 그룹 멤버십을 사용하여 자원 액세스를 제어해서 더 많은 융통성을 제공합니다.
  • 제품 환경 밖에서의 그룹에서 사용자 추가 및 삭제를 지원합니다. 이 조치는 WebSphere Application Server 역할에 추가 및 제거에 선호되는 조치입니다. 이런 변경사항이 적용되도록 하려면 엔터프라이즈 애플리케이션을 중지하고 다시 시작하십시오. 이 조치는 프로덕션 환경에서는 방해 요소가 될 수 있습니다.

[z/OS]배치 중에 우수 사례는 개별 사용자 대신 그룹을 역할에 지정하는 것입니다. 권한 부여에 SAF EJBROLES 대신 바인딩을 사용하고 바인딩 값을 변경해야 하는 경우 새 값이 선택되도록 서버를 다시 시작해야 합니다. SAF EJBROLES를 사용 중인 경우 애플리케이션 서버는 자동으로 변경사항을 발견합니다. 자세한 정보는 역할 기반 권한 부여에 대해 SAF(System Authorization Facility)를 참조하십시오.

런타임에서 WebSphere Application Server는 사용자의 ID 정보 및 역할에 대한 사용자 맵핑을 기반으로 수신 요청을 권한 부여합니다. 사용자가 메소드를 실행할 권한이 있는 임의 역할에 속하는 경우 요청이 권한 부여됩니다. 사용자가 권한이 있는 역할에 속하지 않으면 요청은 거부됩니다.

J2EE 접근 방식은 권한 부여에 대한 선언적 접근 방식이지만 모든 상황을 선언적으로 처리할 수 없음도 인지합니다. 이런 상황에서 사용자와 역할 정보를 프로그래밍 방식으로 판별하도록 메소드가 제공됩니다. 엔터프라이즈 Bean의 경우, 다음 두 메소드가 WebSphere Application Server에서 지원됩니다.
  • getCallerPrincipal: 이 메소드는 사용자 ID 정보를 검색합니다.
  • isCallerInRole: 이 메소드는 특정 역할에 대해 사용자 ID 정보를 검사합니다.
서블릿의 경우, 다음 메소드가 WebSphere Application Server에서 지원됩니다.
  • getRemoteUser
  • isUserInRole
  • getUserPrincipal

이 메소드는 엔터프라이즈 Bean 메소드의 용도에 대응합니다.

J2EE 보안 권한 부여에 대한 자세한 정보는 다음 웹 사이트를 참조하십시오. http://java.sun.com


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_rolebased
파일 이름:csec_rolebased.html