JEUS Security 안내서 

JEUS 21

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의 등록 상표입니다.

Noto is a trademark of Google Inc. Noto fonts are open source. All Noto fonts are published under the SIL Open Font License, Version 1.1. (https://www.google.com/get/noto/)

Noto는 Google Inc.의 상표입니다. Noto 글꼴은 오픈 소스입니다. 모든 Noto 글꼴은 SIL Open Font License, 버전 1.1에 따라 게시됩니다. (https://www.google.com/get/noto/)

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, ®)를 하지는 않습니다.

안내서 정보

안내서 제목: JEUS Security 안내서 

발행일: 2022-09-02

소프트웨어 버전: JEUS 21

안내서 버전: v2.1.1.0


내용 목차

안내서에 대하여
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. Jakarta EE 애플리케이션 보안 설정
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] WebAdmin 보안 도메인 설정
[그림 2.2] WebAdmin 보안 도메인 구성요소 설정
[그림 2.3] 보안 설정 화면 - [Basic] 탭 - Keystore Config 항목 설정
[그림 2.4] 보안 설정 화면 - [Basic] 탭 - Cache Config 항목 설정
[그림 2.5] 보안 설정 화면 - [Custom Service] 탭
[그림 2.6] 보안 설정 화면 - [Security Service] 탭
[그림 2.7] 보안 설정 화면 - [Authentication] 메뉴 - [Repository Service] 탭 - Xml File Repository 항목
[그림 2.8] 보안 설정 화면 - [Authentication] 메뉴 - [Repository Service] 탭 - Database Repository 항목
[그림 2.9] 보안 설정 화면 - [Authentication] 메뉴 - [Repository Service] 탭 - Custom Repository 항목
[그림 2.10] 보안 설정 화면 - [Authentication] 메뉴 - [Jaas Login Config] 탭
[그림 2.11] 보안 설정 화면 - [Authentication] 메뉴 - [Custom Service] 탭
[그림 2.12] 보안 설정 화면 - [Authorization] 메뉴 - [Basic] 탭
[그림 2.13] 보안 설정 화면 - [Authorization] 메뉴 - [Custom Authorization Service] 탭
[그림 2.14] 보안 설정 화면 - [Identity Assertion] 메뉴
[그림 2.15] 보안 설정 화면 - [Credential Mapping] 메뉴
[그림 2.16] 보안 설정 화면 - [Credential Verification] 메뉴
[그림 2.17] 보안 설정 화면 - [Audit] 메뉴
[그림 2.18] 보안 설정 화면 - [Subject Validation] 메뉴
[그림 2.19] 보안 기본 설정 화면 - [Account & Policy] 탭 - Account 설정 화면
[그림 2.20] 보안 기본 설정 화면 - [Account & Policy] 탭 - Account 설정 화면 - User 추가
[그림 2.21] 보안 기본 설정 화면 - [Account & Policy] 탭 - Account 설정 화면 - Password 변경
[그림 2.22] Subject에 대한 사용자 정보를 저장하기 위한 데이터베이스 테이블 구조
[그림 2.23] WebAdmin에서 Default Password Validator 설정 화면
[그림 2.24] WebAdmin에서 Custom Password Validator 설정
[그림 2.25] Policy 설정 메인 화면
[그림 2.26] Policy 설정 화면- [Policy] 메뉴 - Role Permission 추가
[그림 2.27] Policy 설정 화면- [Policy] 메뉴 - Resource Permission 등록 (1)
[그림 2.28] Policy 설정 화면- [Policy] 메뉴 - Resource Permission 등록 (2)
[그림 2.29] Policy 설정 화면- [Policy] 메뉴 - Resource Permission 등록 (3)
[그림 2.30] Policy를 저장하기 위한 데이터베이스 테이블 구조
[그림 3.1] Principal-to-Role 매핑
[그림 3.2] 로그인 화면
[그림 3.3] 메인 화면
[그림 5.1] 서비스 클래스 다이어그램
[그림 5.2] 서비스 클래스의 상태 차트
[그림 5.3] 기본 보안 시스템 구현에서의 SPI 구현 클래스
[그림 6.1] JACC Provider 클래스

예 목차

[예 2.1] 보안 도메인 설정 : <<domain.xml>>
[예 2.2] 보안 도메인 설정 : <<security-domains.xml>>
[예 2.3] 보안 도메인 설정 : <<domain.xml>>
[예 2.4] 보안 시스템 서비스 설정 : <<security-domains.xml>>
[예 2.5] 보안 시스템 서비스 설정 : <<security-domains.xml>>
[예 2.6] 보안 시스템 사용자 정보 설정 : <<accounts.xml>>
[예 2.7] 데이터베이스를 이용한 사용자 설정 : <<security-domains.xml>>
[예 2.8] JEUS JDBC를 사용하지 않는 경우 설정 : <<security-domains.xml>>
[예 2.9] Default Password Validator로 패스워드 적합성 검사 설정 : <<domain.xml>>
[예 2.10] Custom Password Validator로 패스워드 적합성 검사 설정 : <<domain.xml>>
[예 2.11] 보안 시스템 Policy 설정 : <<policies.xml>>
[예 2.12] Custom Permission 클래스 : <<TimeConstrainedRolePermission.java>>
[예 2.13] Custom Permission 클래스 : <<policies.xml>>
[예 2.14] 데이터베이스를 이용한 Policy 설정 : <<security-domains.xml>>
[예 2.15] Java SE SecurityManager 설정 : <<policy>>
[예 2.16] Identity 부여를 위한 정보 설정 : <<cert-user-map.xml>>
[예 2.17] 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] Jakarta EE 애플리케이션 보안 설정 : <<application.xml>>
[예 3.8] Jakarta EE 애플리케이션 보안 설정 : <<jeus-application-dd.xml>>
[예 6.1] JACC 보안 설정 파일 설정 : <<security-domains.xml>>
[예 6.2] JACC에 대한 Java 시스템 속성 설정 : <<domain.xml>>
[예 7.1] jeus.security.impl.login.LdapLoginModule
[예 7.2] LDAP JAAS LoginModule 서비스 설정 : <<security-domains.xml>>
[예 7.3] jeus.security.impl.login.DBRealmLoginModule
[예 7.4] 도메인 서비스 설정 : <<security-domains.xml>>
[예 B.1] 보안 시스템 Policy 설정 : <<policies.xml>>