Liberty에서 애플리케이션에 대한 권한 구성
애플리케이션 권한을 구성하면 사용자 또는 그룹이 지정된 역할에 속하는지 여부와 이 역할에 자원에 액세스할 수 있는 권한이 있는지 여부를 확인할 수 있습니다.
이 태스크 정보
Liberty 서버는 사용자 레지스트리에서 사용자 및 그룹 맵핑 정보를 추출한 후에 애플리케이션의 권한 구성을 확인하여 사용자 또는 그룹이 필수 역할 중 하나에 지정되었는지 여부를 판별합니다. 그런 다음, 서버는 애플리케이션의 배치 디스크립터를 읽고 나서 자원에 액세스할 수 있는 권한이 사용자 또는 그룹에 있는지를 판별합니다.
프로시저
- server.xml 파일에서 appSecurity-2.0
Liberty 기능을
사용하도록 설정하십시오. 예:
<featureManager> <feature>appSecurity-2.0</feature> </featureManager>
- Liberty 서버에서 인증을 위한 사용자 레지스트리를 구성하십시오.
Liberty에서 사용자 인증의 내용을 참조하십시오.
- 애플리케이션의 배치 디스크립터가 보안 제한조건 및 기타 보안 관련 정보를 포함하는지 확인하십시오. 참고: Rational® Application Developer와 같은 도구를 사용하여 배치 디스크립터를 작성할 수도 있습니다.
- 권한 정보(예: 역할 맵핑을 위한 사용자와 그룹)를 구성하십시오. 다음 방법을 사용하여 권한 테이블을 구성할 수 있습니다.
- EAR 파일이 있을 경우에는 권한 구성 정의를 ibm-application-bnd.xml 또는 ibm-application-bnd.xmi 파일에 추가할 수 있습니다.
- 독립형 WAR 파일이 있을 경우에는 권한 테이블 정의를 해당 애플리케이션 요소 아래의 server.xml 파일에 추가할 수 있습니다. WebSphere® Application Server Developer Tools for Eclipse를 사용하여 이를 수행할 수 있습니다.
참고:- EAR 파일이 있는 경우 권한 구성이 이미 존재할 수 있습니다. 현재 스펙에 기록된 EAR 파일에서 이 정보는 ibm-application-bnd.xml 파일에 저장되어 있습니다. 이전 EAR 파일에서는 ibm-application-bnd.xmi 파일에 저장되어 있습니다.
- EAR 파일에 아직 ibm-application-bnd.xm* 파일이 포함되어 있지 않을 경우, 이 파일을 작성하는 것이 간단한 태스크가 아니므로 권한 구성을 server.xml 파일에 추가하는 편이 더 쉬울 수 있습니다.
- EAR 파일의 권한 구성이 ibm-application-bnd.xm* 파일에 정의되어 있고 server.xml 파일에도 정의되어 있는 경우에는 두 테이블이 병합됩니다. 충돌이 발생하면 server.xml 파일의 정보가 사용됩니다.
- 사용자 레지스트리를 수정하면 필요한 변경을 위해 권한 부여 테이블을 검토하십시오. 예를 들어, access-id 요소를 지정하고 레지스트리의 영역 이름을 변경하면 access-id 요소에서 영역 이름도 변경해야 합니다.
- server.xml 파일에 application-bnd 요소를 지정하는 경우
애플리케이션이 dropins 폴더에 있으면 안 됩니다.
dropins 폴더에 애플리케이션을 그대로 둘 경우에는
server.xml 파일에서 다음을 설정하여 애플리케이션 모니터링을 사용 불가능하게 해야 합니다.
<applicationMonitor dropinsEnabled="false" />
역할은 사용자, 그룹 및 특수 대상에 맵핑할 수 있습니다. 특수 대상의 두 가지 유형은 EVERYONE과 ALL_AUTHENTICATED_USERS입니다. EVERYONE 특수 대상에 역할이 맵핑된 경우에는 누구에게나 액세스가 허용되며 신임 정보 입력을 요구하지 않으므로 보안이 되지 않습니다. 역할이 ALL_AUTHENTICATED_USERS 특수 주제에 맵핑되는 경우 애플리케이션 서버가 인증하는 사용자는 보호된 자원에 액세스할 수 있습니다.
아래 내용은 server.xml 파일 내의 역할 맵핑을 위해 사용자 및 그룹을 구성하는 예제 코드입니다.<application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war"> <application-bnd> <security-role name="user"> <group name="students" /> </security-role> <security-role name="admin"> <user name="gjones" /> <group name="administrators" /> </security-role> <security-role name="AllAuthenticated"> <special-subject type="ALL_AUTHENTICATED_USERS" /> </security-role> </application-bnd> </application>
이 예제에서 admin 역할은 사용자 ID gjones 및 그룹 administrators의 모든 사용자에게 맵핑되었습니다. AllAuthenticatedRole은 특수 대상 ALL_AUTHENTICATED_USERS에 맵핑되었으며, 이는 모든 사용자가 인증에 유효한 신임 정보를 제공하는 한 액세스 권한을 갖게 됨을 의미합니다.
- 선택사항: 애플리케이션 바인드 정보가 없는 경우 권한 부여 결정을 구성하십시오. 보호되는 애플리케이션에 대한 역할 맵핑 바인딩 정보를 제공하지 않은 경우 기본 권한 부여 엔진은 해당 역할과 연관된 그룹 이름으로 자원을 보호하는 역할 이름을 사용합니다. 따라서 예를 들어 역할 이름이 manager인 경우 manager 그룹에 속한 사용자는 해당 자원에 대한 액세스 권한을 보유하게 됩니다. 이는 server.xml 또는 애플리케이션 바인딩 파일의 애플리케이션 바인드 정보가 애플리케이션에 지정되지 않은 경우에만 적용됩니다. 예를 들어, 이 바인딩을 추가하면 그룹 바인딩에 대한 보안 역할을 사용 안함으로 지정합니다.
<application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war"> <application-bnd> <security-role name="anyAppRoleName"/> </application-bnd> </application>
참고: 사용자 레지스트리에서 그룹 이름으로 권한 부여에 성공하려면 역할 이름이 구성된 레지스트리에서 그룹의 전체 이름 또는 고유한 이름과 일치해야 하며 짧은 이름이 아니어야 합니다. 예를 들어, 그룹의 축약 이름이 swGroup이지만 사용자 레지스트리의 전체 또는 고유 이름이 CN=swGroup,o=company,c=us인 경우 권한 부여에 성공하려면 CN=swGroup,o=company,c=us를 규칙 이름으로 지정해야 합니다.

파일 이름: twlp_sec_rolebased.html