17.6 Role Based Access Control
JBoss EAP 6.2 버전부터 웹 콘솔과 CLI에 대해서 역할 기반 접근 권한 제어기능(RBAC; Role Based Access Control)을 제공한다.
예를 들어, 관리 콘솔에 애플리케이션 배포 권한만 가진 사용자가 로그인하면 애플리케이션 배포 기능 이외에는 설정을 변경하지 못한다.
기본적으로는 RBAC가 적용되어 있지 않고, CLI에서 다음 명령으로 기능을 사용하도록 설정하여야 한다.
그런데 이 명령을 실행하면 add-user.sh 실행시 Role을 할당하지 않았기 때문에 기존의 사용자도 콘솔에 로그인하지 못한다.
먼저 콘솔에서 ‘Administration’ ‘Role Assignment’ ‘Users’ ‘Add’를 클릭하여 다음과 같이 관리자에게 ‘SuperUser’ Role을 부여한다.

그림 15. 사용자에 Role 부여
RBAC로 변경하는 방법은 다음과 같다.
[standalone@localhost:9999/] /core-service=management/access=authorization:write-attribute(name=provider, value=rbac)
{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}
[standalone@localhost:9999/] /:reload
{
"outcome" => "success",
"result" => undefined
}
다시 RBAC를 사용하지 않으려면 원래대로 simple로 변경하면 된다.
[standalone@localhost:9999/] /core-service=management/access=authorization:write-attribute(name=provider, value=simple)
사용할 수 있는 Role은 Administrator, Auditor, Deployer, Maintainer, Monitor, Operator, SuperUser가 있고 사용자에게 Role을 직접 할당할 수도 있고, 여러 가지 Role을 할당한 그룹을 사용하여 사용자에게 Role을 할당할 수도 있다.
예를 들어 Deployer Role만 사용할 수 있는 deployer라는 사용자가 콘솔에 로그인하면 다음과 같이 다른 항목은 보기만 가능하고 수정할 수 없다. ‘Runtime’ ‘Manage Deployments’ 메뉴만 사용할 수 있다.

그림 16. Deployer 권한은 배포 작업만 가능하다