여기에서 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>