제3장 domain.xml의 Security Manager 설정

내용 목차

3.1. 소개
3.2. XML Schema/XML 트리
3.3. Element Reference
3.4. Security Manager domain.xml 파일 예제

여기에서 JEUS 도메인의 메인 설정 파일인 domain.xml에서 Security Manager에 관련된 태그에 대한 설명을 찾을 수 있다.

레퍼런스는 다음 형식으로 구성되어 있다.

  1. XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.

    1. 태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.

    2. XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.

    3. XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element

    4. 몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.

  2. Element Reference: 트리에 있는 각 XML 태그를 설명한다.

    1. Dynamic: 동적 설정 반영 가능

    2. Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.

    3. Description: 태그에 대한 간단한 설명.

    4. Value Description: 입력하는 값과 타입.

    5. Value Type: 값의 데이터 타입. (예: String)

    6. Value Type Description: 값의 데이터 타입에 대한 설명

    7. Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.

    8. Defined Value: 이미 정해져 있는 값.

    9. Example: 해당 XML 태그에 대한 예.

    10. Performance Recommendation: 성능 향상을 위해서 추천하는 값.

    11. Child Elements: 자신의 태그 안에 사용하는 태그.

(5) < domain > <security-manager>
Description JEUS Security 정보 관리에 대한 설명이다. 하나의 도메인 내의 공통 Security 정보를 관리할 때 설정한다.
Value Type security-managerType
Child Elements

(7) default-application-domain

(8) connect-retries

(9) security-domain-names

(11) password-validator

[예 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>