권한 부여

Liberty 프로파일에서의 권한은 사용자에게 시스템의 특정 역할에 대한 액세스 권한이 있는지 여부를 판별합니다.

권한 부여는 자원에 액세스 권한을 지정합니다. 그리고 일반적으로 ID를 확인하는 인증을 수행합니다. 인증이 "당신은 당신이 자신이라고 주장하는 그 사람이 맞는가?"라는 질문에 대해 응답한다면, 권한 부여는 "당신은 자신이 수행하려 하는 작업에 대한 권한이 있는가?"라는 질문에 대해 응답합니다.

관리 기능을 위한 권한 부여

엔티티가 자원에 액세스하려고 하는 경우, 권한 부여 서비스는 엔티티가 자원에 액세스하기 위해 필요한 권한을 가지고 있는지 여부를 판별합니다. 이 개념은 엔티티가 애플리케이션에 액세스하거나 관리 기능을 수행하는지 여부에 상관없이 적용됩니다. 애플리케이션에 액세스와 관리 기능에 대한 액세스 권한 부여의 기본 차이점은 사용자가 역할에 맵핑되는 방법에 있습니다. 애플리케이션의 권한 부여의 경우, server.xml 또는 ibm-application-bnd.xml/xmi 파일에서 application-bnd 요소를 사용하여 사용자를 역할에 맵핑할 수 있습니다. 관리 기능의 권한 부여의 경우, server.xml 파일에서 administrator-role 요소를 사용하여 사용자를 관리자 역할에 맵핑하십시오. 관리 보안에 대한 자세한 정보는 JMX를 사용하여 Liberty 프로파일에 연결의 내용을 참조하십시오.

애플리케이션의 권한 부여

다음 다이어그램은 애플리케이션에 대해 권한 부여가 동작하는 방법을 설명합니다.

그림 1. 권한 부여 프로세스 개요 권한 부여 서비스는
애플리케이션과 서버의 구성 파일에서
역할 대 사용자 맵핑을 확인한 다음
액세스 요청을 부여하거나 거부합니다.
  1. 엔티티가 Liberty 프로파일이 제공하는 애플리케이션의 자원에 액세스를 시도할 때 권한이 작성됩니다. 웹 컨테이너는 권한 부여 서비스를 호출하여 사용자에게 하나 이상의 필수 역할 세트를 제공한 특정 자원에 액세스할 권한이 있는지 여부를 판별합니다. 필수 역할은 배치 디스크립터 및 @ServletSecurity 어노테이션의 auth-constraint 요소에서 판별됩니다.
  2. 권한 부여 서비스는 필수 역할이 맵핑된 오브젝트를 판별합니다. 이 단계는 ibm-application-bnd.xmi 파일 또는 ibm-application-bnd.xml 파일과 server.xml 파일의 application-bnd 요소에서 정의되는 맵핑을 처리하여 달성됩니다. 이 두 소스로부터의 맵핑이 병합됩니다. 동일 역할이 두 소스에 있는 경우, server.xml 파일의 역할 맵핑만이 사용됩니다. 사용자에 역할을 맵핑하기 위해 server.xml 파일을 사용하면 EAR 파일로 패키징하지 않으며 보다 쉽게 업데이트되는 이점이 있습니다. 또는, ibm-application-bnd.xmi/xml 파일을 사용하면 애플리케이션을 server.xml 파일을 지원하지 않는 다른 전체 프로파일 서버 및 다른 서버로 이식할 수 있습니다.
  3. 필수 역할을 EVERYONE 특수 주제로 맵핑하면 권한 부여 서비스가 즉시 리턴되어 모든 사람이 액세스할 수 있습니다. 역할이 ALL_AUHENTICATED 특수 주제로 맵핑되고 사용자가 인증되면 권한 부여 서비스는 사용자에게 액세스 권한을 부여합니다. 이 조건 중 충족되는 조건이 없는 경우 권한 부여 서비스는 필수 역할에 맵핑되는 사용자와 그룹을 판별합니다. 사용자가 필수 역할에 맵핑되거나 사용자가 역할에 맵핑된 그룹의 일부인 경우 권한 부여 서비스는 자원에 대한 액세스 권한을 부여합니다.
  4. 권한 부여 서비스는 결과를 다시 웹 컨테이너로 리턴하여 사용자에게 액세스 권한이 부여되었는지 또는 거부되었는지 여부를 표시합니다.

특수 주제

엔티티가 역할에 맵핑된 경우, 특수 사용자나 그룹 대신 특수 주제를 맵핑할 수 있습니다. 특수 주제는 주제 개념에 대한 확장입니다. 특수 주제는 특수 카테고리 아래 배치되는 사용자의 그룹을 표시할 수 있습니다.

다음과 같은 두 가지 유형의 특수 주제를 사용할 수 있습니다.
  • EVERYONE: 시스템의 엔티티를 나타내며, 모든 사람이 액세스할 수 있도록 허용되고 신임 정보를 입력하라는 프롬프트가 표시되지 않기 때문에 보안이 제공되지 않음을 의미합니다.
  • ALL_AUTHENTICATED_USERS: 서버에 대해 성공적으로 인증되는 엔티티를 나타냅니다.
특수 주제를 사용자에 맵핑하려면 ibm-application-bnd.xmi/xml 파일 또는 server.xml 파일을 업데이트하십시오. 여기서 application-bndapplication 요소 아래에 있습니다. 이 예제에서는 AllAuthenticated라는 역할이 특수 주제인 ALL_AUTHENTICATED_USERS에 맵핑됩니다.
    <application-bnd>
           <security-role name="AllAuthenticated">
               <special-subject type="ALL_AUTHENTICATED_USERS"/>
           </security-role>
       </application-bnd>

Liberty 프로파일에서 애플리케이션에 대한 권한 구성을 확인하십시오.

액세스 ID 및 권한

사용자 또는 그룹에 권한을 부여할 때 서버에는 해당 사용자 또는 그룹을 고유하게 식별하는 방법이 필요합니다. 사용자와 그룹의 고유 ID는 이러한 용도로 제공되며 권한 부여 구성을 빌드하는 데 사용됩니다. 이 ID는 사용자 레지스트리 구현으로 판별됩니다. 고유 사용자 ID는 getUniqueUserId()의 값이며, 고유 그룹 ID는 getUniqueGroupId()의 값입니다. 권한 부여 구성의 사용자나 그룹에 대해 액세스 ID를 명시적으로 지정하도록 선택할 수도 있습니다. 사용자 레지스트리 구현에 의해 리턴되는 값 대신 이 명시적 액세스 ID가 사용됩니다. ibm-application-bnd.xml/xmi 파일 또는 server.xml 파일(여기서 application-bndapplication 요소 아래에 있음)에서 액세스 ID를 지정하려면 user 또는 group 요소에 대한 access-id 속성을 사용하십시오.

이 예제에서 액세스 ID는 사용자 Bob 및 그룹 developers에 대해 지정됩니다.
    <application-bnd>
           <security-role name="Employee">
               <user name="Bob" access-id="user:MyRealm/Bob"/>
               <group name="developers" access-id="group:myRealm/developers"/>
           </security-role>
    </application-bnd>
참고: access-id 속성은 권한 검사를 위해 사용됩니다. 이 속성이 지정되지 않은 경우 이 속성은 사용자 또는 그룹 이름을 사용하여 구성되는 레지스트리에서 판별됩니다. 하지만 사용자 또는 그룹이 활성 레지스트리에 속하지 않는 경우(예: 프로그래밍 방식 로그인을 사용하는 경우)에는 예제와 같이 access-id 속성을 지정해야 합니다.

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

Information Center 이용 약관 | 피드백


시간소인 아이콘 마지막 업데이트 날짜: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=cwlp_authorization
파일 이름: cwlp_authorization.html