JEUS Security 안내서 

JEUS 8

Restricted Rights Legend

All TmaxSoft Software(JEUS®) and documents are protected by copyright laws and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and this document may only be distributed or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd. Nothing in this software document and agreement constitutes a transfer of intellectual property rights regardless of whether or not such rights are registered) or any rights to TmaxSoft trademarks, logos, or any other brand features.

This document is for information purposes only. The company assumes no direct or indirect responsibilities for the contents of this document, and does not guarantee that the information contained in this document satisfies certain legal or commercial conditions. The information contained in this document is subject to change without prior notice due to product upgrades or updates. The company assumes no liability for any errors in this document.

이 소프트웨어(JEUS®) 사용설명서의 내용과 프로그램은 저작권법과 국제 조약에 의해서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용권 계약 하에서만 사용이 가능하며, 사용설명서는 사용권 계약의 범위 내에서만 배포 또는 복제할 수 있습니다. 이 사용설명서의 전부 또는 일부분을 TmaxSoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배포, 2차적 저작물작성 등의 행위를 하여서는 안 됩니다.

이 소프트웨어 사용설명서와 프로그램의 사용권 계약은 어떠한 경우에도 사용설명서 및 프로그램과 관련된 지적재산권(등록 여부를 불문)을 양도하는 것으로 해석되지 아니하며, 브랜드나 로고, 상표 등을 사용할 권한을 부여하지 않습니다. 사용설명서는 오로지 정보의 제공만을 목적으로 하고, 이로 인한 계약상의 직접적 또는 간접적 책임을 지지 아니하며, 사용설명서 상의 내용은 법적 또는 상업적인 특정한 조건을 만족시키는 것을 보장하지는 않습니다. 사용설명서의 내용은 제품의 업그레이드나 수정에 따라 그 내용이 예고 없이 변경될 수 있으며, 내용상의 오류가 없음을 보장하지 아니합니다.

Trademarks

JEUS® is registered trademark of TmaxSoft Co., Ltd.

JEUS®는 TmaxSoft Co., Ltd.의 등록 상표입니다.

Java and Solaris are registered trademarks of Oracle Corporation and its subsidiaries and affiliates.

Java, Solaris는 Oracle Corporation 및 그 자회사, 관계회사의 등록 상표입니다.

Microsoft, Windows, and Windows NT are registered trademarks or trademarks of Microsoft Corporation.

Microsoft, Windows, Windows NT는 Microsoft Corporation의 등록 상표 또는 상표입니다.

HP-UX is a registered trademark of Hewlett Packard Enterprise Company.

HP-UX는 Hewlett Packard Enterprise Company의 등록 상표입니다.

AIX is a registered trademark of International Business Machines Corporation.

AIX는 International Business Machines Corporation의 등록 상표입니다.

UNIX is a registered trademark of X/Open Company, Ltd.

UNIX는 X/Open Company, Ltd.의 등록 상표입니다.

Linux is a registered trademark of Linus Torvalds.

Linux는 Linus Torvalds의 등록 상표입니다.

Other products and company names are trademarks or registered trademarks of their respective owners.

기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상호, 상표, 또는 등록 상표입니다.

The names of companies, systems, and products mentioned in this manual may not necessarily be indicated with a trademark symbol (TM, ®).

본 사용설명서에 기재된 회사, 시스템, 제품 이름 등에 반드시 상표 표시 (TM, ®)를 하지는 않습니다.

Open Source Software Notice

Some modules or files of this product are subject to the terms of the following licenses. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1

Detailed Information related to the license can be found in the following directory : ${INSTALL_PATH}/lib/licenses

본 제품의 일부 파일 또는 모듈은 다음의 라이선스를 준수합니다. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1

관련 상세한 정보는 제품의 다음의 디렉터리에 기재된 사항을 참고해 주십시오. : ${INSTALL_PATH}/lib/licenses

안내서 정보

안내서 제목: JEUS Security 안내서 

발행일: 2017-01-31

소프트웨어 버전: JEUS 8

안내서 버전: v2.1.1


내용 목차

안내서에 대하여
1. 보안 시스템 소개
1.1. 개요
1.2. 주요 특징
1.3. 시스템 구조
1.4. 주요 개념
1.4.1. 로그인
1.4.2. 인증
1.4.3. 권한 체크(부여)
1.4.4. 보안 감사
1.4.5. 서비스와 SPI
1.4.6. 도메인
1.5. 성능 향상과 수준 향상
1.5.1. 성능 향상
1.5.2. 수준 향상
2. 보안 시스템 설정
2.1. 개요
2.2. 보안 도메인 정의
2.2.1. WebAdmin 사용 설정
2.2.2. XML 편집 설정
2.2.3. 사용자 계정 및 보안 정책 설정
2.3. 보안 도메인 구성요소 설정
2.3.1. WebAdmin 사용 설정
2.3.2. XML 편집 설정
2.4. 보안 서비스 설정
2.4.1. WebAdmin 사용 설정
2.4.2. XML 편집 설정
2.5. 보안 시스템 사용자 정보 설정
2.5.1. WebAdmin 사용
2.5.2. XML 편집 설정
2.5.3. 데이터베이스 사용 설정
2.5.4. 패스워드 보안 설정
2.5.5. 로그인 정보 캐시 기능
2.6. 보안 시스템 정책 설정
2.6.1. WebAdmin 사용 설정
2.6.2. XML 편집 설정
2.6.3. 데이터베이스 사용 설정
2.7. 추가 항목 설정
2.7.1. Java SE SecurityManager 설정
2.7.2. JACC Provider 설정
2.7.3. Identity 부여를 위한 정보 설정
2.7.4. Identity에 대한 인증서 정보 설정
3. 애플리케이션과 모듈에서 보안 설정
3.1. 개요
3.1.1. 모듈 Deployment 대 애플리케이션 Deployment
3.1.2. Role-to-Resource 매핑
3.1.3. Principal-to-Role 매핑
3.1.4. 사용자 설정
3.2. EJB 모듈 보안 설정
3.2.1. ejb-jar.xml 설정
3.2.2. jeus-ejb-dd.xml 설정
3.3. 웹 모듈 보안 설정
3.3.1. web.xml 설정
3.3.2. jeus-web-dd.xml 설정
3.4. J2EE 애플리케이션 보안 설정
3.4.1. application.xml 설정
3.4.2. jeus-application-dd.xml 설정
3.5. 예제
4. 보안 시스템 API 프로그래밍
4.1. 개요
4.2. Java SE Permission 설정
4.3. 기본 API
4.4. 리소스 API
4.5. SPI 클래스
4.6. 예제
5. Custom 보안 서비스 개발
5.1. 개요
5.2. 서비스 클래스
5.3. Custom 보안 서비스 구현 패턴
5.4. SPI 클래스
5.4.1. SubjectValidationService SPI
5.4.2. SubjectFactoryService SPI
5.4.3. AuthenticationService SPI
5.4.4. AuthenticationRepositoryService SPI
5.4.5. IdentityAssertionService SPI
5.4.6. CredentialMappingService SPI
5.4.7. CredentialVerificationService SPI
5.4.8. AuthorizationService SPI
5.4.9. AuthorizationRepositoryService SPI
5.4.10. EventHandlingService SPI
5.4.11. Dependencies between SPI Implementations
5.5. 보안 서비스 설정
6. JACC Provider 사용
6.1. 개요
6.2. JACC 규약
6.2.1. Provider 설정 규약
6.2.2. Policy 설정 규약
6.2.3. Policy 결정 및 집행 규약
6.3. JACC Provider 개발
6.3.1. JACC Provider 구현
6.3.2. JACC Provider 패키징
6.3.3. Default JACC Provider
6.4. JEUS 보안 시스템과 JACC Provider 통합
7. JAAS 사용
7.1. 개요
7.2. JEUS-LDAP 연동 위한 LoginModule 구현
7.3. LDAP JAAS LoginModule 서비스 설정
7.4. 데이터베이스 연동 위한 LoginModule 구현
7.5. 데이터베이스 LoginModule 서비스 설정
A. 보안 이벤트 서비스
A.1. 개요
A.2. 이벤트
B. JEUS Server Permissions
B.1. 개요
B.2. JEUS 시스템 리소스 이름
B.3. jeusadmin 명령어 권한 설정
색인

그림 목차

[그림 1.1] 보안 시스템 구조
[그림 1.2] Stack 기반의 로그인 메커니즘
[그림 1.3] Subject UML 다이어그램
[그림 1.4] Role 기반 Permission 체크
[그림 1.5] 오전 1시 30분의 Role
[그림 1.6] 오전 10시 30분의 Role
[그림 1.7] Policy와 PermissionMap의 UML 다이어그램
[그림 1.8] 하나의 Principal-to-Role Map과 2개의 Role-to-Resource을 가진 Policy 예제
[그림 1.9] 서비스의 2가지 상태
[그림 1.10] 서비스 클래스와 SPI 서브 클래스들
[그림 1.11] 다른 애플리케이션과 다른 Subject Repository를 사용한 2개의 도메인
[그림 2.1] Security Manager 메인화면
[그림 2.2] 보안 도메인 설정
[그림 2.3] [Security Service] - [Cache Config]
[그림 2.4] [Security Manager] - [Key Store]
[그림 2.5] [Security Manager] - [Custom Service]
[그림 2.6] [Security Service] - [Authentication]
[그림 2.7] [Security Service] - [Authentication] - [Repository Service]
[그림 2.8] [Security Service] - [Authentication] - [Jaas Login Config]
[그림 2.9] [Security Service] - [Authentication] - [Custom Authetication Service]
[그림 2.10] [Security Service] - [Authorization] - [Basic]
[그림 2.11] [Security Service] - [Authorization] - [Custom Authorization Service]
[그림 2.12] [Security Service] - [Identity Assertion]
[그림 2.13] [Security Service] - [Credential Mapping]
[그림 2.14] [Security Service] - [Credential Verification]
[그림 2.15] [Security Service] - Audit
[그림 2.16] [Security Service] - [Subject Validation]
[그림 2.17] Accounts 설정화면
[그림 2.18] Accounts - 사용자 등록
[그림 2.19] Accounts - Password 설정
[그림 2.20] Accounts - Password 암호화
[그림 2.21] Subject에 대한 사용자 정보를 저장하기 위한 데이터베이스 테이블 구조
[그림 2.22] WebAdmin에서 Default Password Validator 설정 화면
[그림 2.23] WebAdmin에서 Custom Password Validator 설정 화면
[그림 2.24] Policy 설정 메인 화면
[그림 2.25] Policy 설정 - Role Permission 등록
[그림 2.26] Policy 설정 - Resource Permission 등록 (1)
[그림 2.27] Policy 설정 - Resource Permission 등록 (2)
[그림 2.28] Policy 설정 - Resource Permission 등록 (3)
[그림 2.29] Policy를 저장하기 위한 데이터베이스 테이블 구조
[그림 3.1] Principal-to-Role 매핑
[그림 3.2] 로그인 화면
[그림 3.3] 메인 화면
[그림 5.1] 서비스 클래스 다이어그램
[그림 5.2] 서비스 클래스의 상태 차트
[그림 5.3] 기본 보안 시스템 구현에서의 SPI 구현 클래스
[그림 6.1] JACC Provider 클래스

예 목차

[예 2.1] <<JEUS_HOME/domains/<domain name>/config/domain.xml>>
[예 2.2] 보안 시스템 서비스 설정 : <<domain.xml>>
[예 2.3] 보안 시스템 서비스 설정 : <<domain.xml>>
[예 2.4] 보안 시스템 사용자 정보 설정 : <<accounts.xml>>
[예 2.5] 데이터베이스를 이용한 사용자 설정 : <<domain.xml>>
[예 2.6] JEUS JDBC를 사용하지 않는 경우 설정 : <<domain.xml>>
[예 2.7] Default Password Validator로 패스워드 적합성 검사 설정 : <<domain.xml>>
[예 2.8] Custom Password Validator로 패스워드 적합성 검사 설정 : <<domain.xml>>
[예 2.9] 저장된 로그인 정보 : <<.jeuspasswd>>
[예 2.10] 보안 시스템 Policy 설정 : <<policies.xml>>
[예 2.11] Custom Permission 클래스 : <<TimeConstrainedRolePermission.java>>
[예 2.12] Custom Permission 클래스 : <<policies.xml>>
[예 2.13] 데이터베이스를 이용한 Policy 설정 : <<domain.xml>>
[예 2.14] Java SE SecurityManager 설정 : <<policy>>
[예 2.15] Identity 부여를 위한 정보 설정 : <<cert-user-map.xml>>
[예 2.16] Identity에 대한 인증서 정보 설정 : <<user-cert-map.xml>>
[예 3.1] EJB 모듈에 설정된 보안 제약 : <<ejb-jar.xml>>
[예 3.2] Principal-to-Role 매핑 : <<jeus-ejb-dd.xml>>
[예 3.3] 보안 설정 : <<ejb-jar.xml>>
[예 3.4] 보안 설정 : <<jeus-ejb-dd.xml>>
[예 3.5] 웹 모듈 보안 설정 : <<web.xml>>
[예 3.6] 웹 모듈 보안 설정 : <<jeus-web-dd.xml>>
[예 3.7] J2EE 애플리케이션 보안 설정 : <<application.xml>>
[예 3.8] J2EE 애플리케이션 보안 설정 : <<jeus-application-dd.xml>>
[예 6.1] JACC 보안 설정 파일 설정 : <<domain.xml>>
[예 6.2] JACC에 대한 Java 시스템 속성 설정<<domain.xml>>
[예 7.1] <<jeus.security.impl.login.LdapLoginModule>>
[예 7.2] 도메인 서비스 설정 : <<domain.xml>>
[예 7.3] <<jeus.security.impl.login.DBRealmLoginModule>>
[예 7.4] 도메인 서비스 설정 : <<domain.xml>>
[예 B.1] 보안 시스템 Policy 설정 : <<policies.xml>>