14.2 보안 도메인
보안 도메인은 JBoss EAP 6의 보안 서브시스템의 일부이다. 보안 설정은 모든 관리 도메인의 도메인 컨트롤러나 스탠드얼론 모드에서 관리 할 수 있도록 한다.
보안 도메인은 인증, 인가, 맵핑, 감사의 설정으로 구성된다. 보안 도메인은 Java 인증 및 권한 서비스(JAAS)의 보안을 구현한다.
인증은 사용자 신원을 확인하는 것을 말한다. 보안에서는 사용자를 Principle이라고 한다. 인증 및 권한 부여는 다르지만, 인증 모듈의 대부분은 권한에 대해서도 처리한다.
권한은 허가 또는 금지된 작업에 대한 정보가 포함된 보안 정책이다. 보안에서는 역할이라고 한다.
보안 맵핑은 정보를 애플리케이션에 전달하기 전에 서브젝트(주체) 및 역할 특성에 대해 정보를 추가, 편집, 삭제하는 기능이다.
감사는 보안 관련 이벤트를 보고하는 방법을 설정한다.
애플리케이 션에서 보안 도메인을 사용하면 애플리케이션의 보안 모듈이나 프로그래밍으로 처리하던 부분을 제거할 수 있다. 애플리케이션에는 어떤 보안 도메인을 사용한다는 설정만 하면 된다.
보안 서브시스템 중 가장 많이 사용되는 것이 보안 도메인이며, 기본적으로 jboss-ejb-policy, jboss-web-policy, other의 3개 보안도메인이 설정되어있다.
보안 도메인이 지원하는 보안의 종류와 사용할 수 있는 모듈들은 다음과 같다.
| 보안의 종류 | 설명 | 모듈 |
|---|---|---|
| 인증(Authentication) | 서브젝트(주체)를 식별하여 진짜가 맞는지 검증한다. 가장 일반적인 인증 방식은 사용자 아이디와 패스워드를 사용하는 방식이다. 사용자 정보를 Principle이라고 한다. | •Client •Certificate •Database •Identity •Ldap •Kerberos외 |
| 인가(Authorization) | 자원에 대한 접근 권한을 검증하는 역할을 한다. Principle에 대해 제공할 수 있는 보안 역할(Role)이다 | •DenyAll •PermitAll •Delegating •Web •JACC •XACML |
| 맵핑(Mapping) | 인증, 인가가 실행된 후 애플리케이션에 전달되기 전 인증, 인가 정보를 Principle이나 역할(Role), 보증서(Credential) 등 정보와 맵핑한다. | •PropertiesRoles •SimpleRoles •DeploymentRoles •DatabaseRoles •LdapRoles |
| 감사(Audit) | 보안 서브시스템 내에서 발생한 이벤트를 로그에 기록하는 등의 작업을 한다. | •LogAuditProvider |
표 2. 보안 도메인의 보안의 종류와 모듈