Liberty 일괄처리 프레임워크를 사용하면
모든 일괄처리 관리 조작에 대한 역할 기반 액세스를 구성할 수 있으며 일괄처리 작업과 연관된 메타데이터 및 로그를 볼 수도 있습니다.
시작하기 전에
일괄처리 역할은 일괄처리 컨테이너에서 정의합니다. 단일 사용자에게 둘 이상의 일괄처리 역할이 있을 수 있습니다.
- batchAdmin
- batchAdmin은 모든 일괄처리 조작에 대해 무제한 액세스 권한이 있습니다. 여기에는 새 작업을 제출하고, 임의 사용자의 작업을 중지 및 다시 시작하며,
일괄처리 도메인의 사용자가 제출하는 작업 로그와 작업 메타데이터를 보고, 작업을 제거하는 권한이 포함됩니다. batchAdmin이 반드시 WebSphere® Application Server 관리자인 것은 아닙니다.
batchGroupAdmin
사용자가 batchGroupAdmin 역할을 가지고 작업이 지정되는 조작 그룹의 멤버인 경우 해당 작업에 대한 모든 일괄처리 조작에 액세스할 수 있습니다. batchGroupAdmin 역할을 가진 사용자는
작업을 중지, 반복, 다시 시작 및 보기를 수행할 수 있지만 batchSubmitter 역할을 가지고 있지 않는 한 새 작업을 제출할 수는 없습니다. batchGroupAdmin 사용자는
동일한 조작 그룹의 다른 사용자가 제출한 작업을 영구 제거할 뿐 아니라 작업 메타데이터 및 작업 로그를 볼 수 있습니다. batchGroupAdmin 사용자가 반드시 WebSphere Application Server 관리자인 것은 아닙니다.
- batchSubmitter
- batchSubmitter는 새 작업을 제출하는 권한이 있으며 자신의 작업에 대해 중지, 다시 시작 또는 제거와 같은 일괄처리 조작만 수행할 수 있습니다.
batchSubmitter는 다른 사용자의 작업을 보거나 수정할 수 없습니다. 예를 들어, user1과 user2가 batchSubmitter로 정의되고 user1이 작업을 제출하는 경우
user2는 user1의 작업과 연관된 작업 인스턴스 데이터를 볼 수 없습니다.
- batchMonitor
- batchMonitor 역할을 가진 사용자에게는 모든 작업에 대한 읽기 전용 권한이
있습니다. 이 역할이 있는 사용자는 모든 작업 인스턴스와 실행을 볼 수 있으며 모든 작업 로그에
대해 액세스 권한이 있습니다. batchMonitor 역할을 가진 사용자는 자신의 작업을
제출하거나 작업을 중지, 다시 시작 또는 제거할 수 없습니다.
batchGroupMonitor
batchGroupMonitor에는 사용자가 속한 조작 그룹과 연관된 모든 작업에 대한 읽기 전용 권한이 있습니다.
이 역할이 있는 사용자는 모든 작업 인스턴스와 실행을 볼 수 있으며 조작 그룹 영역에 있는 작업의 모든 작업 로그에
대한 액세스 권한을 가지고 있습니다. batchGroupMonitor는 작업을 제출, 중지, 다시 시작 또는 영구 제거할 수 없습니다.
참고: 일괄처리 보안이 사용으로 설정되면 목록을 리턴하는 JobOperator API
메소드 또는 REST 조작이 현재 사용자에게 부여된 일괄처리 역할을 기반으로
필터링됩니다. 예를 들어, batchSubmitter 권한만 있는 사용자가 모든 작업 인스턴스
목록을 요청하는 경우 현재 사용자가 제출한 작업 인스턴스만 리턴됩니다.
프로시저
- 기본적으로 batch-1.0 기능은 보안을 사용하지 않습니다. JobOperator 메소드는 인증 여부에 관계 없이 모든 사용자에게 개방되어 있습니다.
이 메소드는 개발 용도로만 개방되어 있으며 보안 구성이 필요하지 않습니다. batchManagement-1.0 기능은 일괄처리 REST API를 사용으로 설정합니다. REST API는 appSecurity-2.0 기능이 사용으로 설정되지
않아도 사용자에게 인증을 요구하지만, 모든 사용자는 일괄처리 관리자로 취급되며
임의 작업 인스턴스에 대해 모든 일괄처리 조작을 수행할 수 있습니다.
appSecurity-2.0이 사용으로 설정되면 일괄처리 역할 기반 보안
권한이 수행되며 사용자는 주어진 일괄처리 역할로 정의된 일괄처리 조작에
제한됩니다.
- JobOperator API를 통해 일괄처리 역할 기반 보안을 사용으로 설정하십시오.
<featureManager>
<feature>batch-1.0</feature>
<feature>appSecurity-2.0</feature>
</featureManager>
- REST API를 통해 일괄처리 역할 기반 보안을 사용으로 설정하십시오.
참고: batchManagement-1.0 기능은 batch-1.0 기능을 포함합니다.
<featureManager>
<feature>batchManagement-1.0</feature>
<feature>appSecurity-2.0</feature>
</featureManager>
- 역할 기반 보안을 지원하도록 server.xml 파일을 구성하십시오. 다음 예는 사용자 목록을 정의하는 기본 사용자 레지스트리를 보여줍니다. 이
레지스트리는 샘플 일괄처리 역할 기반 보안 구성에서 사용됩니다.
<basicRegistry id="basic" realm="ibm/api">
<user name="alice" password="alicepwd" />
<user name="bob" password="bobpwd" />
<user name="jane" password="janepwd" />
<user name="joe" password="joepwd" />
<user name="phyllis" password="phyllispwd" />
<user name="kai" password="kaipwd" />
</basicRegistry>
이 예에서는 한 명의 사용자가 여러 가지 역할을 차지합니다.
<authorization-roles id="com.ibm.ws.batch">
<security-role name="batchAdmin" >
<user name="alice" />
</security-role>
<security-role name="batchSubmitter" >
<user name="jane" />
<user name="phyllis" />
<user name="bob"/>
</security-role>
<security-role name="batchMonitor" >
<user name="joe" />
<user name="bob"/>
</security-role>
</authorization-roles>
이 예에서는 한 명의 사용자가 여러 가지 역할을 차지합니다. 모든 사용자에게 batchSubmitter 역할이 있습니다. <authorization-roles id="com.ibm.ws.batch">
<security-role name="batchAdmin" >
<user name="alice" />
</security-role>
<security-role name="batchSubmitter" >
<special-subject type="ALL_AUTHENTICATED_USERS"/>
</security-role>
<security-role name="batchMonitor" >
<user name="joe" />
<user name="bob"/>
</security-role>
</authorization-roles>
이 예에서는 한 명의 사용자가 여러 가지 역할을 차지합니다. 인증되지 않은 사용자를 포함하여 모든 사용자에게 batchMonitor 역할이 주어집니다.
<authorization-roles id="com.ibm.ws.batch">
<security-role name="batchAdmin" >
<user name="alice" />
</security-role>
<security-role name="batchSubmitter" >
<user name="joe" />
<user name="bob"/>
</security-role>
<security-role name="batchMonitor" >
<special-subject type="EVERYONE"/>
</security-role>
</authorization-roles>
참고: zosSecurity-1.0 기능이 사용으로 설정되면 SAF 권한 제공자가 일괄처리 역할 기반 인증을 처리합니다.
SAF 권한 제공자는
EJBROLE 클래스에 정의된 SAF 자원 프로파일에 대한 클라이언트의 액세스 레벨을 확인하여 클라이언트의 권한을 결정합니다. 기본적으로 다음과 같은 자원
프로파일이 일괄처리 역할과 연관됩니다.
batchAdmin: BBGZDFLT.com.ibm.ws.batch.batchAdmin
batchSubmitter: BBGZDFLT.com.ibm.ws.batch.batchSubmitter
batchMonitor: BBGZDFLT.com.ibm.ws.batch.batchMonitor
클라이언트 ID가 상응하는 일괄처리 역할에 대한 권한을 부여받으려면 클라이언트 ID에 해당 자원 프로파일에 대한 READ 액세스 권한이 부여되어야 합니다.
다음 예제는
클라이언트 ID bob에 batchAdmin 역할 권한을 부여하는
RACF® 명령을 보여줍니다.
RDEFINE EJBROLE BBGZDFLT.com.ibm.ws.batch.batchAdmin UACC(NONE)
PERMIT BBGZDFLT.com.ibm.ws.batch.batchAdmin CLASS(EJBROLE) ID(bob) ACCESS(READ)