여기에서 JEUS 도메인의 메인 설정 파일인 domain.xml에서 Security Manager에 관련된 태그에 대한 설명을 찾을 수 있다.
XML Schema 파일:
JEUS_HOME/lib/schemas/jeus/jeus-security.xsd
레퍼런스는 다음 형식으로 구성되어 있다.
XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.
태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.
XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.
XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element
몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.
Element Reference: 트리에 있는 각 XML 태그를 설명한다.
Dynamic: 동적 설정 반영 가능
Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.
Description: 태그에 대한 간단한 설명.
Value Description: 입력하는 값과 타입.
Value Type: 값의 데이터 타입. (예: String)
Value Type Description: 값의 데이터 타입에 대한 설명
Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.
Defined Value: 이미 정해져 있는 값.
Example: 해당 XML 태그에 대한 예.
Performance Recommendation: 성능 향상을 위해서 추천하는 값.
Child Elements: 자신의 태그 안에 사용하는 태그.
(7) <connect-retries>?
(10) <password-validator>?
(11) <default-password-validator>
(12) <minLength>? P
(13) <maxLength>? P
(14) <force-special-character>? P
(15) <force-digit>? P
(16) <force-capital-letter>? P
(17) <force-small-letter>? P
(18) <deny-username>? P
(19) <custom-password-validator>
(20) <class-name>*
(5)
<domain> <security-manager>
| |
| Description | JEUS Security 정보 관리에 대한 설명이다. 하나의 도메인 내의 공통 Security 정보를 관리할 때 설정한다. |
| Value Type |
security-managerType
|
| Child Elements |
(6)
(7)
(10)
|
(6)
<domain> <security-manager> <default-application-domain>
| |
| Description | Security 도메인 중 애플리케이션 Security에 사용될 도메인의 이름을 설정한다. |
| Value Type |
valuableToken
|
| Default Value |
SYSTEM_DOMAIN
|
(7)
<domain> <security-manager> <connect-retries>
| |
| Description | Security 네트워크 서비스 중 재연결을 시도할 횟수를 설정한다. |
| Value Type |
int
|
(8)
<domain> <security-manager> <security-domain-names>
| |
| Description | Security 도메인 중 제우스에서 사용할 도메인 이름들을 설정한다. 이 값은 security-domains 에 반드시 존재해야 한다. |
| Value Type |
security-domain-namesType
|
| Child Elements |
(9)
|
(9)
<domain> <security-manager> <security-domain-names> <security-domain-name>
| |
| Description | Security 도메인 이름을 설정한다. Security 도메인 설정에서 name 값을 참조한 값이다. |
| Value Type |
token
|
(10)
<domain> <security-manager> <password-validator>
| |
| Description | JEUS 계정의 암호를 지정할 때, 암호의 보안성을 높이기 위하여 암호 적합성 검사를 설정한다. |
| Value Type |
password-validatorType
|
| Child Elements | |
(11)
<domain> <security-manager> <password-validator> <default-password-validator>
| |
| Description | 기본적으로 제공되는 암호 적합성 검사를 설정한다. |
| Value Type |
default-password-validatorType
|
| Child Elements |
(12)
(13)
(14)
(15)
(16)
(17)
(18)
|
(12)
<domain> <security-manager> <password-validator> <default-password-validator> <minLength>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호의 최소 길이를 설정한다. |
| Value Type |
nonNegativeIntType
|
| Value Type Description | 0 이상의 Int 값이다. |
| Default Value |
1
|
(13)
<domain> <security-manager> <password-validator> <default-password-validator> <maxLength>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호의 최대 길이를 설정한다. |
| Value Type |
nonNegativeIntType
|
| Value Type Description | 0 이상의 Int 값이다. |
| Default Value |
255
|
(14)
<domain> <security-manager> <password-validator> <default-password-validator> <force-special-character>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호에 특수 문자가 반드시 들어가야하는지 여부를 설정한다. true로 설정된다면 반드시 1자이상의 특수문자가 암호에 포함되어야 한다. 입력가능한 특수문자는 !"#$%&()*+'-./:;<=>?@[\]^_`{|}~이다. |
| Value Type |
boolean
|
| Default Value |
false
|
(15)
<domain> <security-manager> <password-validator> <default-password-validator> <force-digit>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호에 숫자(0~9)가 반드시 들어가야하는지 여부를 설정한다. true로 설정된다면 반드시 1자이상의 숫자가 암호에 포함되어야 한다. |
| Value Type |
boolean
|
| Default Value |
false
|
(16)
<domain> <security-manager> <password-validator> <default-password-validator> <force-capital-letter>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호에 알파벳 대문자가 반드시 들어가야하는지 여부를 설정한다. true로 설정된다면 반드시 1자이상의 알파벳 대문자가 암호에 포함되어야 한다. |
| Value Type |
boolean
|
| Default Value |
false
|
(17)
<domain> <security-manager> <password-validator> <default-password-validator> <force-small-letter>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호에 알파벳 소문자가 반드시 들어가야하는지 여부를 설정한다. true로 설정된다면 반드시 1자이상의 알파벳 소문자가 암호에 포함되어야 한다. |
| Value Type |
boolean
|
| Default Value |
false
|
(18)
<domain> <security-manager> <password-validator> <default-password-validator> <deny-username>
| |
| Dynamic | 동적 변경이 가능하다. |
| Description | 암호에 사용자 계정과 같은 문자가 들어가는 것을 제한할지를 설정한다. true로 설정된다면 암호에는 사용자 계정과 같은 문자가 들어가면 암호가 적합하지 않게된다. 이 때 사용자 계정 문자열은 대소문자 구별을 한다. |
| Value Type |
boolean
|
| Default Value |
false
|
(19)
<domain> <security-manager> <password-validator> <custom-password-validator>
| |
| Description | 하이퍼프레임에서 제공하는 PasswordValidator 인터페이스를 구현한 사용자 암호 검사 클래스를 등록한다. 등록된 암호 검사 클래스는 차례로 모두 호출되고 모두 통과되어야 적합한 암호라고 판단하여 저장된다. |
| Value Type |
custom-password-validatorType
|
| Child Elements |
(20)
|
(20)
<domain> <security-manager> <password-validator> <custom-password-validator> <class-name>
| |
| Description | 사용자가 구현한 암호 적합성 검사 클래스를 설정한다. |
| Value Type |
string
|
[예 3.1] Security Manager domain.xml 파일 예제
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<domain>
<!-- Security Manager information for JEUS Security System -->
<security-domains>
<!-- added domain in JEUS Security System -->
<security-domain>
<name>SYSTEM_DOMAIN</name>
<authentication>
<!-- authentication service for DBRealm Service -->
<default-repository-service>
<database-repository>
<vendor>oracle</vendor>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@61.77.153.110:1521:ORCL</url>
<username>scott</username>
<password>{base64}dGlnZXI=</password>
</database-repository>
</default-repository-service>
</authentication>
</security-domain>
<security-domain>
<name>JACC_DOMAIN</name>
<authorization>
<!-- authorization service for JACC Authorization Service -->
<jacc-service/>
</authorization>
</security-domain>
<security-domain>
<name>SAMPLE_DOMAIN</name>
<!-- added identity assertion service about SubjectDN -->
<identity-assertion>
<default-identity-assertion-service>
<x509-identity-assertion>
<default-user-mapper>
<cert-attr-type>SubjectDN</cert-attr-type>
<attribute-type>CN</attribute-type>
<attribute-value-delimiter>,</attribute-value-delimiter>
</default-user-mapper>
</x509-identity-assertion>
</default-identity-assertion-service>
</identity-assertion>
<!-- added credential verification service about X509Certificate -->
<credential-verification>
<custom-credential-verification-service>
jeus.security.impl.verification.X509CertificateVerific
ationService
</custom-credential-verification-service>
</credential-verification>
</security-domain>
<security-domain>
<name>MY_DOMAIN</name>
<login>
<!-- login service information for JAAS LoginModule Service -->
<jaas-login-config>
<login-module>
<login-module-classname>jeus.security.impl.login.DBRealmLoginM
odule</login-module-classname>
<control-flag>required</control-flag>
<option>
<name>exportName</name>
<value>dbrealmtest</value>
</option>
<option>
<name>principalsQuery</name>
<value>select password from MY_DOMAIN_Principals where user
name=?</value>
</option>
<option>
<name>rolesQuery</name>
<value>select * from MY_DOMAIN_roles where username=?</value>
</option>
</login-module>
</jaas-login-config>
</login>
<authorization>
<repository-service>
<!-- added authorization service for modifying policy in runtime
-->
<custom-repository>
jeus.security.impl.aznrep.CustomPolicyFileRealmAuth
orizationRepositoryService
<property>
<name>PolicyClassName</name>
<value>jeus.security.base.CustomJeusPolicy</value>
</property>
<!-- added Principal classname -->
<property>
<name>UserPrincipalClassName</name>
<value>jeus.security.resource.PrincipalImpl</value>
</property>
<!-- added RolePrincipal classname -->
<property>
<name>RolePrincipalClassName</name>
<value>jeus.security.resource.RolePrincipalImpl</value>
</property>
</custom-repository>
</repository-service>
</authorization>
</security-domain>
</security-domains>
</domain>