Sun Java System Directory Server Enterprise Edition 6.3 관리 설명서

2 디렉토리 프록시 서버 관리

17장 디렉토리 프록시 서버 도구

Sun JavaTM System Directory Proxy Server 는 디렉토리 프록시 서버 인스턴스를 등록하고 관리할 수 있는 브라우저 인터페이스 및 명령줄 도구를 제공합니다. 브라우저 인터페이스는 디렉토리 서비스 제어 센터(Directory Service Control Center, DSCC)라고 합니다. 이 장에서는 DSCC 또는 명령줄을 사용하여 디렉토리 프록시 서버를 관리하는 데 필요한 기본 작업에 대해 설명합니다.

특정 작업을 수행하는 데 DSCC를 사용할지, 아니면 명령줄을 사용할지를 결정하려면 DSCC 및 명령줄 사용 시기 결정을 참조하십시오.

관리 프레임워크에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 Deployment Planning GuideDirectory Server Enterprise Edition Administration Model을 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

디렉토리 프록시 서버의 DSCC 사용

이 절에서는 디렉토리 프록시 서버의 DSCC에 액세스하는 방법에 대해 설명합니다.

Procedure디렉토리 프록시 서버의 DSCC에 액세스하는 방법

  1. 디렉토리 서버에서와 동일한 방법으로 DSCC에 액세스합니다.

    DSCC에 액세스하는 방법을 참조하십시오.

  2. 디렉토리 프록시 서버를 보고 관리하려면 프록시 서버 탭을 누릅니다.

    다음 그림은 디렉토리 프록시 서버의 초기 창을 보여줍니다.

    그림 17–1 디렉토리 프록시 서버의 초기 DSCC 창

    화면 캡처는 DSCC에 등록된 디렉토리 프록시 서버 목록을 보여줍니다.

  3. 해당 서버를 보거나 관리하려면 디렉토리 프록시 서버 인스턴스를 누릅니다.


    주 –

    DSCC 사용에 대한 자세한 내용은 온라인 도움말을 참조하십시오.


디렉토리 프록시 서버의 명령줄 도구

디렉토리 프록시 서버 작업에 사용하는 명령줄 도구는 dpadmdpconf라고 합니다. 이 명령을 사용하는 방법에 대한 자세한 내용은 dpadm(1M)dpconf(1M) 설명서 페이지를 참조하십시오.

dpconf, dsconf, dsmig, dsccmon, dsccregdsccsetup은 LDAP 기반 명령이므로 사용자 바인드 DN 및 비밀번호를 지정해야만 인증됩니다. 반면에 dpadmdsadm 명령은 인스턴스 파일에서 작동합니다.

이 절에서는 dpadmdpconf 명령 위치에 대해 설명합니다. 또한 환경 변수, 명령 간 비교와 명령 사용에 관한 도움말 위치에 대한 정보도 제공합니다.

디렉토리 프록시 서버 명령 위치

디렉토리 프록시 서버 명령줄 도구는 기본적으로 다음 디렉토리에 있습니다.


install-path/dps6/bin

설치 경로는 운영 체제에 따라 달라집니다. 모든 운영 체제에 대한 설치 경로는 기본 경로 및 명령 위치에 나와 있습니다.

dpconf의 환경 변수 설정

dpconf 명령에는 환경 변수를 사용하여 미리 설정할 수 있는 몇 가지 옵션이 필요합니다. 이 명령을 사용할 때 옵션을 지정하지 않거나 환경 변수를 설정하지 않으면 기본 설정이 사용됩니다. 다음 옵션에 대한 환경 변수를 구성할 수 있습니다.

-D userDN

사용자 바인드 DN. 환경 변수: LDAP_ADMIN_USER. 기본값: cn=Proxy Manager

-w password-file

사용자 바인드 DN에 대한 비밀번호 파일. 환경 변수: LDAP_ADMIN_PWF. 기본값: 비밀번호를 요청하는 메시지 표시

-h host

호스트 이름 또는 IP 주소. 환경 변수: DIR_PROXY_HOST . 기본값: localhost

-p LDAP-port

LDAP 포트 번호. 환경 변수: DIR_PROXY_PORT. 기본값: 서버 인스턴스가 root로 실행 중인 경우 389이고, 서버 인스턴스가 일반 사용자로 실행 중인 경우 1389입니다.

-e, --unsecured

dpconf는 기본적으로 명확한 연결을 열도록 지정합니다. 환경 변수: DIR_PROXY_UNSECURED. 이 변수가 설정되지 않은 경우 dpconf는 기본적으로 보안 연결을 엽니다.

자세한 내용은 dpconf(1M) 설명서 페이지를 참조하십시오.

dpadmdpconf 비교

다음 표는 dpadmdpconf 명령에 대한 비교 내용을 보여줍니다.

표 17–1 dpadmdpconf 명령 비교

 

dpadm 명령

dpconf 명령

용도 

디렉토리 프록시 서버의 로컬 인스턴스에서 프로세스 또는 파일 관리 

디렉토리 프록시 서버의 로컬 또는 원격 인스턴스 구성 

사용자 

운영 체제 사용자 

LDAP 사용자 

로컬 또는 원격 

이 명령은 인스턴스에 대해 로컬로 실행해야 합니다. 즉, 서버가 실행 중인 호스트에서 명령을 실행해야 합니다.

이 명령은 인스턴스에 대해 로컬에서뿐만 아니라 네트워크상의 어느 위치에서도 실행할 수 있습니다.

명령 사용 예 

디렉토리 프록시 서버 인스턴스를 만듭니다. 

디렉토리 프록시 서버 인스턴스를 시작하고 중지합니다. 

인증서 데이터베이스를 관리합니다. 

디렉토리 프록시 서버 인스턴스의 구성을 수정합니다. 

데이터 보기를 만듭니다. 

데이터 소스 풀에서 로드 균형 조정을 구성합니다. 

서버 상태 

서버가 실행 중이거나 중지된 상태일 수 있습니다. 

서버가 실행 중이어야 합니다.

명령에서 서버 인스턴스를 식별하는 방법 

인스턴스 경로를 지정합니다. 인스턴스 경로는 상대 경로이거나 절대 경로일 수 있습니다. 

호스트 이름 또는 IP 주소 및 포트 번호를 지정합니다. 

이 명령은 LDAP 포트(-p) 또는 LDAPS 보안 포트(-P)를 사용합니다. 명령줄에 포트 번호를 지정하지 않으면 환경 변수 PROXY_PORT가 사용됩니다. 환경 변수가 설정되어 있지 않으면 기본 포트가 사용됩니다.

dpconf로 값이 여러 개인 등록 정보 설정

특정 디렉토리 프록시 서버 등록 정보의 값은 여러 개일 수 있습니다. 다음 값을 지정하려면 아래 구문을 사용하십시오.


$ dpconf set-container-prop -h host -p port \
 property:value [property:value]

예를 들어 이름이 my-view인 LDAP 데이터 보기에 쓰기 가능한 속성을 여러 개 설정하려면 다음 명령을 입력합니다.


$ dpconf set-ldap-data-view-prop -h host1 -p 1389 view-name\
 writable-attr:uid writable-attr:cn writable-attr:userPassword

값이 이미 여러 개인 등록 정보에 값을 추가하려면 다음 명령을 입력합니다.


$ dpconf set-container-prop -h host -p port \
 property+:value

값이 이미 여러 개인 등록 정보에서 값을 제거하려면 다음 명령을 입력합니다.


$ dpconf set-container-prop -h host -p port\
 property-:value

예를 들어 이전에 설명한 시나리오에서 sn을 쓰기 가능한 속성 목록에 추가하려면 다음 명령을 입력합니다.


$ dpconf set-ldap-data-view-prop -h host1 -p 1389 view-name\
writable-attr+:sn

쓰기 가능한 속성 목록에서 cn을 제거하려면 다음 명령을 입력합니다.


$ dpconf set-ldap-data-view-prop -h host1 -p 1389 view-name\
writable-attr-:cn

dpadmdpconf 사용에 대한 도움말 보기

dpadmdpconf 명령을 사용하는 방법에 대한 자세한 내용은 dpadm(1M)dpconf(1M) 설명서 페이지를 참조하십시오.

18장 디렉토리 프록시 서버 인스턴스

이 장에서는 디렉토리 프록시 서버 인스턴스를 관리하는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

디렉토리 프록시 서버 인스턴스 작업

디렉토리 프록시 서버의 인스턴스를 만들 경우 인스턴스에 필요한 파일과 디렉토리가 지정된 경로에 만들어집니다.

Procedure디렉토리 프록시 서버 인스턴스를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

DSCC를 사용하여 새 서버 인스턴스를 만들 경우 기존 서버에서 서버 구성 설정 중 일부 또는 모두를 복사하도록 선택할 수 있습니다.

  1. 디렉토리 프록시 서버 인스턴스를 만듭니다.


    $ dpadm create -p port instance-path
    

    예를 들어 /local/dps 디렉토리에서 새 인스턴스를 만들려면 다음 명령을 사용합니다.


    $ dpadm create -p 2389 /local/dps

    인스턴스의 다른 매개 변수를 지정하려면 dpadm(1M) 설명서 페이지를 참조하십시오.

  2. 필요한 경우 비밀번호를 입력합니다.

  3. 인스턴스의 상태를 확인하여 인스턴스가 만들어졌는지 확인합니다.


    $ dpadm info instance-path
    
  4. (옵션) Sun JavaTM Enterprise System 설치 프로그램이나 기본 패키지 설치를 사용하여 디렉토리 프록시 서버를 설치했으며 OS에서 서비스 관리 솔루션을 제공할 경우 다음 표와 같이 서버를 서비스로 관리하도록 활성화할 수 있습니다.

    운영 체제 

    명령 

    Solaris 10 

    dpadm enable-service --type SMF instance-path

    Solaris 9 

    dpadm autostart instance-path

    Linux, HP-UX 

    dpadm autostart instance-path

    Windows 

    dpadm enable-service --type WIN_SERVICE instance-path

  5. (옵션) 다음 방법 중 하나를 사용하여 서버 인스턴스를 등록합니다.

    • URL https://localhost:6789를 통해 DSCC에 액세스하고 브라우저 인터페이스에 로그인합니다.

    • dsccreg add-server 명령을 사용합니다.

      자세한 내용은 dsccreg(1M) 설명서 페이지를 참조하십시오.

Procedure디렉토리 프록시 서버 인스턴스의 상태를 확인하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버 인스턴스의 상태를 확인합니다.


    $ dpadm info instance-path
    

Procedure디렉토리 프록시 서버를 시작 및 중지하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버를 시작하거나 중지하려면 다음 중 하나를 수행합니다.

    • 디렉토리 프록시 서버를 시작하려면 다음을 입력합니다.


      $ dpadm start instance-path
      

      예를 들어 /local/dps에서 인스턴스를 시작하려면 다음 명령을 사용합니다.


      $ dpadm start /local/dps
    • 디렉토리 프록시 서버를 중지하려면 다음을 입력합니다.


      $ dpadm stop instance-path
      

      예를 들면 다음과 같습니다.


      $ dpadm stop /local/dps

Procedure디렉토리 프록시 서버 인스턴스를 다시 시작해야 하는지 여부를 확인하는 방법

구성 변경을 적용하려면 서버를 다시 시작해야 하는 경우가 있습니다. 이 절차를 사용하여 구성을 변경한 후에 디렉토리 프록시 서버 인스턴스를 다시 시작해야 하는지 여부를 확인합니다.

  1. 서버를 다시 시작해야 하는지 여부를 확인합니다.


    $ dpconf get-server-prop -h host -p port is-restart-required
    • 이 명령에서 true를 반환할 경우 디렉토리 프록시 서버 인스턴스를 다시 시작해야 합니다.

    • 이 명령에서 false를 반환할 경우 디렉토리 프록시 서버 인스턴스를 다시 시작할 필요가 없습니다.

Procedure디렉토리 프록시 서버를 다시 시작하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버를 다시 시작합니다.


    $ dpadm restart instance-path
    

    예를 들어 /local/dps에서 인스턴스를 다시 시작하려면 다음 명령을 사용합니다.


    $ dpadm restart /local/dps

Procedure디렉토리 프록시 서버 인스턴스를 삭제하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. (옵션) 디렉토리 프록시 서버 인스턴스를 중지합니다.


    $ dpadm stop instance-path
    

    인스턴스를 중지하지 않으면 삭제 명령은 인스턴스를 자동으로 중지합니다. 그러나 서비스 관리 솔루션에서 인스턴스를 활성화한 경우 수동으로 중지해야 합니다.

  2. (옵션) 이전에 DSCC를 사용하여 서버를 관리했다면 명령줄을 사용하여 서버를 등록 취소합니다.


    $ dsccreg remove-server /local/dps
    Enter DSCC administrator's password:
    /local/dps is an instance of DPS
    Enter password of "cn=Proxy Manager" for /local/dps:
    Unregistering /local/dps from DSCC on localhost.
    Connecting to /local/dps
    Disabling DSCC access to /local/dps

    자세한 내용은 dsccreg(1M) 설명서 페이지를 참조하십시오.

  3. (옵션) 이전에 서비스 관리 솔루션에서 서버 인스턴스를 활성화한 경우 서버를 서비스로 관리하지 않도록 비활성화합니다.

    운영 체제 

    명령 

    Solaris 10 

    dpadm disable-service --type SMF instance-path

    Solaris 9 

    dpadm autostart --off instance-path

    Linux, HP-UX 

    dpadm autostart --off instance-path

    Windows 

    dpadm disable-service --type WIN_SERVICE instance-path

  4. 인스턴스를 삭제합니다.


    $ dpadm delete instance-path
    

디렉토리 프록시 서버 인스턴스 구성

이 절에서는 디렉토리 프록시 서버 인스턴스를 구성하는 방법에 대해 설명합니다. 이 절의 절차에서는 dpadmdpconf 명령을 사용합니다. 이러한 명령에 대한 자세한 내용은 dpadm(1M)dpconf(1M) 설명서 페이지를 참조하십시오.

Procedure디렉토리 프록시 서버 인스턴스 구성을 표시하는 방법

  1. dpconf info를 입력합니다.


    $ dpconf info
    Instance Path           :  instance path
    Host Name               :  host
    Secure listen address   :  IP address
    Port                    :  port
    Secure port             :  secure port
    SSL server certificate  :  defaultServerCert
    
    Directory Proxy Server needs to be restarted.

    dpconf info에는 해당 등록 정보가 기본값이 아닌 값으로 설정된 경우에만 Secure listen addressNon-secure listen address가 표시됩니다. 위 출력에는 이 등록 정보가 기본값 이외의 값으로 설정되지 않았으므로 Non-secure listen address가 표시되지 않습니다.

    또한 dpconf info는 다시 시작해야 할 경우 인스턴스를 다시 시작하도록 사용자에게 알립니다.

    dpadm info를 사용하여 디렉토리 프록시 서버 인스턴스 구성 정보를 표시할 수도 있습니다.

Procedure디렉토리 프록시 서버 구성을 수정하는 방법

이 절에서는 디렉토리 프록시 서버의 구성을 수정하는 방법에 대해 설명합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버의 현재 구성을 찾습니다.


    $ dpconf get-server-prop -h host -p port
    

    allow-cert-based-auth                : allow
    allow-ldapv2-clients                             : true
    allow-persistent-searches                        : false
    allow-sasl-external-authentication               : true
    allow-unauthenticated-operations                 : true
    allowed-ldap-controls                            : -
    cert-data-view-routing-custom-list               : none
    cert-data-view-routing-policy                    : all-routable
    cert-search-attr-mappings                        : none
    cert-search-base-dn                              : none
    cert-search-bind-dn                              : none
    cert-search-bind-pwd                             : none
    cert-search-user-attr                            : userCertificate
    configuration-manager-bind-dn                    : cn=proxy manager
    configuration-manager-bind-pwd                   : {3DES}RPdIFbvoWdvhLR8lU43zCMZyKFGPxfFg
    connection-pool-wait-timeout                     : 3s
    data-source-read-timeout                         : 20s
    data-view-automatic-routing-mode                 : automatic
    email-alerts-enabled                             : false
    email-alerts-message-from-address                : local
    email-alerts-message-subject                     : Proxy Server Administrative Alert
    email-alerts-message-subject-includes-alert-code : false
    email-alerts-message-to-address                  : root@localhost
    email-alerts-smtp-host                           : localhost
    email-alerts-smtp-port                           : smtp
    enable-remote-user-mapping                       : false
    enable-user-mapping                              : false
    enabled-admin-alerts                             : none
    enabled-ssl-cipher-suites                        : JRE
    enabled-ssl-protocols                            : SSLv3
    enabled-ssl-protocols                            : TLSv1
    encrypt-configuration                            : true
    extension-jar-file-url                           : none
    is-restart-required                              : false
    number-of-search-threads                         : 20
    number-of-worker-threads                         : 50
    proxied-auth-check-timeout                       : 30m
    remote-user-mapping-bind-dn-attr                 : none
    scriptable-alerts-command                        : echo
    scriptable-alerts-enabled                        : false
    search-mode                                      : parallel
    search-wait-timeout                              : 10s
    ssl-client-cert-alias                            : none
    ssl-server-cert-alias                            : defaultServerCert
    supported-ssl-cipher-suites                      : SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DHE_DSS_WITH_DES_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DHE_RSA_WITH_DES_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DH_anon_EXPORT_WITH_RC4_40_MD5
    supported-ssl-cipher-suites                      : SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DH_anon_WITH_DES_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_DH_anon_WITH_RC4_128_MD5
    supported-ssl-cipher-suites                      : SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_RSA_EXPORT_WITH_RC4_40_MD5
    supported-ssl-cipher-suites                      : SSL_RSA_WITH_3DES_EDE_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_RSA_WITH_DES_CBC_SHA
    supported-ssl-cipher-suites                      : SSL_RSA_WITH_NULL_MD5
    supported-ssl-cipher-suites                      : SSL_RSA_WITH_NULL_SHA
    supported-ssl-cipher-suites                      : SSL_RSA_WITH_RC4_128_MD5
    supported-ssl-cipher-suites                      : SSL_RSA_WITH_RC4_128_SHA
    supported-ssl-cipher-suites                      : TLS_DHE_DSS_WITH_AES_128_CBC_SHA
    supported-ssl-cipher-suites                      : TLS_DHE_RSA_WITH_AES_128_CBC_SHA
    supported-ssl-cipher-suites                      : TLS_DH_anon_WITH_AES_128_CBC_SHA
    supported-ssl-cipher-suites                      : TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5
    supported-ssl-cipher-suites                      : TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA
    supported-ssl-cipher-suites                      : TLS_KRB5_EXPORT_WITH_RC4_40_MD5
    supported-ssl-cipher-suites                      : TLS_KRB5_EXPORT_WITH_RC4_40_SHA
    supported-ssl-cipher-suites                      : TLS_KRB5_WITH_3DES_EDE_CBC_MD5
    supported-ssl-cipher-suites                      : TLS_KRB5_WITH_3DES_EDE_CBC_SHA
    supported-ssl-cipher-suites                      : TLS_KRB5_WITH_DES_CBC_MD5
    supported-ssl-cipher-suites                      : TLS_KRB5_WITH_DES_CBC_SHA
    supported-ssl-cipher-suites                      : TLS_KRB5_WITH_RC4_128_MD5
    supported-ssl-cipher-suites                      : TLS_KRB5_WITH_RC4_128_SHA
    supported-ssl-cipher-suites                      : TLS_RSA_WITH_AES_128_CBC_SHA
    supported-ssl-protocols                          : SSLv2Hello
    supported-ssl-protocols                          : SSLv3
    supported-ssl-protocols                          : TLSv1
    syslog-alerts-enabled                            : false
    syslog-alerts-facility                           : USER
    syslog-alerts-host                               : localhost
    use-cert-subject-as-bind-dn                      : true
    use-external-schema                              : false
    user-mapping-anonymous-bind-dn                   : none
    user-mapping-anonymous-bind-pwd                  : none
    user-mapping-default-bind-dn                     : none
    user-mapping-default-bind-pwd                    : none
    verify-certs                                     : false

    또는 하나 이상의 구성 등록 정보에 대해 현재 설정을 봅니다.


    $ dpconf get-server-prop -h host -p port property-name ...

    예를 들어 다음 명령을 실행하여 인증되지 않은 작업이 허용되는지 확인합니다.


    $ dpconf get-server-prop -h host -p port allow-unauthenticated-operations
    allow-unauthenticated-operations  :  true
  2. 하나 이상의 구성 매개 변수를 변경합니다.


    $ dpconf set-server-prop -h host -p port property:value ...

    예를 들어 다음 명령을 실행하여 인증되지 않은 작업을 허용하지 않습니다.


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:false

    잘못된 변경을 수행할 경우 해당 변경 사항은 적용되지 않습니다. 예를 들어 allow-unauthenticated-operations 매개 변수를 false 대신에 f로 설정할 경우 다음 오류가 발생합니다.


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:f
    The value "f" is not a valid value for the property "allow-unauthenticated-operations".
    Allowed property values: BOOLEAN
    The "set-server-prop" operation failed.
  3. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

프록시 관리자 구성

프록시 관리자는 권한을 가진 관리자, UNIX® 시스템의 루트 사용자와 유사합니다. 프록시 관리자 항목은 디렉토리 프록시 서버 인스턴스가 만들어질 때 정의됩니다. 프록시 관리자의 기본 DN은 cn=Proxy Manager입니다.

다음 절차에 표시된 것처럼 프록시 관리자 DN 및 비밀번호를 보고 변경할 수 있습니다.

Procedure프록시 관리자를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 프록시 관리자의 구성을 찾습니다.


    $ dpconf get-server-prop -h host -p port configuration-manager-bind-dn configuration-manager-bind-pwd
    configuration-manager-bind-dn   :  cn=proxy manager
    configuration-manager-bind-pwd  :  {3DES}U77v39WX8MDpcWVrueetB0lfJlBc6/5n

    프록시 관리자의 기본값은 cn=proxy manager입니다. 구성 관리자 비밀번호에 해시된 값이 반환됩니다.

  2. 프록시 관리자의 DN을 변경합니다.


    $ dpconf set-server-prop -h host -p port configuration-manager-bind-dn:bindDN
    
  3. 프록시 관리자의 비밀번호를 포함하는 파일을 만들고 해당 파일을 가리키는 등록 정보를 설정합니다.


    $ dpconf set-server-prop -h host -p port configuration-manager-bind-pwd-file:filename
    

서버를 다시 시작해야 하는 구성 변경 사항

디렉토리 프록시 서버 및 해당 엔티티에 대한 구성 변경 사항은 대부분 온라인으로 수행할 수 있습니다. 특정 변경 사항의 경우 변경 사항을 적용하려면 서버를 다시 시작해야 합니다. 다음 목록의 등록 정보에 대한 구성 변경 사항을 수행한 경우 서버를 다시 시작해야 합니다.

aci-data-view
bind-dn
client-cred-mode
custom-distribution-algorithm
db-name
db-pwd
db-url
db-user
distribution-algorithm
ldap-address
ldap-port
ldaps-port
listen-address
listen-port
load-balancing-algorithm
num-bind-init
num-read-init
num-write-init
number-of-search-threads
number-of-threads
number-of-worker-threads
ssl-policy
use-external-schema

등록 정보의 rwsrwd 키워드는 등록 정보를 변경한 경우 서버를 다시 시작해야 하는지 여부를 나타냅니다.

등록 정보를 변경한 경우 서버를 다시 시작해야 하는지 확인하려면 다음 명령을 실행합니다.

$ dpconf help-properties | grep property-name

예를 들어 LDAP 데이터 소스의 바인드 DN을 변경한 경우 서버를 다시 시작해야 하는지 확인하려면 다음 명령을 실행합니다.

$ dpconf help-properties | grep bind-dn
connection-handler   	bind-dn-filters        rwd  STRING | any
This property specifies a set of regular expressions. The bind DN 
of a client must match at least one regular expression in order for 
the connection to be accepted by the connection handler. (Default: any)
ldap-data-source      bind-dn               rws  DN | ""
This property specifies the DN to use when binding to the LDAP data 
source. (Default: undefined)

구성을 변경한 후에 서버를 다시 시작해야 하는지 확인하려면 다음 명령을 실행합니다.

$ dpconf get-server-prop -h host -p port is-restart-required

디렉토리 프록시 서버 인스턴스 백업 및 복원

dpadm을 사용하여 디렉토리 프록시 서버를 백업할 경우 구성 파일과 서버 인증서가 백업됩니다. 디렉토리 프록시 서버 가상 ACI를 구현한 경우 ACI도 백업됩니다.

디렉토리 프록시 서버는 서버가 성공적으로 시작될 때마다 conf.ldif 파일을 자동으로 백업합니다.

Procedure디렉토리 프록시 서버 인스턴스를 백업하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버 인스턴스를 중지합니다.


    $ dpadm stop instance-path
    
  2. 디렉토리 프록시 서버 인스턴스를 백업합니다.


    $ dpadm backup instance-path archive-dir
    

    archive-dir 디렉토리는 backup 명령으로 만들어지며 이 명령을 실행하기 전에 존재하지 않아야 합니다. 이 디렉토리에는 각 구성 파일과 인증서의 백업이 포함됩니다.

Procedure디렉토리 프록시 서버 인스턴스를 복원하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

복원 작업을 시작하기 전에 디렉토리 프록시 서버 인스턴스를 만들어야 합니다.

  1. 디렉토리 프록시 서버 인스턴스를 중지합니다.


    $ dpadm stop instance-path
    
  2. 디렉토리 프록시 서버 인스턴스를 복원합니다.


    $ dpadm restore instance-path archive-dir
    
    • 인스턴스 경로가 있을 경우 복원 작업이 자동으로 수행됩니다. archive-dir 디렉토리의 구성 파일과 인증서는 instance-path 디렉토리의 구성 파일과 인증서를 대체합니다.

    • 인스턴스 경로가 없을 경우 복원 작업이 실패합니다.

19장 LDAP 데이터 보기

LDAP 데이터 보기는 LDAP 서버의 데이터를 클라이언트 요청에 표시하고 요청에 응답하는 데이터 소스 풀을 지정합니다. LDAP 데이터 보기를 정의하면 다음 작업을 수행할 수 있습니다.

LDAP 데이터 보기 만들기

LDAP 데이터 보기 만들기는 다음 단계로 구성됩니다.

  1. LDAP 데이터 소스를 만드는 방법

  2. LDAP 데이터 소스 풀을 만드는 방법

  3. 데이터 소스 풀에 LDAP 데이터 소스를 첨부하는 방법

  4. LDAP 데이터 보기를 만드는 방법

LDAP 데이터 소스 만들기 및 구성

이 절에서는 dpconf 명령을 사용하여 LDAP 데이터 소스를 만들고 구성하는 방법에 대해 설명합니다. 이러한 항목에 대한 참조 정보는 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceLDAP Data Sources를 참조하십시오.

LDAP 데이터 소스를 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

ProcedureLDAP 데이터 소스를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스를 만듭니다.


    $ dpconf create-ldap-data-source -h host -p port source-name host:port
    

    이 명령에서 source-name은 새 데이터 소스에 할당하는 이름입니다. hostport는 LDAP 서버가 실행 중인 호스트와 포트를 나타냅니다. 데이터 소스는 기본적으로 SSL을 사용하지 않습니다.

    호스트가 IP V6 주소로 지정된 경우에는 데이터 소스를 만들 때 IP V6 참조를 사용해야 합니다. 예를 들어 디렉토리 프록시 서버가 포트 2389에서 IP V6 주소 fe80::209:3dff:fe00:8c93을 가진 호스트에 바인드될 경우 다음 명령을 사용하여 데이터 소스를 만듭니다.


    $ dpconf create-ldap-data-source -h host1 -p 1389 ipv6-host \
     [fe80::209:3dff:fe00:8c93]:2389

    콘솔을 사용하여 데이터 소스를 만들 경우 대괄호 없이 실제 IP V6 주소를 지정해야 합니다.

    LDAP 데이터 소스의 등록 정보를 수정하는 방법에 대한 자세한 내용은 LDAP 데이터 소스를 구성하는 방법을 참조하십시오.

  2. (옵션) 데이터 소스의 목록을 봅니다.


    $ dpconf list-ldap-data-sources -h host -p port
    

ProcedureLDAP 데이터 소스를 구성하는 방법

다음 절차는 LDAP 데이터 소스의 등록 정보 표시 방법 및 변경해야 하는 등록 정보의 설정 방법을 나타냅니다. 또한, 이 절차에서는 LDAP 데이터 소스의 등록 정보 중 변경이 가능한 항목을 사용하는 명령을 보여주며 해당 등록 정보를 설정하는 데 유용하게 사용할 수 있는, 등록 정보의 세부 정보를 보는 방법에 대해서도 설명합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 다음 명령 구문을 사용하여 데이터 소스의 등록 정보를 봅니다.


    $ dpconf get-ldap-data-source-prop -h host -p port \
    [-M unit] [-Z unit] source-name [property...]

    이 명령에서 -M-Z는 데이터를 표시할 단위를 나타냅니다. M 옵션은 시간 단위를 지정합니다. -M 값은 월, 주, 일, 시, 분, 초 또는 밀리초를 나타내는 M, w, d, h, m, s 또는 ms가 될 수 있습니다. -Z 옵션은 데이터 크기 단위를 지정합니다. -Z 값은 테라바이트, 기가바이트, 메가바이트, 킬로바이트 또는 바이트를 나타내는 T, G, M, k 또는 b가 될 수 있습니다.

    등록 정보를 지정하지 않으면 모든 등록 정보가 표시됩니다. LDAP 데이터 소스의 기본 등록 정보는 다음과 같습니다.


    bind-dn                        :  -
    bind-pwd                       :  -
    client-cred-mode               :  use-client-identity
    connect-timeout                :  10s
    description                    :  -
    is-enabled                     :  false
    is-read-only                   :  true
    ldap-address                   :  host
    ldap-port                      :  port
    ldaps-port                     :  ldaps
    monitoring-bind-timeout        :  5s
    monitoring-entry-dn            :  ""
    monitoring-entry-timeout       :  5s
    monitoring-inactivity-timeout  :  2m
    monitoring-interval            :  30s
    monitoring-mode                :  proactive
    monitoring-search-filter       :  (|(objectClass=*)(objectClass=ldapSubEntry))
    num-bind-incr                  :  10
    num-bind-init                  :  10
    num-bind-limit                 :  1024
    num-read-incr                  :  10
    num-read-init                  :  10
    num-read-limit                 :  1024
    num-write-incr                 :  10
    num-write-init                 :  10
    num-write-limit                :  1024
    proxied-auth-check-timeout     :  1.8s
    proxied-auth-use-v1            :  false
    ssl-policy                     :  never
    use-tcp-no-delay               :  true
  2. 데이터 소스를 활성화합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port source-name is-enabled:true
  3. 기본 설정을 변경하려면 단계 1에 나열된 모든 등록 정보를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port source-name property:value
    

    예를 들어 데이터 소스의 항목을 수정하려면 쓰기 작업을 허용하도록 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port source-name is-read-only:false

    하위 명령에 사용되는 등록 정보에 대한 정보를 확인하려면 다음 명령을 실행합니다.


    $ dpconf help-properties ldap-data-source property
    

    예를 들어 is-read-only 등록 정보에 관한 정보를 찾으려면 다음 명령을 실행합니다.


    dpconf help-properties ldap-data-source is-read-only

    데이터 소스에 대한 키 등록 정보를 나열하려면 list-ldap-data-sources 하위 명령과 함께 세부 정보 표시 옵션 -v를 사용합니다.


    $ dpconf list-ldap-data-sources -v
    Name         is-enabled  ldap-address  ldap-port  ldaps-port  description
    -----------  ----------  ------------  ---------  ----------  -----------
    datasource0  true        myHost        myPort     ldaps       -
    datasource1  true        myHost        myPort     ldaps       -
  4. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오. 서버를 다시 시작해야 하는 구성 변경 사항 목록은 서버를 다시 시작해야 하는 구성 변경 사항을 참조하십시오.

LDAP 데이터 소스 풀 만들기 및 구성

이 절에서는 dpconf 명령을 사용하여 LDAP 데이터 소스 풀을 만들고 구성하는 방법에 대해 설명합니다. 이러한 항목에 대한 참조 정보는 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceLDAP Data Sources를 참조하십시오.

데이터 소스 풀을 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

ProcedureLDAP 데이터 소스 풀을 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스 풀을 하나 이상 만듭니다.


    $ dpconf create-ldap-data-source-pool -h host -p port pool-name
    

    첫 번째 pool-name 다음에 데이터 소스 풀을 추가로 지정할 수 있습니다. 데이터 소스 풀의 등록 정보를 수정하는 방법에 대한 자세한 내용은 LDAP 데이터 소스 풀을 구성하는 방법을 참조하십시오.

  2. (옵션) 데이터 소스 풀의 목록을 봅니다.


    $ dpconf list-ldap-data-source-pools -h host -p port
    

ProcedureLDAP 데이터 소스 풀을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 다음 명령 구문을 사용하여 데이터 소스 풀의 등록 정보를 봅니다.


    $ dpconf get-ldap-data-source-pool-prop -h host -p port \
    [-M unit] [-Z unit] pool-name [property...]

    이 명령에서 -M-Z는 데이터를 표시할 단위를 나타냅니다. M 옵션은 시간 단위를 지정합니다. -M 값은 월, 주, 일, 시, 분, 초 또는 밀리초를 나타내는 M, w, d, h, m, s 또는 ms가 될 수 있습니다. -Z 옵션은 데이터 크기 단위를 지정합니다. -Z 값은 테라바이트, 기가바이트, 메가바이트, 킬로바이트 또는 바이트를 나타내는 T, G, M, k 또는 b가 될 수 있습니다.

    등록 정보를 지정하지 않으면 모든 등록 정보가 표시됩니다. LDAP 데이터 소스 풀의 기본 등록 정보는 다음과 같습니다.


    client-affinity-policy    :  write-affinity-after-write  
    client-affinity-timeout   :  20s  
    description               :  -  
    enable-client-affinity    :  false  
    load-balancing-algorithm  :  proportional  
  2. 단계 1에 나열된 등록 정보를 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     property:value
    

    로드 균형 조정 및 클라이언트 선호도를 위해 데이터 소스 풀의 등록 정보를 구성하는 방법에 대한 자세한 내용은 21 장, 디렉토리 프록시 서버 로드 균형 조정 및 클라이언트 선호도를 참조하십시오.

데이터 소스 풀에 LDAP 데이터 소스 첨부

데이터 소스 풀에 첨부되는 데이터 소스를 첨부된 데이터 소스라고 합니다. 첨부된 데이터 소스의 등록 정보는 데이터 소스 풀의 로드 균형 조정 구성을 결정합니다. 첨부된 데이터 소스의 가중치를 구성할 경우 데이터 소스 풀에 있는 모든 첨부된 데이터 소스의 가중치를 고려합니다. 필요에 따라 가중치가 함께 작동하는지 확인합니다. 로드 균형 조정을 위해 가중치를 구성하는 방법에 대한 자세한 내용은 로드 균형 조정에 대한 가중치를 구성하는 방법을 참조하십시오.

Procedure데이터 소스 풀에 LDAP 데이터 소스를 첨부하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스 풀에 데이터 소스를 하나 이상 첨부합니다.


    $ dpconf attach-ldap-data-source -h host -p port pool-name \
     source-name [source-name ...]
  2. (옵션) 지정된 데이터 소스 풀에 대해 첨부된 데이터 소스 목록을 봅니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -E pool-name
    

    이 명령에서 -E는 선택 사항이며 한 줄에 하나의 등록 정보 값을 표시하도록 표시 출력을 수정합니다.

  3. (옵션) 지정된 데이터 소스 풀에 대해 첨부된 데이터 소스의 키 등록 정보를 봅니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    

    이 명령에서 -v는 세부 정보 표시 출력을 지정합니다. 예를 들어 데이터 소스 풀의 등록 정보 예를 봅니다.


    $ dpconf list-attached-ldap-data-sources -h host1 -p 1389 -v My-pool
    SRC_NAME     add-weight  bind-weight  compare-weight  
    -----------  ----------  -----------  --------------  
    datasource0  disabled    disabled     disabled        
    datasource1  disabled    disabled     disabled        
    
    delete-weight  modify-dn-weight  modify-weight  search-weight
    -------------  ----------------  -------------  -------------
    disabled       disabled          disabled       disabled
    disabled       disabled          disabled       disabled
  4. (옵션) 다음 명령 구문을 사용하여 첨부된 데이터 소스의 등록 정보를 봅니다.


    $ dpconf get-attached-ldap-data-source-prop -h host -p port [-M unit] [-Z unit] \
     pool-name source-name [property...]

    이 명령에서 -M-Z는 데이터를 표시할 단위를 나타냅니다. M 옵션은 시간 단위를 지정합니다. -M 값은 월, 주, 일, 시, 분, 초 또는 밀리초를 나타내는 M, w, d, h, m, s 또는 ms가 될 수 있습니다. -Z 옵션은 데이터 크기 단위를 지정합니다. -Z 값은 테라바이트, 기가바이트, 메가바이트, 킬로바이트 또는 바이트를 나타내는 T, G, M, k 또는 b가 될 수 있습니다.

    등록 정보를 지정하지 않으면 모든 등록 정보가 표시됩니다.

    첨부된 데이터 소스의 등록 정보는 로드 균형 조정에서 각 작업 유형에 대한 가중치를 정의합니다. 첨부된 데이터 소스의 기본 가중치는 다음과 같습니다.


    add-weight        :  disabled  
    bind-weight       :  disabled  
    compare-weight    :  disabled  
    delete-weight     :  disabled  
    modify-dn-weight  :  disabled  
    modify-weight     :  disabled  
    search-weight     :  disabled 

    디렉토리 프록시 서버에 대해 첨부된 데이터 소스의 등록 정보를 설정해야 원하는 대로 작동합니다. 다음 예에서는 모든 등록 정보가 1로 설정되었습니다. 이러한 등록 정보의 값은 요청에 따라 변경할 수 있습니다. 로드 균형 조정을 위해 첨부된 데이터 소스의 가중치를 구성하는 방법에 대한 자세한 내용은 로드 균형 조정에 대한 가중치를 구성하는 방법을 참조하십시오.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name add-weight:1
    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name bind-weight:1
    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name compare-weight:1
    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name delete-weight:1
    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name modify-dn-weight:1
    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name modify-weight:1
    $ dpconf set-attached-ldap-data-source-prop -h host -p port \
    pool-name source-name search-weight:1

LDAP 데이터 보기 작업

LDAP 데이터 보기를 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

ProcedureLDAP 데이터 보기를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host -p port view-name pool-name suffix-DN
    

    LDAP 데이터 보기의 등록 정보를 수정하는 방법에 대한 자세한 내용은 LDAP 데이터 보기를 구성하는 방법을 참조하십시오.

  2. LDAP 데이터 보기의 목록을 봅니다.


    $ dpconf list-ldap-data-views -h host -p port
    

ProcedureLDAP 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 보기의 등록 정보를 봅니다.


    $ dpconf get-ldap-data-view-prop -h host -p port view-name
    

    등록 정보를 구성하지 않고 데이터 보기를 만든 경우 데이터 보기의 구성은 다음과 같습니다.


    alternate-search-base-dn                    :  ""
    attr-name-mappings                          :  none
    base-dn                                     :  suffix-DN
    contains-shared-entries                     :  false
    custom-distribution-algorithm-class         :  none
    description                                 :  -
    distribution-algorithm                      :  none
    dn-join-rule                                :  none
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  none
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    ldap-data-source-pool                       :  pool-name
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  none
    non-writable-attr                           :  none
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    process-bind                                :  -
    replication-role                            :  master
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr

    주 –

    프록시 관리자를 제외한 모든 사용자는 백엔드 서버의 cn=configcn=monitor 접미어를 볼 수 있습니다. 기본적으로 백엔드 서버의 데이터는 프록시 관리자가 사용할 수 없습니다. 프록시 관리자가 사용할 수 있는 cn=configcn=monitor 하위 트리는 프록시 자체에 해당하는 항목입니다.

    디렉토리 프록시 서버 인스턴스를 만들 경우 프록시 관리자를 위한 연결 처리기가 빈 데이터 보기 정책을 사용하여 만들어집니다. 프록시 관리자에게 백엔드 데이터에 대한 액세스 권한이 필요한 경우 프록시 관리자 연결 처리기의 데이터 보기 정책에 데이터 보기를 추가해야 합니다. 이러한 데이터 보기에서 cn=configcn=monitor 하위 트리는 기본적으로 제외됩니다.


  2. 단계 1에 나열된 등록 정보 중 하나 이상을 변경합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     property:value [property:value ... ]

    예를 들어 데이터 소스의 dc=example,dc=com 하위 트리에 액세스하려면 데이터 보기에서 dn-mapping-source-base-dn을 지정합니다.


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView \
    dn-mapping-source-base-dn:dc=example,dc=com

    값이 여러 개인 등록 정보에 값을 추가하려면 이 명령을 사용합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name property+:value
    

    값이 여러 개인 등록 정보에서 값을 제거하려면 이 명령을 사용합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name property-:value
    
  3. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

디렉토리 프록시 서버를 사용하여 디렉토리 서버에 대한 구성 항목 액세스

디렉토리 프록시 서버에 대한 구성 항목은 cn=config에 있습니다. 디렉토리 프록시 서버를 사용하여 구성 항목에 액세스하는 경우 기본적으로 디렉토리 프록시 서버의 구성 항목에 액세스합니다.

디렉토리 서버의 구성 항목에 액세스하려면 디렉토리 프록시 서버가 아닌 디렉토리 서버에 직접 연결하는 것이 좋습니다. 디렉토리 서버를 구성하는 방법에 대한 자세한 내용은 4 장, 디렉토리 서버 구성을 참조하십시오.


주의 – 주의 –

디렉토리 프록시 서버를 다시 구성하여 디렉토리 서버의 구성 항목에 액세스할 경우 디렉토리 프록시 서버의 관리 프레임워크가 손상될 수 있습니다.


디렉토리 프록시 서버를 사용하여 디렉토리 서버의 구성 항목에 액세스하려면 디렉토리 프록시 서버의 관리 프레임워크가 손상되지 않도록 특별 단계를 수행합니다. 이 절에서는 디렉토리 프록시 서버를 사용하여 디렉토리 서버의 구성 항목에 액세스하는 방법에 대해 설명합니다.

Procedure디렉토리 프록시 서버를 사용하여 디렉토리 서버의 구성 항목에 액세스하는 방법

  1. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 하나 이상의 데이터 소스를 만듭니다.

  2. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 LDAP 데이터 소스 풀을 만듭니다.

  3. 데이터 소스 풀에 LDAP 데이터 소스 첨부에 설명된 것처럼 하나 이상의 데이터 소스를 데이터 소스 풀에 첨부합니다.

    • 특정 데이터 소스의 구성 항목을 표시하려면 하나의 LDAP 데이터 소스만 LDAP 데이터 소스 풀에 첨부합니다.


      $ dpconf attach-ldap-data-source -h host -p port pool-name data-source-name
      

      이 단계를 수행하고 나면 클라이언트는 디렉토리 프록시 서버에 연결된 데이터 소스의 구성 항목에 액세스할 수 있습니다.

    • 모든 데이터 소스의 구성 항목을 표시하려면 둘 이상의 LDAP 데이터 소스를 LDAP 데이터 소스 풀에 첨부합니다.


      $ dpconf attach-ldap-data-source -h host -p port pool-name data-source-name \
       data-source-name ...

      이 단계를 수행하고 나면 클라이언트는 디렉토리 프록시 서버에 연결된 데이터 소스 중 하나의 구성 항목에 액세스할 수 있습니다. 그러나 클라이언트는 구성 항목이 속하는 데이터 소스를 알 수 없습니다.

  4. cn=config를 표시하려면 LDAP 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host -p port view-name pool-name cn=config

속성 및 DN 이름 바꾸기

디렉토리의 각 항목은 DN 및 속성과 해당 값의 집합으로 식별됩니다. 클라이언트측에 정의된 DN 및 속성은 서버측에 정의된 DN 및 속성에 매핑되지 않는 경우가 많습니다. 데이터 보기를 정의하여 DN 및 속성의 이름을 바꿀 수 있습니다. 클라이언트에서 요청할 경우 서버측 이름과 일치하도록 DN 및 속성의 이름이 바뀝니다. 클라이언트에 결과가 반환되면 클라이언트측 이름과 일치하도록 DN 및 속성이 다시 변경됩니다.

속성 및 DN 이름 바꾸기에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceAttribute Renaming and DN Renaming을 참조하십시오. 속성 및 DN 이름을 바꾸는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure속성 이름 바꾸기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 속성 매핑을 구성할 데이터 보기에서 하나 이상의 attr-name-mappings 등록 정보를 설정합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
      attr-name-mappings:client-side-attribute-name#server-side-attribute-name\
      [attr-name-mappings:client-side-attribute-name#server-side-attribute-name ...]

    예를 들어 클라이언트측의 surname 이름을 서버측의 sn으로 바꿉니다.


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView \
     attr-name-mappings:surname#sn

    기존 매핑 목록에 속성 매핑을 추가하려면 이 명령을 사용합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     attr-name-mappings+:client-side-attribute-name#server-side-attribute-name
    

    기존 매핑 목록에서 속성 매핑을 제거하려면 이 명령을 사용합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     attr-name-mappings-:client-side-attribute-name#server-side-attribute-name
    

ProcedureDN 이름 바꾸기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. DN의 이름을 바꾸려는 데이터 보기의 base-dn 등록 정보 및 DN 매핑 등록 정보를 봅니다.


    $ dpconf get-ldap-data-view-prop -h host -p port view-name base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs

    이러한 등록 정보의 의미는 다음과 같습니다.

    • base-dn은 데이터 보기의 기본 DN와 동등한 클라이언트측에 있는 하위 트리의 DN입니다.

    • dn-mapping-source-base-dn은 서버측에 있는 하위 트리의 DN입니다.

    • dn-mapping-attrs는 항목의 DN을 포함하는 속성 목록을 정의합니다.

    예를 들어 클라이언트측에서 dc=example,dc=com 데이터베이스에 대한 데이터 보기 값은 DN 이름 바꾸기가 정의되지 않을 때 다음과 같습니다.


    $ dpconf get-ldap-data-view-prop myDataView base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs
     base-dn                    :  dc=example,dc=com
     dn-mapping-attrs           :  none
     dn-mapping-source-base-dn  :  none
  2. 클라이언트측의 DN을 서버측의 DN에 매핑합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
      dn-mapping-source-base-dn:server-side-dn
    

    예를 들어 클라이언트측의 dc=example,dc=com 데이터베이스를 서버측의 dc=example,dc=org에 매핑합니다.


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView \
     dn-mapping-source-base-dn:dc=example,dc=org
  3. 이러한 속성에 DN이 포함된 경우 단계 2의 영향을 받는 DIT 부분에서 속성의 이름을 바꿉니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
      dn-mapping-attrs:attribute-name [dn-mapping-attrs:attribute-name ...]

    예를 들어 group 속성에 DN이 포함된 경우 단계 2의 이름 바꾸기 작업에 영향을 받는 이름 공간에서 속성의 이름을 다음과 같이 바꿉니다.


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 myDataView dn-mapping-attrs:group

    기존 매핑 목록에 DN 매핑을 추가하려면 이 명령을 사용합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port \
    view-name dn-mapping-attrs+:attribute-name
    

    기존 매핑 목록에서 DN 매핑을 제거하려면 이 명령을 사용합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port \
    view-name dn-mapping-attrs-:attribute-name
    
  4. DN의 이름을 바꾼 데이터 보기의 base-dn 등록 정보 및 DN 매핑 등록 정보를 봅니다.


    $ dpconf get-ldap-data-view-prop -h host -p port view-name base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs

    예를 들어 클라이언트측의 dc=example,dc=com 데이터베이스에 대한 데이터 보기 값은 DN의 이름을 바꾼 후에 다음과 같습니다.


    $ dpconf get-ldap-data-view-prop -h host1 -p 1389 myDataView base-dn \
     dn-mapping-source-base-dn dn-mapping-attrs
     base-dn                    :  dc=example,dc=com
     dn-mapping-attrs           :  group
     dn-mapping-source-base-dn  :  dc=example,dc=org

보기 제외 기준 및 대체 검색 기준 구성

하위 데이터 보기가 만들어지면 디렉토리 프록시 서버는 상위 데이터 보기에서 하위 데이터 보기를 자동으로 제외합니다. 하위 데이터 보기가 요청의 대상인 경우 요청은 상위 데이터 보기가 아닌, 하위 데이터 보기로 보내집니다.

하위 데이터 보기에서 대체 검색 기준을 지정하면 상위 데이터 보기를 대상으로 하는 검색 작업이 하위 데이터 보기에서도 수행됩니다.

기본적으로 디렉토리 프록시 서버는 excluded-subtreesalternate-search-base-dn 등록 정보를 자동으로 구성합니다. 다음 절차에서는 이러한 등록 정보를 수동으로 구성하는 방법에 대해 설명합니다.

Procedureexcluded-subtreesalternate-search-base-dn 등록 정보를 수동으로 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 요청을 수동으로 전달하도록 디렉토리 프록시 서버를 구성합니다.


    $ dpconf set-server-prop -h host -p port data-view-automatic-routing-mode:manual

    data-view-automatic-routing-modemanual인 경우 디렉토리 프록시 서버는 excluded-subtreesalternate-search-base-dn 등록 정보를 생성하지 않습니다. 이러한 등록 정보의 값을 수동으로 설정해야 합니다. 여기에서 설정한 값은 디렉토리 프록시 서버에서 확인되지 않습니다. 이러한 값을 잘못 설정하면 관리 경로가 손상될 수 있습니다.

    또는 요청을 부분적으로 전달하도록 디렉토리 프록시 서버를 수동으로 구성합니다.


    $ dpconf set-server-prop -h host -p port data-view-automatic-routing-mode:limited

    data-view-automatic-routing-modelimited인 경우 디렉토리 프록시 서버는 excluded-subtreesalternate-search-base-dn 등록 정보를 생성하지 않습니다. 그러나 디렉토리 프록시 서버는 여기에서 설정된 값이 관리 경로와 충돌하지 않는지 확인합니다.

  2. 보기 제외 기준을 구성합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name excluded-subtrees:suffix-DN
    

    보기 제외 기준은 해당 항목이 데이터 보기에서 표시되지 않는 DIT의 분기를 결정합니다.

  3. 대체 검색 기준을 구성합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port view-name \
     alternate-search-base-dn:search-base-DN
    

    대체 검색 기준은 이 데이터 보기에 속하는 항목이 배치될 수 있는 DIT의 다른 분기를 결정합니다. 기본 DN은 기본적으로 모든 데이터 보기에서 대체 검색 기준으로 정의됩니다.

사용 사례 예를 위한 데이터 보기 만들기 및 구성

이 절에서는 데이터 보기에 대한 다음 정보와 데이터 보기를 만들고 구성하는 방법에 대해 설명합니다.

이 절의 예에서는 연결 처리기를 통해 디렉토리 프록시 서버가 모든 클라이언트 연결을 처리할 수 있다고 가정합니다.

기본 데이터 보기

등록 정보를 구성하지 않고 데이터 보기를 만든 경우 데이터 보기의 구성은 다음과 같습니다.


alternate-search-base-dn                    :  ""
alternate-search-base-dn                    :  base-DN
attr-name-mappings                          :  none
base-dn                                     :  suffix-DN
contains-shared-entries                     :  -
description                                 :  -
distribution-algorithm                      :  -
dn-join-rule                                :  -
dn-mapping-attrs                            :  none
dn-mapping-source-base-dn                   :  none
excluded-subtrees                           :  -
filter-join-rule                            :  -
is-enabled                                  :  true
is-read-only                                :  false
is-routable                                 :  true
ldap-data-source-pool                       :  pool-name
lexicographic-attrs                         :  all
lexicographic-lower-bound                   :  none
lexicographic-upper-bound                   :  none
non-viewable-attr                           :  -
non-writable-attr                           :  -
numeric-attrs                               :  all
numeric-default-data-view                   :  false
numeric-lower-bound                         :  none
numeric-upper-bound                         :  none
pattern-matching-base-object-search-filter  :  all
pattern-matching-dn-regular-expression      :  all
pattern-matching-one-level-search-filter    :  all
pattern-matching-subtree-search-filter      :  all
process-bind                                :  -
replication-role                            :  master
viewable-attr                               :  all except non-viewable-attr
writable-attr                               :  all except non-writable-attr

요청의 대상 DN에 상관없이 모든 요청을 전달하는 데이터 보기

이 절에서는 요청의 대상 DN에 상관없이 모든 요청을 데이터 소스 풀에 전달하는 데이터 보기의 구성을 보여줍니다. 이 데이터 보기를 루트 데이터 보기라고 합니다. 루트 데이터 보기는 디렉토리 프록시 서버 인스턴스를 만들 때 기본적으로 만들어집니다. 루트 데이터 보기에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceData Views to Route All Requests, Irrespective of the Target DN of the Request를 참조하십시오.

루트 데이터 보기의 구성은 다음과 같습니다.


alternate-search-base-dn                    :  -
attr-name-mappings                         :  none
base-dn                                    :  ""
contains-shared-entries                    :  -
description                                :  Automatically-generated data view 
                                              able to route client operations 
                                              independently of the operation base dn
distribution-algorithm                     :  -
dn-join-rule                               :  -
dn-mapping-attrs                           :  none
dn-mapping-source-base-dn                  :  none
excluded-subtrees                          :  ""
excluded-subtrees                          :  cn=config
excluded-subtrees                          :  cn=monitor
excluded-subtrees                          :  cn=proxy manager
excluded-subtrees                          :  cn=virtual access controls
excluded-subtrees                          :  dc=example,dc=com
filter-join-rule                           :  -
is-enabled                                 :  true
is-read-only                               :  false
is-routable                                :  true
ldap-data-source-pool                      :  defaultDataSourcePool
lexicographic-attrs                        :  all
lexicographic-lower-bound                  :  none
lexicographic-upper-bound                  :  none
non-viewable-attr                          :  -
non-writable-attr                          :  -
numeric-attrs                              :  all
numeric-default-data-view                  :  false
numeric-lower-bound                        :  none
numeric-upper-bound                        :  none
pattern-matching-base-object-search-filter :  all
pattern-matching-dn-regular-expression     :  all
pattern-matching-one-level-search-filter   :  all
pattern-matching-subtree-search-filter     :  all
process-bind                               :  -
replication-role                           :  master
viewable-attr                              :  all except non-viewable-attr
writable-attr                              :  all except non-writable-attr

여러 데이터와 동등한 데이터 소스에 하위 트리 목록이 저장된 경우 요청을 전달하는 데이터 보기

이 절에서는 하위 트리 목록을 대상으로 하는 요청을 데이터와 동등한 데이터 소스 집합에 전달하는 데이터 보기를 구성하는 방법에 대해 설명합니다. 이 배포 유형에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceData Views to Route Requests When a List of Subtrees Are Stored on Multiple, Data-Equivalent Data Sources를 참조하십시오.

이 절의 예에는 동일한 하위 트리 집합이 포함된 여러 데이터 소스가 있습니다. 데이터 소스는 데이터와 동등하며 로드 균형 조정을 위해 하나의 데이터 소스 풀에 풀링됩니다. 클라이언트 요청의 하위 트리를 표시하기 위해 각 하위 트리에 대한 데이터 보기가 구성됩니다. 다음 그림은 배포 예를 보여줍니다.

그림 19–1 여러 데이터와 동등한 데이터 소스에 하위 트리 목록이 저장된 경우 요청을 전달하는 배포 예

그림은 하위 트리 목록을 대상으로 하는 요청을 데이터와 동등한 데이터 소스 집합에 전달하는 배포 예를 보여줍니다.

Procedure여러 데이터와 동등한 데이터 소스에 하위 트리 목록이 저장된 경우 요청을 전달하는 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 각 LDAP 서버에 대한 데이터 소스를 만듭니다.

  2. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 데이터 소스 풀을 만듭니다.

  3. 데이터 소스 풀에 LDAP 데이터 소스 첨부에 설명된 것처럼 데이터 소스를 데이터 소스 풀에 첨부합니다.

  4. (옵션) 로드 균형 조정을 구성합니다.

    자세한 내용은 로드 균형 조정 구성을 참조하십시오.

  5. 데이터 소스 풀을 참조하는 dc=example1,dc=com에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-1 \
    data-source-pool-1 dc=example1,dc=com
  6. 데이터 소스 풀을 참조하는 dc=example2,dc=com에서 기본 DN이 있는 다른 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-2 \
    data-source-pool-1 dc=example2,dc=com

    데이터 보기의 다른 등록 정보는 기본 데이터 보기의 기본 데이터 보기와 동일합니다.

  7. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

다른 하위 트리가 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 데이터 보기

이 절에서는 여러 데이터 소스에 저장된 다른 하위 트리에 단일 액세스 지점을 제공하는 데이터 보기를 구성하는 방법에 대해 설명합니다. 이 배포 유형에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceData Views to Provide a Single Point of Access When Different Subtrees Are Stored on Different Data Sources를 참조하십시오.

이 절의 예에는 각 하위 트리에 대한 데이터 보기가 포함됩니다. 데이터와 동등한 데이터 소스의 각 집합에 대해 데이터 소스 풀이 구성됩니다. 다음 그림은 배포 예를 보여줍니다.

그림 19–2 다른 하위 트리가 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 배포 예

그림은 여러 데이터 소스에 저장된 다른 하위 트리에 단일 액세스 지점을 제공하는 배포 예를 보여줍니다.

Procedure다른 하위 트리가 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 각 LDAP 서버에 대한 데이터 소스를 만듭니다.

  2. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 두 개의 데이터 소스 풀을 만듭니다.

  3. 데이터 소스 풀에 LDAP 데이터 소스 첨부에 설명된 것처럼 dc=example1,dc=com을 포함하는 데이터 소스를 data-source-pool-1에 첨부하고 dc=example2,dc=com을 포함하는 데이터 소스를 data-source-pool-2에 첨부합니다.

  4. (옵션) 로드 균형 조정을 구성합니다.

    자세한 내용은 로드 균형 조정 구성을 참조하십시오.

  5. data-source-pool-1을 참조하는 dc=example1,dc=com에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-1 \
    data-source-pool-1 dc=example1,dc=com
  6. data-source-pool-2를 참조하는 dc=example2,dc=com에서 기본 DN이 있는 다른 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-2 \
    data-source-pool-1 dc=example2,dc=com

    데이터 보기의 다른 등록 정보는 기본 데이터 보기의 기본 데이터 보기와 동일합니다.

  7. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

상위 및 하위 트리가 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 데이터 보기

이 절에서는 하위 트리의 상위 분기가 하위 분기의 다른 데이터 소스에 저장된 경우 단일 액세스 지점에 대한 데이터 보기를 구성하는 방법에 대해 설명합니다. 이 배포 유형에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceData Views to Route Requests When Superior and Subordinate Subtrees Are Stored in Different Data Sources를 참조하십시오.

이 절의 예에는 세 개의 데이터 보기가 포함됩니다. 데이터 보기 1의 기본 DN은 데이터 보기 2의 기본 DN 및 데이터 보기 3의 기본 DN에 대해 상위입니다. 즉, 데이터 소스 2 및 데이터 소스 3에는 데이터 소스 1의 하위 트리에 종속하는 하위 트리가 포함됩니다. 다음 그림은 배포 예를 보여줍니다.

그림 19–3 상위 및 하위 트리가 다른 데이터 소스에 저장된 경우 요청을 전달하는 배포 예

그림은 상위 및 하위 트리가 다른 데이터 소스에 저장된 경우 요청을 전달하는 배포 예를 보여줍니다.

디렉토리 프록시 서버는 하위 분기가 별개 데이터 보기의 기본 DN으로 구성된 경우 하위 트리의 하위 분기를 데이터 보기에서 자동으로 제외합니다.

Procedure상위 및 하위 트리가 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 각 LDAP 서버에 대한 데이터 소스를 만듭니다.

  2. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 세 개의 데이터 소스 풀을 만듭니다.

  3. 데이터 소스 풀에 LDAP 데이터 소스 첨부의 지침에 따라 데이터 소스를 데이터 소스 풀에 첨부합니다.

    • dc=example,dc=com을 포함하는 데이터 소스를 data-source-pool-1에 첨부합니다.

    • ou=computer,dc=example,dc=com을 포함하는 데이터 소스를 data-source-pool-2에 첨부합니다.

    • ou=people,dc=example,dc=com을 포함하는 데이터 소스를 data-source-pool-3에 첨부합니다.

  4. (옵션) 로드 균형 조정을 구성합니다.

    자세한 내용은 로드 균형 조정 구성을 참조하십시오.

  5. dc=example,dc=com 및 데이터 소스 풀 data-source-pool-1에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-1 \
     data-source-pool-1 dc=example,dc=com
  6. ou=computer,dc=example,dc=com 및 데이터 소스 풀 data-source-pool-2에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-2 \
     data-source-pool-2 ou=computer,dc=example,dc=com
  7. ou=people,dc=example,dc=com 및 데이터 소스 풀 data-source-pool-3에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-3 \
     data-source-pool-3 ou=people,dc=example,dc=com
  8. excluded-subtrees 매개 변수를 확인하여 ou=computer,dc=example, dc=comou=people,dc=example, dc=com 하위 트리가 dataview-1에서 제외되었는지 확인합니다.


    $ dpconf get-ldap-data-view-prop -h host1 -p 1389 dataview-1 excluded-subtrees

    제외된 하위 트리 목록이 반환됩니다.

  9. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

20장 디렉토리 프록시 서버 인증서

이 장에서는 디렉토리 프록시 서버에서 인증서를 구성하는 방법에 대해 설명합니다. 디렉토리 서버에서 인증서를 구성하는 방법에 대한 자세한 내용은 인증서 관리를 참조하십시오.

이 장의 절차에서는 dpadmdpconf 명령을 사용합니다. 이러한 명령에 대한 자세한 내용은 dpadm(1M)dpconf(1M) 설명서 페이지를 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

자체 서명된 기본 인증서

디렉토리 프록시 서버 인스턴스를 만들 때 인스턴스에 자체 서명된 기본 인증서가 포함됩니다. 자체 서명된 인증서는 공개 키가 디렉토리 프록시 서버에서 자체 서명된 공개 키와 개인 키 쌍입니다.

Procedure자체 서명된 기본 인증서 보기

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 자체 서명된 기본 인증서를 봅니다.


    $ dpadm show-cert instance-path defaultservercert

디렉토리 프록시 서버에 대한 인증서 만들기, 요청 및 설치

디렉토리 프록시 서버에서 SSL(Secure Sockets Layer)을 실행하려면 자체 서명된 인증서 또는 PKI(Public Key Infrastructure) 솔루션을 사용해야 합니다.

PKI 솔루션에는 외부 인증 기관(CA)이 필요합니다. 즉, PKI 솔루션에는 공개 키와 개인 키가 모두 포함된 CA 서명된 서버 인증서가 필요합니다. 이 인증서는 하나의 디렉토리 프록시 서버 인스턴스에만 적용됩니다. 또한 공개 키가 포함된 신뢰할 수 있는 CA 인증서도 필요합니다. 신뢰할 수 있는 CA 인증서를 사용하면 CA의 모든 서버 인증서가 신뢰됩니다. 이 인증서를 CA 루트 키 또는 루트 인증서라고도 합니다.

기본값 이외의 자체 서명된 인증서를 만들고 CA 서명된 인증서를 요청 및 설치하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure디렉토리 프록시 서버에 기본값 이외의 자체 서명된 인증서를 만드는 방법

디렉토리 프록시 서버 인스턴스를 만드는 경우 자체 서명된 기본 인증서가 자동으로 제공됩니다. 기본값 이외의 설정으로 자체 서명된 인증서를 만들려면 다음 절차를 사용합니다.

이 절차를 수행하면 공개 키가 디렉토리 프록시 서버에서 서명된 서버 인증서에 대해 공개 키와 개인 키 쌍이 만들어집니다. 자체 서명된 인증서는 3개월 동안 유효합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버에 대해 기본값 이외의 자체 서명된 인증서를 만들려면 다음을 입력합니다.


    $ dpadm add-selfsign-cert instance-path cert-alias
    

    여기서 cert-alias는 자체 서명된 인증서의 이름입니다.

    예를 들어 다음과 같이 my-self-signed-cert라는 인증서를 만들 수 있습니다.


    $ dpadm add-selfsign-cert /local/dps my-self-signed-cert

    모든 명령 옵션에 대한 설명을 보려면 dpadm(1M) 설명서 페이지를 참조하거나 명령줄에 dpadm add-selfsign-cert --help를 입력하십시오.

Procedure디렉토리 프록시 서버에 대해 CA 서명된 인증서를 요청하는 방법

자체 서명된 인증서는 테스트용으로 유용합니다. 그러나, 작업 환경에서는 신뢰할 수 있는 인증 기관(CA) 인증서를 사용하는 것이 보다 안전합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. CA 서명된 서버 인증서를 요청합니다.


    $ dpadm request-cert instance-path cert-alias
    

    여기서 cert-alias는 요청하는 인증서의 이름입니다. 인증 기관에서는 서버를 식별하는 데 모든 명령 옵션이 필요할 수 있습니다. 모든 명령 옵션에 대한 설명은 dpadm(1M) 설명서 페이지를 참조하십시오.

    CA 인증서를 얻기 위한 프로세스는 사용하는 CA에 따라 다릅니다. 일부 상용 CA에서는 인증서를 다운로드할 수 있는 웹 사이트를 제공합니다. 다른 CA에서는 인증서를 전자 메일로 보냅니다.

    예를 들어 다음과 같이 my-CA-signed-cert라는 인증서를 요청할 수 있습니다.


    $ dpadm request-cert -S cn=my-request,o=test /local/dps my-CA-signed-cert
    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIBYDCBygIBADAhMQ0wCwYDVQQDEwRnZXJpMRAwDgYDVQQDEwdteWNlcnQ0MIGfMA0GCSqGSIb3
    DQEBAQUAA4GNADCBiQKBgQC3v9ubG468wnjBDAMbRrEkmFDTQzT+LO30D/ALLXOiElVsHrtRyWhJ
    PG9cURI9uwqs15crxCpJvho1kt3SB9+yMB8Ql+CKnCQDHlNAfnn30MjFHShv/sAuEygFsN+Ekci5
    W1jySYE2rzE0qKVxWLSILFo1UFRVRsUnORTX/Nas7QIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEA
    fcQMnZNLpPobiX1xy1ROefPOhksVz8didY8Q2fjjaHG5lajMsqOROzubsuQ9Xh4ohT8kIA6xcBNZ
    g8FRNIRAHCtDXKOdOm3CpJ8da+YGI/ttSawIeNAKU1DApF9zMb7c2lS4yEfWmreoQdXIC9YeKtF6
    zwbn2EmIpjHzETtS5Nk=
    -----END NEW CERTIFICATE REQUEST-----

    dpadm request-cert 명령을 사용하여 인증서를 요청할 때 이 인증서 요청은 PEM(Privacy Enhanced Mail) 형식의 PKCS #10 인증서 요청입니다. PEM은 RFC 1421부터 1424까지 지정된 형식입니다. 자세한 내용은 http://www.ietf.org/rfc/rfc1421.txt를 참조하십시오. PEM 형식은 base64로 인코딩된 인증서 요청을 ASCII 형식으로 나타냅니다.

    CA 서명된 인증서를 요청할 때 자체 서명된 임시 인증서가 만들어집니다. CA에서 CA 서명된 인증서를 받아 설치하면 자체 서명된 임시 인증서가 새 인증서로 대체됩니다.

  2. 이 절차에 따라 인증서 요청을 CA에 보냅니다.

    요청을 전송한 후에는 CA에서 이 요청에 대한 응답으로 인증서를 보내줄 때까지 기다려야 합니다. 요청에 대한 응답 시간은 경우에 따라 달라집니다. 예를 들어 회사 내부의 CA인 경우 응답 시간이 단축될 수 있습니다. 그러나, 회사 외부의 CA인 경우에는 요청에 대한 응답을 받을 때까지 몇 주가 걸릴 수도 있습니다.

  3. CA에서 받은 인증서를 저장합니다.

    인증서를 텍스트 파일로 저장하고 안전한 위치에 백업합니다.

Procedure디렉토리 프록시 서버에 CA 서명된 서버 인증서를 설치하는 방법

CA 서명된 서버 인증서를 신뢰하려면 인증서를 디렉토리 프록시 서버 인스턴스에 설치해야 합니다. 이 절차를 수행하면 CA 인증서의 공개 키가 디렉토리 프록시 서버의 인증서 데이터베이스에 설치됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 이 CA의 신뢰할 수 있는 CA 인증서가 이미 설치되었는지 확인합니다.

    이 작업을 수행하려면 CA 인증서를 나열하는 방법에 설명된 것처럼 설치된 CA 인증서를 모두 나열합니다.

  2. 신뢰할 수 있는 CA 인증서가 설치되어 있지 않으면 디렉토리 프록시 서버 인스턴스의 인증서 데이터베이스에 이 인증서를 추가합니다.


    $ dpadm add-cert instance-path cert-alias cert-file
    

    여기서 cert-alias는 신뢰할 수 있는 CA 인증서의 이름이고 cert-file은 신뢰할 수 있는 CA 인증서가 포함된 파일의 이름입니다.

  3. CA 서명된 서버 인증서를 인증서 데이터베이스에 설치합니다.


    $ dpadm add-cert instance-path cert-alias cert-file
    

    여기서 cert-alias는 CA 서명된 서버 인증서의 이름이고 cert-file은 CA 서명된 서버 인증서가 포함된 파일의 이름입니다. 이 cert-alias는 인증서 요청에서 사용된 cert-alias와 동일해야 합니다.

    예를 들어 이름이 CA-cert인 CA 서명된 서버 인증서를 다음과 같이 /local/dps의 인증서 데이터베이스에 추가할 수 있습니다.


    $ dpadm add-cert /local/dps CA-cert /local/safeplace/ca-cert-file.ascii

디렉토리 프록시 서버의 만료된 CA 서명 인증서 갱신

이 절에서는 만료된 CA 서명 서버 인증서를 갱신하는 방법에 대해 설명합니다.

Procedure디렉토리 프록시 서버의 만료된 CA 서명 서버 인증서를 갱신하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 해당 CA에서 업데이트된 인증서를 얻습니다.

  2. 디렉토리 프록시 서버 인스턴스에 인증서를 설치합니다.


    $ dpadm renew-cert instance-path cert-alias cert-file
    

    여기서 cert-alias는 새 인증서의 이름이고 cert-file은 인증서가 포함된 파일의 이름입니다. 모든 명령 옵션에 대한 설명은 dpadm(1M) 설명서 페이지를 참조하십시오.

인증서 나열

서버 인증서 및 CA 인증서를 나열하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure서버 인증서를 나열하는 방법

이 절차를 수행하면 디렉토리 프록시 서버 인스턴스에 설치된 모든 인증서가 나열됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버 인스턴스의 인증서 데이터베이스에 있는 서버 인증서를 나열합니다.


    $ dpadm list-certs instance-path
    

    기본적으로 디렉토리 프록시 서버 인스턴스에는 이름이 defaultservercert인 서버 인증서가 포함되어 있습니다. Same as issuer 텍스트는 자체 서명된 서버 인증서가 기본 인증서임을 나타냅니다.

    예를 들면 다음과 같습니다.


    $ dpadm list-certs /local/dps
    Alias             Valid from       Expires on       Self-signed? Issued by          Issued to
    ----------------- ---------------- ---------------- ------------ ------------------ --------------
    defaultservercert 2006/06/01 04:15 2008/05/31 04:15 y            CN=myserver:myport Same as issuer
    1 certificate found.

ProcedureCA 인증서를 나열하는 방법

이 절차를 수행하면 디렉토리 프록시 서버 인스턴스에 설치된 CA 인증서가 나열됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버 인스턴스의 인증서 데이터베이스에 있는 CA 인증서를 나열합니다.


    $ dpadm list-certs -C instance-path
    

    예를 들면 다음과 같습니다.


    $ dpadm list-certs -C /local/dps
    Alias   Valid from       Expires on        Built-in  Issued by    Issued to
    ------  ----------       ----------------  --------- ---------    ---------
    CAcert1 1999/06/21 06:00 2020/06/21 06:00  y         CN=company1, O=company2
    ...

백엔드 LDAP 서버의 인증서를 디렉토리 프록시 서버의 인증서 데이터베이스에 추가

이 절에서는 백엔드 LDAP 서버의 인증서를 디렉토리 프록시 서버의 인증서 데이터베이스에 추가하는 방법에 대해 설명합니다.

Procedure백엔드 디렉토리 서버의 인증서를 디렉토리 프록시 서버의 인증서 데이터베이스에 추가하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 다음 명령 구문을 사용하여 백엔드 디렉토리 서버의 인증서를 PEM 형식으로 표시합니다.


    dsadm show-cert -F ascii instance-path [cert-alias]

    cert-alias를 지정하지 않으면 기본 서버 인증서가 표시됩니다. 모든 명령 옵션에 대한 설명은 dsadm(1M) 설명서 페이지를 참조하십시오.

    예를 들어 자체 서명된 기본 서버 인증서는 다음과 같이 표시됩니다.


    $ dsadm show-cert -F ascii /local/ds defaultCert
    -----BEGIN CERTIFICATE-----
    MIICJjCCAY+gAwIBAgIFAIKL36kwDQYJKoZIhvcNAQEEBQAwVzEZMBcGA1UEChMQ
    U3VuIE1pY3Jvc3lzdGVtczEZMBcGA1UEAxMQRGlyZWN0b3J5IFNlcnZlcjENMAsG
    A1UEAxMEMjAxMTEQMA4GA1UEAxMHY29uZHlsZTAeFw0wNjA1MjIxMTQxNTVaFw0w
    NjA4MjIxMTQxNTVaMFcxGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGTAXBgNV
    BAMTEERpcmVjdG9yeSBTZXJ2ZXIxDTALBgNVBAMTBDIwMTExEDAOBgNVBAMTB2Nv
    bmR5bGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK9U3ry3sJmEzwQY8CGd
    7S2MTZuBedo03Vea1lfDtD08WIsdDMzhHplTdeHAkWWNc8g2PDcEFXeWp9UXFMuD
    Pcia7t8HtFkm73VmlriWhMd8nn3l2vkxhsPK2LHFEeOIUDR9LBBiMiEeLkjdoEhE
    VLMSoYKqKI+Aa5grINdmtFzBAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAF4eDbSd7
    qy2l10dIogT+rnXZ362gLTlQFCblhbGpmmptbegUdL1ITGv/62q1isPV2rW7CkjM
    Cqb0fo3k5UkKKvW+JbMowpQeAPnlgpX612HuDr1tldnKV4eyU7gpG31t/cpACALQ
    7OPi1A7oVb2Z8OJKfEJHkp3txBSsiI2gTkk=
    -----END CERTIFICATE-----
  2. 인증서를 저장합니다.

    인증서를 텍스트 파일로 저장하고 안전한 위치에 백업합니다.

  3. 백엔드 LDAP 서버의 인증서를 디렉토리 프록시 서버 인스턴스의 인증서 데이터베이스에 추가합니다.


    $ dpadm add-cert instance-path cert-alias cert-file
    

    여기서 cert-alias는 인증서의 이름이고 cert-file은 인증서가 포함된 파일의 이름입니다.

    예를 들어 다음과 같이 defaultCert 인증서를 추가할 수 있습니다.


    $ dpadm add-cert /local/dps defaultCert /local/safeplace/defaultCert.ascii

인증서를 백엔드 LDAP 서버로 내보내기

백엔드 LDAP 서버에 디렉토리 프록시 서버의 인증서가 필요할 수 있습니다. 이 절에서는 디렉토리 프록시 서버를 구성하여 인증서를 백엔드 LDAP 서버로 내보내는 방법에 대해 설명합니다.

Procedure디렉토리 프록시 서버를 구성하여 클라이언트 인증서를 백엔드 LDAP 서버로 내보내는 방법

  1. 백엔드 LDAP 서버로 보낼 인증서를 지정합니다.


    $ dpconf set-server-prop -h host -p port ssl-client-cert-alias:cert-alias
    

    여기서 cert-alias는 인증서의 이름입니다. 모든 명령 옵션에 대한 설명은 dpconf(1M) 설명서 페이지를 참조하십시오.

  2. 인증서 내용을 파일에 복사합니다.


    $ dpadm show-cert -F ascii -o filename instance-path cert-alias
    
  3. CA 서명된 서버 인증서 및 신뢰할 수 있는 CA 인증서를 추가하는 방법에 설명된 것처럼 인증서를 백엔드 LDAP 서버의 인증서 데이터베이스에 추가합니다.

다음 순서

클라이언트 인증을 위해 백엔드 LDAP 서버를 구성합니다. 디렉토리 서버에서 이 작업을 수행하는 방법에 대한 자세한 내용은 자격 증명 수준 및 인증 방법 구성을 참조하십시오.

참조

클라이언트와 디렉토리 프록시 서버 간에 인증서 기반 인증을 구성하는 방법에 대한 자세한 내용은 인증서 기반 인증을 구성하는 방법을 참조하십시오.

디렉토리 프록시 서버의 인증서 데이터베이스 백업 및 복원

서버 인증서는 dpadm을 사용하여 디렉토리 프록시 서버를 백업할 때 함께 백업됩니다. 백업된 인증서는 archive-path/alias 디렉토리에 저장됩니다.

디렉토리 프록시 서버를 백업 및 복원하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버 인스턴스 백업 및 복원를 참조하십시오.

인증서 데이터베이스에 액세스할 때 비밀번호 요청을 프롬프트

기본적으로 인증서 데이터베이스의 비밀번호는 내부적으로 관리됩니다. 따라서, 인증서 비밀번호를 입력하거나 비밀번호 파일을 지정할 필요가 없습니다. 인증서 데이터베이스를 저장된 비밀번호를 통해 내부적으로 관리할 경우에는 해당 비밀번호가 보안 환경에 저장됩니다.

인증서에 대한 보안과 제어를 강화하려면 명령줄에서 비밀번호 요청을 프롬프트하도록 디렉토리 프록시 서버를 구성합니다. 그러면 autostart, backup, disable-service, enable-service, info, restorestop을 제외한 dpadm의 모든 하위 명령에서 비밀번호를 입력하라는 메시지가 표시됩니다.

비밀번호 요청을 프롬프트하거나 프롬프트하지 않도록 디렉토리 프록시 서버를 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure인증서 데이터베이스에 액세스할 때 비밀번호 요청을 프롬프트하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 서버를 중지합니다.


    $ dpadm stop instance-path
    Directory Proxy Server instance 'instance-path' stopped
  2. 비밀번호 프롬프트 플래그를 on으로 설정한 다음 인증서 데이터베이스 비밀번호를 입력하고 확인합니다.


    $ dpadm set-flags instance-path cert-pwd-prompt=on
    Choose the certificate database password:
    Confirm the certificate database password:
  3. 서버를 시작한 다음 인증서 데이터베이스 비밀번호를 입력합니다.


    $ dpadm start instance-path
    Enter the certificate database password:

Procedure인증서 데이터베이스에 액세스할 때 비밀번호 요청 프롬프트를 비활성화하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 서버를 중지합니다.


    $ dpadm stop instance-path
    Directory Proxy Server instance 'instance-path' stopped
  2. 비밀번호 프롬프트 플래그를 off로 설정한 다음 기존 비밀번호를 입력합니다.


    $ dpadm set-flags instance-path cert-pwd-prompt=off
    Enter the old password:
  3. 서버를 시작합니다.


    $ dpadm start instance-path
    

21장 디렉토리 프록시 서버 로드 균형 조정 및 클라이언트 선호도

로드 균형 조정 및 클라이언트 선호도에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 16 장, Directory Proxy Server Load Balancing and Client Affinity를 참조하십시오. 이 장은 다음 내용으로 구성되어 있습니다.

로드 균형 조정 구성

로드 균형 조정에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceLoad Balancing을 참조하십시오. 이 절에서는 로드 균형 조정을 구성하는 방법에 대해 설명하며 구성 예를 제공합니다.

Procedure로드 균형 조정 알고리즘을 선택하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 소스 풀의 등록 정보를 확인하여 현재 로드 균형 조정 알고리즘을 얻습니다.


    $ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name
    

    LDAP 데이터 소스 풀의 기본 등록 정보는 다음과 같습니다.


    client-affinity-policy    :  write-affinity-after-write
    client-affinity-timeout   :  20s
    description               :  -
    enable-client-affinity    :  false
    load-balancing-algorithm  :  proportional

    로드 균형 조정 알고리즘의 기본값은 proportional입니다.

  2. 알고리즘을 사용하려면 LDAP 데이터 소스 풀을 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
      load-balancing-algorithm:selected-algorithm
    

    여기서 selected-algorithm은 다음 값 중 하나입니다.

    • failover

    • operational-affinity

    • proportional

    • saturation

    알고리즘에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceIntroduction to Load Balancing을 참조하십시오.

  3. 디렉토리 프록시 서버 인스턴스를 다시 시작합니다.


    $ dpadm restart instance-path
    

Procedure로드 균형 조정에 대한 가중치를 구성하는 방법

첨부된 데이터 소스의 가중치는 데이터 소스 풀에 첨부된 다른 데이터 소스의 가중치와 관련하여 구성해야 합니다. 첨부된 모든 데이터 소스의 가중치를 고려합니다. 작업 유형에 대해 데이터 소스에 disabled 가중치가 부여되면 이 데이터 소스에 해당 유형의 요청이 전송되지 않습니다. 데이터 소스의 가중치가 0(영)이면 요청이 해당 데이터 소스로 배포되지 않습니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스 풀에 첨부된 데이터 소스 목록을 봅니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port pool-name
    
  2. 첨부된 데이터 소스 중 하나에 대한 등록 정보를 봅니다.


    $ dpconf get-attached-ldap-data-source-prop pool-name \
     attached-data-source-name
    

    첨부된 데이터 소스의 등록 정보는 각 작업 유형에 대한 가중치를 정의합니다. 첨부된 데이터 소스의 기본 가중치는 다음과 같습니다.


    add-weight        :  disabled  
    bind-weight       :  disabled  
    compare-weight    :  disabled  
    delete-weight     :  disabled  
    modify-dn-weight  :  disabled  
    modify-weight     :  disabled  
    search-weight     :  disabled 
  3. 첨부된 데이터 소스 중 하나에 대한 가중치를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name \
     attached-data-source-name add-weight:value \
     bind-weight:value compare-weight:value delete-weight:value \
     modify-dn-weight:value modify-weight:value search-weight:value
    
  4. 다른 첨부된 데이터 소스에 대해 단계 2단계 3을 반복합니다.

  5. 첨부된 데이터 소스의 키 매개 변수를 비교합니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    

    예를 들어 데이터 소스 풀에 다음 가중치가 부여된 데이터 소스가 포함될 수 있습니다.


    $ dpconf list-attached-ldap-data-sources -h host1 -p 1389 -v myPool
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    DS-1     disabled   3		       disabled       disabled      
    DS-2     2          2           2              2             
    DS-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    disabled         disabled      disabled
    2                2             2
    1                1             1

로드 균형 조정 구성 예

이 절에는 각 로드 균형 조정 알고리즘을 구성하는 절차 예가 포함되어 있습니다.

Procedure로드 균형 조정에 대한 비례 알고리즘을 구성하는 방법

비례 알고리즘에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceProportional Algorithm for Load Balancing을 참조하십시오.

위의 예에서 데이터 소스 ds–1은 다른 두 데이터 소스의 가중치에 비해 2배로 구성되어 있습니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

시작하기 전에

데이터 소스 풀에 데이터 소스가 세 개 이상 첨부되어 있는지 확인합니다. 데이터 소스 및 데이터 소스 풀을 만드는 방법에 대한 자세한 내용은 LDAP 데이터 보기 만들기를 참조하십시오.

  1. 데이터 소스 풀이 로드 균형 조정에 대한 비례 알고리즘을 사용하도록 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
      load-balancing-algorithm:proportional
  2. 첫 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \
     modify-weight:2 search-weight:2
  3. 두 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  4. 세 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 첨부된 데이터 소스의 키 매개 변수를 비교합니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     2          2           2              2             
    ds-2     1          1           1              1             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    2                2             2
    1                1             1
    1                1             1
  6. 디렉토리 프록시 서버 인스턴스를 다시 시작합니다.


    $ dpadm restart instance-path
    

Procedure로드 균형 조정에 대한 포화 알고리즘을 구성하는 방법

포화 알고리즘에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceSaturation Algorithm for Load Balancing을 참조하십시오.

위의 예에서 데이터 소스 ds-1은 대부분의 바인드 작업을 수행하지만 다른 유형의 작업은 수행하지 않습니다. 세 데이터 소스는 다음과 같은 가중치로 구성되어 있습니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

시작하기 전에

데이터 소스 풀에 데이터 소스가 세 개 이상 첨부되어 있는지 확인합니다. 데이터 소스 및 데이터 소스 풀을 만드는 방법에 대한 자세한 내용은 LDAP 데이터 보기 만들기를 참조하십시오.

  1. 데이터 소스 풀이 로드 균형 조정에 대한 포화 알고리즘을 사용하도록 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:saturation
  2. 첫 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:disabled bind-weight:3 compare-weight:disabled delete-weight:disabled \
     modify-dn-weight:disabled modify-weight:disabled search-weight:disabled
  3. 두 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \
     modify-weight:2 search-weight:2
  4. 세 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 첨부된 데이터 소스의 키 매개 변수를 비교합니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     disabled   3		       disabled       disabled      
    ds-2     2          2           2              2             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    disabled         disabled      disabled
    2                2             2
    1                1             1
  6. 디렉토리 프록시 서버 인스턴스를 다시 시작합니다.


    $ dpadm restart instance-path
    

Procedure전역 계정 잠금에 대한 작업 선호도 알고리즘을 구성하는 방법

이 알고리즘에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceOperational Affinity Algorithm for Global Account Lockout을 참조하십시오.

이 예에서는 세 개의 데이터 소스를 사용합니다. 데이터 소스 ds-1이 모든 바인드 요청을 수신하도록 구성됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

시작하기 전에

데이터 소스 풀에 데이터 소스가 세 개 이상 첨부되어 있는지 확인합니다. 데이터 소스 및 데이터 소스 풀을 만드는 방법에 대한 자세한 내용은 LDAP 데이터 보기 만들기를 참조하십시오.

  1. 데이터 소스 풀이 작업 선호도 알고리즘을 사용하도록 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:operational-affinity
  2. 첫 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:1 bind-weight:100 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  3. 두 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  4. 세 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 첨부된 데이터 소스의 키 매개 변수를 비교합니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     1          100         1              1             
    ds-2     1          1           1              1             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    1                1             1
    1                1             1
    1                1             1
  6. 디렉토리 프록시 서버 인스턴스를 다시 시작합니다.


    $ dpadm restart instance-path
    

Procedure캐시 최적화에 대한 작업 선호도 알고리즘을 구성하는 방법

이 알고리즘에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceOperational Affinity Algorithm for Cache Optimization을 참조하십시오.

이 예에서는 세 개의 데이터 소스를 사용합니다. 모든 검색 및 비교 작업이 데이터 소스 ds-1에서 처리됩니다. ds-1이 요청에 응답하면 대상 항목이 캐시에 저장됩니다. ds-1이 동일한 요청에 대해 반복적으로 응답하면 데이터 소스가 캐시된 데이터를 사용할 수 있습니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

시작하기 전에

데이터 소스 풀에 데이터 소스가 세 개 이상 첨부되어 있는지 확인합니다. 데이터 소스 및 데이터 소스 풀을 만드는 방법에 대한 자세한 내용은 LDAP 데이터 보기 만들기를 참조하십시오.

  1. 데이터 소스 풀이 작업 선호도 알고리즘을 사용하도록 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:operational-affinity
  2. 첫 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:1 bind-weight:1 compare-weight:100 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:100
  3. 두 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  4. 세 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 첨부된 데이터 소스의 키 매개 변수를 비교합니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     1          1           100            1             
    ds-2     1          1           1              1             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    1                1             100
    1                1             1
    1                1             1
  6. 디렉토리 프록시 서버 인스턴스를 다시 시작합니다.


    $ dpadm restart instance-path
    

Procedure로드 균형 조정에 대한 페일오버 알고리즘을 구성하는 방법

페일오버 알고리즘에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceFailover Algorithm for Load Balancing을 참조하십시오.

이 예에서는 세 개의 데이터 소스를 사용합니다. 데이터 소스 ds-1이 모든 요청을 수신합니다. ds-1이 실패하면 ds-1이 복구될 때까지 ds-2가 모든 요청을 수신합니다. ds-1이 복구되기 전에 ds-2가 실패하면 ds-3이 모든 요청을 수신합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

시작하기 전에

데이터 소스 풀에 데이터 소스가 세 개 이상 첨부되어 있는지 확인합니다. 데이터 소스 및 데이터 소스 풀을 만드는 방법에 대한 자세한 내용은 LDAP 데이터 보기 만들기를 참조하십시오.

  1. 데이터 소스 풀이 로드 균형 조정에 대한 페일오버 알고리즘을 사용하도록 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:failover
  2. 첫 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \
     add-weight:3 bind-weight:3 compare-weight:3 delete-weight:3 modify-dn-weight:3 \
     modify-weight:3 search-weight:3
  3. 두 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \
     add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \
     modify-weight:2 search-weight:2
  4. 세 번째 데이터 소스의 등록 정보를 구성합니다.


    $ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \
     add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \
     modify-weight:1 search-weight:1
  5. 첨부된 데이터 소스의 키 매개 변수를 비교합니다.


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     3          3           3              3             
    ds-2     2          2           2              2             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    3                3             3
    2                2             2
    1                1             1
  6. 디렉토리 프록시 서버 인스턴스를 다시 시작합니다.


    $ dpadm restart instance-path
    

로드 균형 조정을 수행하기 위해 디렉토리 프록시 서버 구성

로드 균형 조정의 간단한 사례는 검색 및 비교 작업을 한 디렉토리 집합에 보내고, 기타 작업을 다른 집합에 보내는 것으로 구성되어 있습니다. Directory Proxy Server는 모든 클라이언트 작업을 수신합니다. 서버에서는 어떤 집합이 읽기를 가져오고, 어떤 집합이 기타 작업을 가져오는지를 결정해야 합니다.

    이 로드 균형 조정 시나리오를 처리하도록 Directory Proxy Server를 구성하는 핵심 단계는 다음과 같습니다.

  1. 디렉토리를 디렉토리 프록시 서버에 대한 데이터 소스로 추가합니다.

  2. 데이터 소스를 데이터 소스 풀에 추가합니다.

  3. 검색 및 비교를 허용하도록 일부 데이터 소스를 구성하고 추가, 바인드, 삭제, 수정 및 DN 작업 수정을 허용하도록 기타 데이터 소스를 구성합니다.

  4. 데이터 소스 풀을 데이터 보기에 추가합니다.

다음 예는 포트 9389에서 수신하는 Directory Proxy Server와 관련되어 있습니다. 프록시는 검색 및 비교 작업을 처리하는 한 디렉토리 서버 인스턴스 ds1:1389와 기타 작업을 처리하는 다른 디렉토리 서버 인스턴스 ds2:2389에 설명된 대로 로드 균형 조정을 수행하기 위해 여기서 구성됩니다.

첫 번째 단계에서는 데이터 소스를 만들고 활성화합니다. 이 단계에서는 프록시 서버를 다시 시작해야 합니다.


$ dpconf create-ldap-data-source -p 9389 ds1 localhost:1389
$ dpconf create-ldap-data-source -p 9389 ds2 localhost:2389
$ dpconf set-ldap-data-source-prop -p 9389 ds1 is-enabled:true
$ dpconf set-ldap-data-source-prop -p 9389 ds2 is-enabled:true
$ dpadm restart /local/dps

두 번째 단계에서는 데이터 소스를 데이터 소스 풀에 추가합니다.


$ dpconf create-ldap-data-source-pool -p 9389 "Directory Pool"
$ dpconf attach-ldap-data-source -p 9389 "Directory Pool" ds1 ds2

세 번째 단계에서는 검색 및 비교 작업을 허용하도록 ds1을 구성하고, 기타 작업을 허용하도록 ds2를 구성합니다.


$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds1 \
add-weight:disabled bind-weight:disabled compare-weight:1 delete-weight:disabled \
modify-dn-weight:disabled modify-weight:disabled search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds2 \
add-weight:1 bind-weight:1 compare-weight:disabled delete-weight:1 \
modify-dn-weight:1 modify-weight:1 search-weight:disabled

네 번째 단계에서는 클라이언트 응용 프로그램 요청이 풀에 전달되도록 데이터 소스 풀을 데이터 보기에 추가합니다.


$ dpconf create-ldap-data-view -p 9389 "Balanced View" "Directory Pool" \
dc=example,dc=com

클라이언트 선호도 구성

클라이언트 선호도는 로드 균형 조정 배포 시 전달 지연의 위험을 줄여줍니다. 클라이언트 선호도에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceClient Affinity를 참조하십시오. 이 절에서는 클라이언트 연결과 데이터 소스 간에 선호도를 구성하는 방법에 대해 설명하며 구성 예를 제공합니다.

Procedure클라이언트 선호도를 구성하는 방법

이 절차에서는 클라이언트 연결과 데이터 소스 간에 선호도를 구성하는 방법에 대해 설명합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스 풀의 등록 정보를 표시하여 현재 로드 균형 조정 알고리즘을 봅니다.


    $ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name
    

    데이터 소스 풀의 기본 등록 정보는 다음과 같습니다.


    client-affinity-policy    :  write-affinity-after-write
    client-affinity-timeout   :  20s
    description               :  -
    enable-client-affinity    :  false
    load-balancing-algorithm  :  proportional

    client-affinity-policy, client-affinity-timeoutenable-client-affinity 매개 변수는 클라이언트 선호도를 구성합니다. 등록 정보에 대한 설명과 유효한 값 목록을 보려면 다음을 입력하십시오.


    dpconf help-properties ldap-data-source-pool client-affinity-policy \
     client-affinity-timeout enable-client-affinity

    등록 정보에 대한 자세한 내용은 다음 설명서 페이지를 참조하십시오. client-affinity-policy(5dpconf), client-affinity-timeout(5dpconf)enable-client-affinity(5dpconf)

  2. 클라이언트 선호도를 활성화합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     enable-client-affinity:true
  3. 클라이언트 선호도에 대한 정책을 선택합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:selected-policy
    

    여기서 selected-policy는 다음 값 중 하나입니다.

    write-affinity-after-write

    첫 번째 쓰기 요청 이후 쓰기 요청에 대한 선호도

    read-write-affinity-after-write

    첫 번째 쓰기 요청 이후 모든 요청에 대한 선호도

    read-write-affinity-after-any

    첫 번째 읽기 요청 또는 쓰기 요청 이후 모든 요청에 대한 선호도

    read-affinity-after-write

    쓰기 요청 이후 첫 번째 읽기 요청에 대한 선호도

  4. 클라이언트 선호도 기간을 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-timeout:time-out[unit]

    시간 초과의 기본 unit은 밀리초입니다.

클라이언트 선호도 구성 예

이 절에는 클라이언트 선호도와 관련된 구성 예와 복제 지연, 쓰기 작업 확인 및 연결 기반 라우팅에 대한 예가 포함되어 있습니다.

Procedure데이터 소스 풀에 마스터 및 사용자가 포함된 경우 복제 지연에 대한 클라이언트 선호도를 구성하는 방법

이 절차를 수행하면 첫 번째 쓰기 작업 이후 최대 3초간 발생하는 모든 읽기 및 쓰기 작업에 대한 클라이언트 선호도가 구성됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스 풀의 선호도 매개 변수를 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-write-affinity-after-write client-affinity-timeout:3000 \
     enable-client-affinity:true

Procedure클라이언트 선호도가 읽기 작업으로 각 쓰기 작업을 확인하도록 구성하는 방법

이 절차를 수행하면 각 쓰기 작업 이후 첫 번째 읽기 작업에 대한 클라이언트 선호도가 구성됩니다. 이 예는 지정된 바인드 DN에서 읽기 작업을 수행하여 각 쓰기 작업을 검증하는 응용 프로그램에 적용할 수 있는 내용입니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스 풀의 선호도 매개 변수를 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-affinity-after-write enable-client-affinity:true

Procedure연결 기반 라우팅에 대한 클라이언트 선호도를 구성하는 방법

Directory Proxy Server 6.0 이전 버전에서는 클라이언트와 LDAP 서버 간에 한 개의 연결이 열렸습니다. 연결이 닫힐 때까지 클라이언트의 모든 요청에 대해 동일한 연결이 사용되었습니다. 이러한 라우팅 유형을 연결 기반 라우팅(connection-based routing)이라고 합니다. 이 절차에서는 연결 기반 라우팅에 대한 클라이언트 선호도를 구성하는 방법에 대해 설명합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

시작하기 전에

모든 데이터 소스가 데이터 소스 풀에 연결되고 client-cred-modeuse-client-identity로 설정되어야 합니다.

  1. 데이터 소스 풀의 선호도 매개 변수를 구성합니다.


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-write-affinity-after-any enable-client-affinity:true

22장 디렉토리 프록시 서버 배포

디렉토리 프록시 서버는 데이터 보기 정의를 통한 배포가 가능합니다. 데이터 보기는 보기 기준에서 정의하며 여기에서 해당 데이터 보기 항목의 기본 DN이 결정됩니다. Directory Proxy Server에서 제공된 배포 알고리즘을 바탕으로 여러 데이터 보기 간에 항목이 배분되는 방법을 지정할 수 있습니다.

디렉토리 프록시 서버 배포 개요와 사용 사례 예에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 17 장, Directory Proxy Server Distribution을 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

디렉토리 프록시 서버 배포 알고리즘 구성

디렉토리 프록시 서버는 다음의 배포 알고리즘을 제공합니다.

패턴 일치 배포 알고리즘 구성

디렉토리 프록시 서버는 요청 매개 변수와 하나 이상의 패턴 간의 일치를 기준으로 데이터 보기에 요청을 배포합니다. 다음 매개 변수를 설정하여 패턴 일치 배포 알고리즘을 구성합니다.

filter로 끝나는 구성 속성은 정규 표현식이 아닌 LDAP 필터입니다. 이러한 LDAP 필터는 수신되는 검색 요청에 포함된 LDAP 필터와 대조하여 평가됩니다.

예를 들어 다음 설정을 사용하여 uid가 짝수인 사용자의 요청을 even 데이터 보기로 보내고 uid가 홀수인 사용자의 요청을 odd 데이터 보기로 보내도록 패턴 일치 배포 알고리즘을 구성합니다.


$ dpconf set-ldap-data-view-prop even
pattern-matching-base-object-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\
(uid=*4)(uid=*6)(uid=*8))'\
pattern-matching-one-level-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\
(uid=*4)(uid=*6)(uid=*8))'\
pattern-matching-subtree-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\
(uid=*4)(uid=*6)(uid=*8))'\
pattern-matching-dn-regular-expression:'uid=[0-9]+[02468]'
distribution-algorithm: pattern-matching 

$ dpconf set-ldap-data-view-prop odd
pattern-matching-base-object-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\
(uid=*5)(uid=*7)(uid=*9))'\
pattern-matching-one-level-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\
(uid=*5)(uid=*7)(uid=*9))'\
pattern-matching-subtree-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\
(uid=*5)(uid=*7)(uid=*9))'\
pattern-matching-dn-regular-expression:'uid=[0-9]+[13579]'
distribution-algorithm: pattern-matching 

(uid=\2a) 표현식에서 \2a2a가 두 개의 16진수인 *의 ASCII 표현입니다. (uid=\2a) 표현식은 데이터 보기에서 모든 uid에 대한 요청을 허용하도록 합니다.

패턴 일치 알고리즘에서 지원되는 구문은 Java Pattern 클래스(http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html 에서 설명)로 지정합니다. 이 구문은 일반적인 regex 구문과 같지 않습니다.

숫자 배포 알고리즘 구성

디렉토리 프록시 서버는 요청의 RDN 숫자 값을 기준으로 데이터 보기에 요청을 배포합니다. 숫자 값은 데이터 보기의 기본 DN 아래 첫 번째 RDN 값에서 가져옵니다. 다음 매개 변수를 설정하여 숫자 경계를 정의합니다.

예를 들어 숫자 배포 알고리즘을 구성하여 0~99 사이의 uid에 대한 요청을 특정 데이터 보기로 보냅니다. 나머지 사용자에 대해 동일한 구문을 다른 데이터 보기에서 사용합니다.


$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:numeric \
 numeric-attrs:uid numeric-lower-bound:0 numeric-upper-bound:99

사전 배포 알고리즘 구성

디렉토리 프록시 서버가 요청의 RDN 사전 값을 기준으로 데이터 보기에 요청을 배포합니다. 사전 경계는 데이터 보기의 기본 DN 아래 첫 번째 RDN 값에서 가져옵니다. 다음 매개 변수를 설정하여 사전 경계를 정의합니다.

예를 들어 A~M 사이 문자로 시작되는 이름의 사용자 요청을 한 데이터 보기로 보내고 나머지 사용자의 요청을 다른 데이터 보기로 보내는 사전 배포 알고리즘을 구성합니다.


$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:lexicographic \
 lexicographic-attrs:cn lexicographic-lower-bound:A lexicographic-upper-bound:M

복제 배포 알고리즘 구성

디렉토리 프록시 서버가 복제에서 데이터 보기의 역할을 기준으로 데이터 보기에 요청을 배포합니다. 이 알고리즘은 데이터 소스 풀의 모든 데이터 소스에 쓰기 작업, 단일 데이터 소스에 읽기 작업을 각각 배포합니다. 복제 역할은 replication-role 매개 변수로 정의합니다. 데이터 보기는 마스터 역할 또는 소비자 역할을 담당할 수 있습니다.


$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:replication

사용자 정의 배포 알고리즘 구성

ldap-data-view, jdbc-data-view, ldif-data-viewjoin-data-view와 같은 모든 데이터 보기 유형에 대해 사용자 정의 배포 알고리즘을 구성할 수 있습니다. 다음 절차에서 알고리즘은 ldap-data-view에 대해서만 설정됩니다.

Procedure사용자 정의 배포 알고리즘을 구성하는 방법

  1. 배포 알고리즘 클래스가 들어 있는 JAR(Java Archive) 파일의 경로를 포함하도록 extension-jar-file-url 등록 정보를 설정합니다.


    $ dpconf set-server-prop -h host -p port extension-jar-file-url:jar file path
    

    jar file pathfile:/expt/dps/custom_plugin/myjar.jar과 같은 유효한 JAR 파일 경로로 대체될 수 있습니다.

  2. custom-distribution-algorithm을 구성하기 전에 distribution-algorithmnone으로 설정합니다.


    $ dpconf set-ldap-data-view-prop view name distribution-algorithm:none
  3. custom-distribution-algorithm 등록 정보를 사용자 정의 배포 알고리즘 클래스로 설정합니다.


    $ dpconf set-ldap-data-view-prop view name custom-distribution-algorithm:PackageName.AlgoClassName
    

접미어 데이터의 배포를 위해 디렉토리 프록시 서버 구성

데이터 배포의 간단한 사례는 A에서 시작하여 M까지의 UID가 한 디렉토리 집합에 있는 항목을 저장하고, N에서 시작하여 Z까지의 UID가 다른 디렉토리 집합에 있는 항목을 저장하는 것으로 구성되어 있습니다. 디렉토리 프록시 서버는 모든 클라이언트 작업을 수신합니다. 서버에서는 어떤 디렉토리 집합이 A에서 M까지 처리하고, 어떤 디렉토리 집합이 N에서 Z까지 처리하는지를 결정해야 합니다.

    이 데이터 배포 시나리오를 처리하도록 Directory Proxy Server를 구성하는 핵심 단계는 다음과 같습니다.

  1. 디렉토리를 디렉토리 프록시 서버에 대한 데이터 소스로 추가합니다.

  2. 서로 다른 데이터 배포를 처리하도록 데이터 소스를 데이터 소스 풀에 추가합니다.

  3. 클라이언트 요청을 적합한 데이터 풀에 배포하도록 설계된 데이터 보기를 만듭니다.

  4. LDIF가 적합한 데이터 소스로 로드되도록 분할합니다.

  5. 분할 LDIF를 적합한 데이터 소스로 가져옵니다.

  6. 적합한 데이터 풀에 첨부된 데이터 소스의 작업 기반 가중치를 조정합니다.

다음 예는 포트 9389에서 수신하는 Directory Proxy Server와 관련되어 있습니다. 이 예를 간단하게 하기 위해 프록시는 세 개의 디렉토리 서버 인스턴스에서만 설명된 대로 배포하도록 여기서 구성됩니다. 가용성 및 읽기 확장성을 위해 복제된 디렉토리 토폴로지를 사용하여 LDAP 데이터를 저장합니다. 한 Directory Server 인스턴스 dsA-M:1389에서는 A에서 시작하여 M까지의 UID가 있는 사용자 항목을 처리합니다. 다른 디렉토리 서버 인스턴스 dsN-Z:2389에서는 N에서 시작하여 Z까지의 UID가 있는 사용자 항목을 처리합니다. 마지막 디렉토리 인스턴스에서는 접미어가 dsBase:3389인 기본 항목을 처리합니다.

첫 번째 단계에서는 데이터 소스를 만들고 활성화합니다. 기본 데이터 소스는 UID가 없는 접미어의 루트 근처에 항목을 저장합니다. 일반 배포 시 이러한 항목 수는 배포된 항목 수보다 훨씬 적습니다.


$ dpconf create-ldap-data-source -p 9389 dsA-M localhost:1389
$ dpconf set-ldap-data-source-prop -p 9389 dsA-M is-enabled:true

$ dpconf create-ldap-data-source -p 9389 dsN-Z localhost:2389
$ dpconf set-ldap-data-source-prop -p 9389 dsN-Z is-enabled:true

$ dpconf create-ldap-data-source -p 9389 dsBase localhost:3389
$ dpconf set-ldap-data-source-prop -p 9389 dsBase is-enabled:true

두 번째 단계에서는 데이터 소스를 데이터 소스 풀에 추가합니다.


$ dpconf create-ldap-data-source-pool -p 9389 "Base Pool"
$ dpconf attach-ldap-data-source -p 9389 "Base Pool" dsBase

$ dpconf create-ldap-data-source-pool -p 9389 "A-M Pool"
$ dpconf attach-ldap-data-source -p 9389 "A-M Pool" dsA-M

$ dpconf create-ldap-data-source-pool -p 9389 "N-Z Pool"
$ dpconf attach-ldap-data-source -p 9389 "N-Z Pool" dsN-Z

세 번째 단계에서는 클라이언트 요청을 적합한 데이터 풀에 배포하도록 설계된 데이터 보기를 만듭니다. 기본 풀에서 dc=example,dc=com을 처리하는 한편, UID 값에 따라 배포된 데이터를 저장하는 풀에서 ou=people,dc=example,dc=com을 처리하는 방식을 살펴봅니다. 이 단계에서는 서버를 다시 시작해야 합니다.


$ dpconf create-ldap-data-view -p 9389 "Base View" "Base Pool" \
dc=example,dc=com

$ dpconf create-ldap-data-view -p 9389 "A-M View" "A-M Pool" \
ou=people,dc=example,dc=com
$ dpconf set-ldap-data-view-prop -p 9389 "A-M View" \
distribution-algorithm:lexicographic lexicographic-attrs:uid \
lexicographic-lower-bound:a lexicographic-upper-bound:m
The proxy server will need to be restarted in order for the changes to take effect

$ dpconf create-ldap-data-view -p 9389 "N-Z View" "N-Z Pool" \
ou=people,dc=example,dc=com
$ dpconf set-ldap-data-view-prop -p 9389 "N-Z View" \
distribution-algorithm:lexicographic lexicographic-attrs:uid \
lexicographic-lower-bound:n lexicographic-upper-bound:z
The proxy server will need to be restarted in order for the changes to take effect
$ dpadm restart /local/dps

네 번째 단계에서는 LDIF가 적합한 데이터 소스로 로드되도록 분할합니다. 이 예에서는 초기 분할을 수행하는 dsadm split-ldif 명령과 모든 데이터 소스에서 최상위 항목을 유지하기 위한 일부 파일 편집 기능을 모두 사용합니다. 이렇게 하면 액세스 제어 지침을 지정하는 최상위 항목을 유지할 뿐만 아니라 각 데이터 소스에 대해 단일 가져오기 명령을 사용할 수 있습니다.


$ dpadm split-ldif /local/dps /local/ds6/ldif/Example.ldif /tmp/
[14/May/2007:21:14:13 +0200] - STARTUP    - INFO  - Java Version: 1.5.0_09
 (Java Home: /local/jre)
[14/May/2007:21:14:13 +0200] - STARTUP    - INFO  - Java Heap Space: Total Memory
 (-Xms) = 3MB,
 Max Memory (-Xmx) = 63MB
[14/May/2007:21:14:13 +0200] - STARTUP    - INFO  - Operating System: SunOS/sparc 5.10
[14/May/2007:21:14:15 +0200] - INTERNAL   - ERROR - Entry starting at line 0 does not
 start with a DN
[14/May/2007:21:14:15 +0200] - INTERNAL   - ERROR - Unable to parse line "# Kirsten is
 a Directory Administrator and therefore should not" of entry "uid=kvaughan, ou=People,
 dc=example,dc=com" starting at line 112 as an attribute/value pair -- no colon found.
[14/May/2007:21:14:15 +0200] - INTERNAL   - ERROR - Unable to parse line "# Robert is
 a Directory Administrator and therefore should not" of entry "uid=rdaugherty,
 ou=People, dc=example,dc=com" starting at line 298 as an attribute/value pair --
 no colon found.
[14/May/2007:21:14:16 +0200] - INTERNAL   - ERROR - Unable to parse line "# Harry is
 a Directory Administrator and therefore should not" of entry "uid=hmiller, ou=People,
 dc=example,dc=com" starting at line 556 as an attribute/value pair -- no colon found.
[14/May/2007:21:14:16 +0200] - INTERNAL   - INFO  - SplitLDIF processing complete.
  Processed 156 entries.
$ ls /tmp/*ldif
/tmp/a-m view.ldif    /tmp/base view.ldif   /tmp/n-z view.ldif

또한 이 단계에서는 가져오기 전에 LDIF에 추가된 최상위 항목이 필요합니다.


$ cp /local/ds6/ldif/Example.ldif /tmp/top.ldif
$ vi /tmp/top.ldif 
$ cat /tmp/top.ldif  
dn: dc=example,dc=com
objectclass: top
objectclass: domain
dc: example
aci: (target ="ldap:///dc=example,dc=com")(targetattr !=
 "userPassword")(version 3.0;acl "Anonymous read-search access";
 allow (read, search, compare)(userdn = "ldap:///anyone");)
aci: (target="ldap:///dc=example,dc=com") (targetattr =
  "*")(version 3.0; acl "allow all Admin group"; allow(all) groupdn =
  "ldap:///cn=Directory Administrators,ou=Groups,dc=example,dc=com";)

$ cat /tmp/top.ldif /tmp/base\ view.ldif > /tmp/top\ and\ base\ view.ldif
$ cat /tmp/top.ldif /tmp/a-m\ view.ldif > /tmp/top\ and\ a-m\ view.ldif
$ cat /tmp/top.ldif /tmp/n-z\ view.ldif > /tmp/top\ and\ n-z\ view.ldif

다섯 번째 단계에서는 분할 LDIF를 적합한 데이터 소스로 가져옵니다. 여기서 기본 항목을 처리하는 디렉토리는 포트 3389에 있습니다. A에서 M까지 처리하는 디렉토리는 포트 1389에서 수신합니다. N에서 Z까지 처리하는 디렉토리는 포트 2389에서 수신합니다.


$ dsconf import -p 1389 /tmp/top\ and\ a-m\ view.ldif dc=example,dc=com
...
Task completed (slapd exit code: 0).

$ dsconf import -p 2389 /tmp/top\ and\ n-z\ view.ldif dc=example,dc=com
...
Task completed (slapd exit code: 0).
$ dsconf import -p 3389 /tmp/top\ and\ base\ view.ldif dc=example,dc=com
...
Task completed (slapd exit code: 0).

여섯 번째 단계에서는 적합한 데이터 풀에 첨부된 데이터 소스의 작업 기반 가중치를 조정합니다. 클라이언트 응용 프로그램이 검색 이외의 작업을 수행하면 해당 작업에 대한 가중치도 설정해야 합니다.


$ dpconf set-attached-ldap-data-source-prop -p 9389 "Base Pool" dsBase search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "A-M Pool" dsA-M search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "N-Z Pool" dsN-Z search-weight:1

작업 기반 가중치가 설정되면 클라이언트 응용 프로그램은 데이터가 물리적으로 배포되지 않았던 것처럼 디렉토리 프록시 서버를 통해 검색할 수 있습니다.

다음 검색에서는 UID가 R로 시작하는 사용자를 찾습니다.


$ ldapsearch -p 9389 -b dc=example,dc=com uid=rfisher
version: 1
dn: uid=rfisher, ou=People, dc=example,dc=com
cn: Randy Fisher
sn: Fisher
givenName: Randy
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
ou: Human Resources
ou: People
l: Cupertino
uid: rfisher
mail: rfisher@example.com
telephoneNumber: +1 408 555 1506
facsimileTelephoneNumber: +1 408 555 1992
roomNumber: 1579

다음 검색에서는 기본 항목 중 하나를 찾습니다.


$ ldapsearch -p 9389 -b ou=groups,dc=example,dc=com cn=hr\ managers
version: 1
dn: cn=HR Managers,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: HR Managers
ou: groups
uniqueMember: uid=kvaughan, ou=People, dc=example,dc=com
uniqueMember: uid=cschmith, ou=People, dc=example,dc=com
description: People who can manage HR entries

사용 사례 예를 위한 데이터 보기 만들기 및 구성

이 절에서는 데이터 보기에 대한 다음 정보와 데이터 보기를 만들고 구성하는 방법에 대해 설명합니다.

이 절의 예에서는 연결 처리기를 통해 디렉토리 프록시 서버가 모든 클라이언트 연결을 처리할 수 있다고 가정합니다.

하위 트리의 다른 부분이 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 데이터 보기

이 절에서는 하위 트리의 다른 부분에 대한 단일 액세스 지점을 제공하는 데이터 보기를 구성하는 방법에 대해 설명합니다. 이 예에는 동일한 기본 DN을 가진 두 개의 데이터 보기가 포함됩니다. 항목을 다른 데이터 보기로 구분하기 위해 숫자 배포 알고리즘이 사용됩니다. 데이터와 동등한 데이터 소스의 각 집합에 대해 데이터 소스 풀이 구성됩니다. 다음 그림은 배포 예를 보여줍니다.

이 배포 유형에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceData Views to Route Requests When Different Parts of a Subtree Are Stored in Different Data Sources를 참조하십시오.

그림 22–1 하위 트리의 다른 부분이 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 배포 예

그림은 여러 데이터 소스에 저장된 하위 트리의 다른 부분에 단일 액세스 지점을 제공하는 배포 예를 보여줍니다.

Procedure하위 트리의 다른 부분이 다른 데이터 소스에 저장된 경우 단일 액세스 지점을 제공하는 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 각 LDAP 서버에 대한 데이터 소스를 만듭니다.

  2. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 두 개의 데이터 소스 풀을 만듭니다.

  3. 데이터 소스 풀에 LDAP 데이터 소스 첨부에 설명된 것처럼 하위 트리의 한 부분을 포함하는 데이터 소스를 data-source-pool-1에 첨부하고 하위 트리의 다른 부분을 포함하는 데이터 소스를 data-source-pool-2에 첨부합니다.

  4. (옵션) 로드 균형 조정을 구성합니다.

    자세한 내용은 로드 균형 조정 구성을 참조하십시오.

  5. 배포 알고리즘이 있는 데이터 보기를 만들어 099 사이의 uid가 있는 ou=people,dc=example,dc=com에서 항목을 선택하고 데이터 보기를 구성하여 요청을 data-source-pool-1에 보냅니다.


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-1 \
     ldap-data-source-pool:data-source-pool-1 base-dn:ou=people,dc=example,dc=com \
     distribution-algorithm	:numeric numeric-attrs:uid numeric-lower-bound	:0 \
     numeric-upper-bound	:99
  6. 배포 알고리즘이 있는 다른 데이터 보기를 만들어 100199 사이의 uid가 있는 ou=people,dc=example,dc=com에서 항목을 선택하고 데이터 보기를 구성하여 요청을 data-source-pool-2에 보냅니다.


    $ dpconf set-ldap-data-view-prop -h host1 -p 1389 dataview-2 \
     ldap-data-source-pool:data-source-pool-2 base-dn:ou=people,dc=example,dc=com \
     distribution-algorithm:numeric numeric-attrs:uid numeric-lower-bound:100
     numeric-upper-bound	:199

    데이터 보기의 다른 등록 정보는 기본 데이터 보기의 기본 데이터 보기와 동일합니다.

  7. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

계층 및 배포 알고리즘이 있는 데이터 보기

이 절에서는 계층을 배포 알고리즘과 결합하도록 데이터 보기를 구성하는 방법에 대해 설명합니다. 이 배포 유형에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceData Views With Hierarchy and a Distribution Algorithm을 참조하십시오.

이 절의 예에는 네 개의 데이터 보기가 포함됩니다. 데이터 보기 1의 기본 DN은 다른 데이터 보기의 기본 DN에 대해 상위입니다. 데이터 보기 3 및 데이터 보기 4에는 동일한 DN이 있지만 숫자 배포 알고리즘이 항목을 다른 데이터 보기로 구분합니다.

디렉토리 프록시 서버는 하위 분기가 별개 데이터 보기의 기본 DN으로 구성된 경우 하위 트리의 하위 분기를 데이터 보기에서 자동으로 제외합니다. 숫자 배포 알고리즘은 동일한 하위 트리 항목을 다른 데이터 보기로 구분합니다. 데이터와 동등한 데이터 소스의 각 집합에 대해 데이터 소스 풀이 구성됩니다.

다음 그림은 배포 예를 보여줍니다.

그림 22–2 계층 및 배포 알고리즘이 있는 데이터 보기 예

그림은 계층 및 배포 알고리즘을 결합하는 데이터 보기 예를 보여줍니다.

Procedure계층 및 배포 알고리즘이 있는 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 각 LDAP 서버에 대한 데이터 소스를 만듭니다.

  2. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 네 개의 데이터 소스 풀을 만듭니다.

  3. 데이터 소스 풀에 LDAP 데이터 소스 첨부의 지침에 따라 데이터 소스를 데이터 소스 풀에 첨부합니다.

    • dc=example,dc=com을 포함하는 데이터 소스를 data-source-pool-1에 첨부합니다.

    • ou=computer,dc=example,dc=com을 포함하는 데이터 소스를 data-source-pool-2에 첨부합니다.

    • 099 사이의 uid가 있는 ou=people,dc=example,dc=com에서 항목을 포함하는 데이터 소스를 data-source-pool-3에 첨부합니다.

    • 100199 사이의 uid가 있는 ou=people,dc=example,dc=com에서 항목을 포함하는 데이터 소스를 data-source-pool-4에 첨부합니다.

  4. (옵션) 로드 균형 조정을 구성합니다.

    자세한 내용은 로드 균형 조정 구성을 참조하십시오.

  5. data-source-pool-1을 참조하는 dc=example,dc=com에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-1 \
     data-source-pool-1 dc=example,dc=com
  6. data-source-pool-2를 참조하는 ou=computer,dc=example,dc=com에서 기본 DN이 있는 데이터 보기를 만듭니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-2 \
     data-source-pool-2 ou=computer,dc=example,dc=com
  7. data-source-pool-3을 참조하는 ou=people,dc=example,dc=com에서 기본 DN이 있는 데이터 보기를 만듭니다. 099 사이의 uid가 있는 항목을 선택하도록 데이터 보기에서 배포 알고리즘을 구성합니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-3 \
     data-source-pool-3 ou=people,dc=example,dc=com
    $ dpconf set-ldap-data-view-prop dataview-3 distribution-algorithm:numeric \
     numeric-attrs:uid numeric-lower-bound:0 numeric-upper-bound:99
  8. data-source-pool-4를 참조하는 ou=people,dc=example,dc=com에서 기본 DN이 있는 데이터 보기를 만들고 100199 사이의 uid가 있는 항목을 선택하도록 데이터 보기에서 배포 알고리즘을 구성합니다.


    $ dpconf create-ldap-data-view -h host1 -p 1389 dataview-4 \
     data-source-pool-4 ou=people,dc=example,dc=com
    $ dpconf set-ldap-data-view-prop dataview-4 distribution-algorithm:numeric \
     numeric-attrs:uid numeric-lower-bound:100 numeric-upper-bound:199
  9. excluded-subtrees 매개 변수를 확인하여 ou=computer,dc=example, dc=comou=people,dc=example, dc=com 하위 트리가 dataview-1에서 제외되었는지 확인합니다.


    $ dpconf get-ldap-data-view-prop -h host1 -p 1389 dataview-1 excluded-subtrees

    제외된 하위 트리 목록이 반환됩니다.

  10. 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

23장 디렉토리 프록시 서버 가상화

이 장에서는 가상 데이터 보기를 만드는 방법에 대해 설명합니다. 가상 데이터 보기는 소스 데이터를 변환하고 해당 데이터의 다른 보기를 클라이언트 응용 프로그램에 제공합니다. 가상 데이터 보기에는 변환된 LDAP 데이터 보기, LDIF 데이터 보기, 결합 데이터 보기 및 JDBCTM 데이터 보기가 포함됩니다. 가상 데이터 보기의 기능 개요와 사용 사례 예에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 18 장, Directory Proxy Server Virtualization을 참조하십시오.

디렉토리 서비스 제어 센터(Directory Service Control Center, DSCC)를 사용하여 이 장의 절차를 수행할 수 없습니다. 명령줄을 사용해야 합니다.

이 장은 다음 내용으로 구성되어 있습니다.

LDIF 데이터 보기 만들기 및 구성

LDIF 데이터 보기는 LDIF 파일이 LDAP 데이터 소스처럼 표시되는 간단한 가상 데이터 보기입니다. LDAP 데이터 보기와 달리 LDIF 데이터 보기를 설정할 때는 데이터 소스 또는 데이터 소스 풀을 만들지 않습니다. 대신, 데이터 보기를 만들 때 LDIF 파일을 지정합니다. 기본적으로 LDIF 데이터 보기에는 쓸 수 없습니다. 자세한 내용은 가상 데이터 보기에서 액세스 제어 정의를 참조하십시오.

LDIF 데이터 보기를 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

ProcedureLDIF 데이터 보기를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. LDIF 데이터 보기를 만듭니다.


    $ dpconf create-ldif-data-view -h host -p port view-name path-to-ldif-file suffix-dn
    
  2. (옵션) LDIF 데이터 보기 목록을 봅니다.


    $ dpconf list-ldif-data-views -h host -p port
    

    virtual access controls 데이터 보기는 유일한 기본 LDIF 데이터 보기입니다. 이 데이터 보기는 서버에서 생성되며 가상 액세스 제어 지침(ACI)에 요청을 전달하도록 합니다.

ProcedureLDIF 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. LDIF 데이터 보기의 등록 정보를 봅니다.


    $ dpconf get-ldif-data-view-prop -h host -p port view-name
    

    LDIF 데이터 보기에는 다음과 같은 기본 등록 정보가 있습니다.


    alternate-search-base-dn                    :  ""
    alternate-search-base-dn                    :  dc=com
    attr-name-mappings                          :  none
    base-dn                                     :  suffixDN
    bind-pwd-attr                               :  userPassword
    contains-shared-entries                     :  -
    db-pwd-encryption                           :  clear-text
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    ldif-data-source                            :  /path/to/filename.ldif
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    process-bind                                :  -
    replication-role                            :  master
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr
  2. 단계 1에 나열된 하나 이상의 등록 정보를 변경합니다.


    $ dpconf set-ldif-data-view-prop -h host -p port view-name property:value \
     [property:value ... ]

    예를 들어 데이터 보기에 대한 소스 LDIF 파일을 변경하려면 ldif-data-source 등록 정보를 설정합니다.


    $ dpconf set-ldif-data-view-prop -h host1 -p 1389 -D cn="Proxy Manager" \
    myLDIFDataView ldif-data-source:/local/files/example.ldif

가상 데이터 보기에서 액세스 제어 정의

가상 데이터 보기에서 ACI는 LDAP 디렉토리 또는 LDIF 파일에 저장할 수 있습니다. 가상 ACI가 작동하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceAccess Control On Virtual Data Views를 참조하십시오.

디렉토리 프록시 서버 인스턴스를 만드는 경우 가상 액세스 제어에 대해 다음 기본 구성이 정의됩니다.

Procedure새 ACI 저장소를 정의하는 방법

앞에 설명된 기본 ACI 구성을 사용하지 않으려면 다른 저장소를 정의할 수 있습니다.

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 가상 ACI가 저장되는 저장소에 대한 데이터 보기를 만듭니다.

  2. 이전 단계에서 만든 데이터 보기의 이름을 ACI 데이터 보기로 지정합니다.

    $ dpconf set-virtual-aci-prop -h host -p port aci-data-view:data-view-name
    
  3. ACI 저장소가 LDAP 디렉토리인 경우 ACI 데이터 보기를 액세스하는 데 필요한 자격 증명을 정의합니다.

    $ dpconf set-virtual-aci-prop -h host -p port aci-manager-bind-dn:bind-dn
    $ dpconf set-virtual-aci-prop -h host -p port aci-manager-bind-pwd-file:filename
    

Procedure가상 액세스 제어를 구성하는 방법

사용하는 ACI 저장소에 상관없이 가상 액세스 제어를 구성해야 합니다.


주 –

프록시 관리자만 ACI 데이터 보기를 통해 ACI 풀을 만들고 ACI를 직접 관리할 수 있습니다. ACI 저장소가 LDAP 디렉토리인 경우 aciSource 객체 클래스 및 dpsaci 속성을 포함하도록 해당 디렉토리의 스키마를 수정해야 합니다. 스키마를 사용자 정의하는 방법에 대한 자세한 내용은 디렉토리 서버 스키마 확장을 참조하십시오.


DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. ACI 저장소에서 ACI 풀을 만들고 전역 ACI를 설정합니다.

    전역 ACI에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceGlobal ACIs를 참조하십시오. 전역 ACI를 설정하려면 ACI 데이터 보기의 보기 기준 아래에 aciSource 항목을 추가합니다. 예를 들면 다음과 같습니다.


    % ldapmodify -p port -D "cn=proxy manager" -w -
    dn: cn=aci-source-name,cn=virtual access controls
    changetype: add
    objectclass: aciSource
    dpsaci: (targetattr="*") (target="ldap:///ou=people,o=virtual") (version 3.0; 
     acl "perm1"; allow(all) groupdn="ldap:///cn=virtualGroup1,o=groups,o=virtual";)
    cn: data-source-name
    
  2. 이 ACI 풀을 사용하도록 하나 이상의 연결 처리기를 구성합니다.


    % dpconf set-connection-handler-prop -h host -p port connection-handler \
    aci-source:aci-source-name
    
  3. 필요한 ACI를 데이터에 추가합니다.

    이렇게 하려면 ACI를 포함하는 가상 항목을 만듭니다. 예를 들면 다음과 같습니다.


    % ldapmodify -p port -D "cn=virtual application,ou=application users,dc=com" -w -
    dn: ou=people,o=virtual
    changetype: modify
    add: dpsaci
    dpsaci: (targetattr="*")(version 3.0; acl "perm1"; allow(all) userdn="ldap:///self";)
    dpsaci: (targetattr="*")(version 3.0; acl "perm1"; allow(search, read, compare) 
     userdn ="ldap:///anyone";)

    주 –

    적절한 액세스 권한을 가진 모든 사용자가 데이터 보기를 통해 가상 ACI를 추가하고 검색할 수 있습니다.


가상 데이터 보기에서 스키마 검사 정의

일반적으로 LDAP 데이터 보기의 경우 스키마 검사는 백엔드 디렉토리의 스키마를 사용하여 백엔드 디렉토리에서 수행됩니다. 디렉토리 프록시 서버에서 스키마 검사를 수행하려면 다음 절차를 사용합니다.

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

요청, 특히 DN을 정규화하려면 다음과 같이 서버의 use-external-schema 등록 정보를 설정합니다.

Procedure스키마 검사를 정의하는 방법

  1. 서버 인스턴스가 외부 스키마를 사용해야 함을 나타냅니다.


    $ dpconf set-server-prop -h host -p port use-external-schema:true
  2. 연결 처리기에서 스키마 검사를 활성화합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler \
     schema-check-enabled:true
  3. cn=schema를 표시하는 데이터 보기를 만듭니다.

    외부 스키마가 LDAP 디렉토리에 정의된 경우 19 장, LDAP 데이터 보기에 설명된 것처럼 cn=schema의 보기 기준을 사용하여 LDAP 데이터 보기를 만듭니다.

    외부 스키마가 LDIF 파일에 정의된 경우 LDIF 데이터 보기 만들기 및 구성에 설명된 것처럼 cn=schema의 보기 기준을 사용하여 LDIF 데이터 보기를 만듭니다.

  4. 연결 처리기에서 표시되는 데이터 보기 목록에 이 데이터 보기를 추가합니다.

    기본적으로 모든 데이터 보기는 연결 처리기에서 표시됩니다. 연결 처리기에서 표시되는 데이터 보기의 사용자 정의 목록을 정의한 경우 이 데이터 보기를 해당 목록에 추가합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler \
     data-view-routing-custom-list+:data-view-name
    

결합 데이터 보기 만들기 및 구성

결합 데이터 보기는 여러 데이터 보기의 집계입니다. 결합 데이터 보기가 작동하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceJoin Data Views를 참조하십시오.

결합 데이터 보기를 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure결합 데이터 보기를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 결합 보기를 형성하도록 집계할 기본 및 보조 데이터 보기를 식별합니다.

    결합 보기를 만들려면 먼저 기본 및 보조 데이터 보기가 있어야 합니다. 기본 및 보조 보기는 LDAP 데이터 보기, LDIF 데이터 보기, JDBC 데이터 보기 또는 다른 결합 데이터 보기를 비롯한 모든 유형의 데이터 보기가 될 수 있습니다. 결합 보기의 소스로 작동하려면 보조 보기에서 특정 등록 정보를 구성해야 합니다. 자세한 내용은 결합 보기의 보조 보기를 구성하는 방법을 참조하십시오.

  2. 결합 데이터 보기를 만듭니다.


    $ dpconf create-join-data-view -h host -p port view-name primary-view secondary-view \
     suffix-dn
    
  3. (옵션) 데이터 보기가 성공적으로 만들어졌는지 확인하려면 결합 보기 목록을 봅니다.


    $ dpconf list-join-data-views -h host -p port
    

Procedure결합 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 결합 데이터 보기의 등록 정보를 봅니다.


    $ dpconf get-join-data-view-prop -h host -p port view-name
    

    결합 데이터 보기의 기본 등록 정보는 다음과 같습니다.


    alternate-search-base-dn                    :  ""
    alternate-search-base-dn                    :  dc=com
    attr-name-mappings                          :  none
    base-dn                                     :  suffixDN
    contains-shared-entries                     :  -
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    join-rule-control-enabled                   :  false
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    primary-view                                :  primary-view
    process-bind                                :  -
    replication-role                            :  master
    secondary-view                              :  secondary-view
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr
  2. 단계 1에 나열된 하나 이상의 등록 정보를 변경합니다.


    $ dpconf set-join-data-view-prop -h host -p port view-name property:value \
     [property:value ... ]

    예를 들어 데이터 소스의 기본 데이터 보기를 myLDAPDataView로 변경하려면 다음 명령을 사용합니다.


    $ dpconf set-join-data-view-prop -h host1 -p 1389 -D cn="Proxy Manager" \
     myJoinDataView primary-view:myLDAPDataView
  3. 결합 데이터 보기가 구성된 경우 기본 데이터 보기와 보조 데이터 보기에서 viewable-attrwritable-attr 등록 정보를 설정합니다.

    이 등록 정보를 설정하면 기본 데이터 보기와 보조 데이터 보기에서 검색 필터를 적절하게 분할할 수 있습니다. 그렇지 않으면 검색 필터에 보조 데이터 보기의 속성이 포함되어 있을 때 검색 결과가 불일치할 수 있습니다.

  4. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

Procedure여러 결합 데이터 보기에서 데이터 보기를 참조할 수 있도록 결합 데이터 보기를 구성하는 방법

결합 데이터 보기에서 결합 규칙 구성 정보를 설정하면 여러 결합 데이터 보기에서 데이터 보기를 참조할 수 있습니다. 이렇게 하려면 다음을 수행합니다.

  1. 결합 데이터 보기에서 join-rule-control-enabledtrue로 설정합니다.


    $ dpconf set-join-data-view-prop view-name join-rule-control-enabled:true

    join-rule-control-enabledtrue로 설정한 후에는 결합 데이터 보기에 저장된 결합 규칙 구성 정보가 서버에서 사용됩니다. 결합 규칙 구성 정보가 있는 결합 데이터 보기가 보조 데이터 보기에 저장되어 있는 경우 이 정보는 서버에서 사용되지 않습니다. 서버에서 이 정보를 사용하려면 결합 데이터 보기 수준에서 구성 정보를 수동으로 추가해야 합니다.

  2. 보조 보기가 기본 보기와 관련된 방식을 결정하는 결합 규칙을 정의합니다.

    결합 규칙은 다음 중 하나일 수 있습니다.

    • DN 결합 규칙


      $ dpconf set-join-data-view-prop view-name \
      dn-join-rule:uid=\${primary-view-name.uid},ou=People,dc=example
    • 필터 결합 규칙


      $ dpconf set-join-data-view-prop view-name \
      filter-join-rule:uid=\${primary-view-name.uid}

    위 명령에서 속성 이름이 변수로 처리되는 경우, ${}로 묶습니다. 속성 이름을 ${} 안에 넣어서 사용하지 않으면 속성 이름이 상수로 처리됩니다.

    Unix에서 bash 또는 ksh를 사용하는 경우 구성과 같이 \${primary-view-name .uid}에서 \를 사용하여 $ 문자를 이스케이프해야 하지만 Windows에서는 이스케이프할 필요가 없습니다.

Procedure결합 보기의 보조 보기를 구성하는 방법

결합 보기의 소스로 작동하려면 보조 데이터 보기에서 특정 등록 정보를 구성해야 합니다. 보조 보기는 모든 유형의 데이터 보기가 될 수 있으므로 사용하는 명령은 데이터 보기 유형에 따라 달라집니다. 다음 명령 예에서는 보조 보기를 LDAP 데이터 보기로 가정합니다. 여기에 설명된 등록 정보에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceAdditional Secondary Data View Properties를 참조하십시오.

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 보조 보기가 기본 보기와 관련된 방식을 결정하는 결합 규칙을 정의합니다.

    결합 보기의 기본 데이터 보기에 filter-join-ruledn-join-rule을 설정하면 안 됩니다.

    결합 규칙은 다음 중 하나일 수 있습니다.

    • DN 결합 규칙


      $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \
      dn-join-rule:uid=\${primary-view-name.uid},ou=People,dc=example
    • 필터 결합 규칙


      $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \
      filter-join-rule:uid=\${primary-view-name.uid}

    dn-join-rulefilter-join-rule 등록 정보의 구성은 결합 데이터 보기의 join-rule-control-enabled 등록 정보가 false로 설정된 경우에만 서버에서 사용됩니다. 그렇지 않으면 결합 데이터 보기에 join-rule-control-enabled 등록 정보가 true로 설정된 경우 보조 보기에 설정된 정보는 무시됩니다.

  2. 결합 데이터 보기에 필터 결합 규칙이 설정되어 있는 경우 결합 데이터 보기에 항목을 추가하려면 보조 데이터 보기에 가상 변환 규칙을 설정해야 합니다.


    dpconf add-virtual-transformation secondary-view-name \
    write add-attr-value dn uid=\${uid}

    주 –

    이 규칙을 설정하지 않으면 결합 데이터 보기에 항목을 추가할 수 없습니다.


  3. (옵션) 보조 보기에서 바인드가 허용되는지 여부를 지정합니다.

    기본적으로 바인드는 모든 데이터 보기에서 허용됩니다. 보조 데이터 보기에 대한 바인드를 금지하려면 다음 명령을 실행합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name process-bind:false

    이 등록 정보에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceHandling of Binds를 참조하십시오.

  4. (옵션) 보조 보기에 공유 항목이 포함되는지 여부를 지정합니다.


    $ dpconf set-ldap-data-view-prop -h host -p port secondary-view-name \
    contains-shared-entries:true

    이 등록 정보에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceHandling of Shared Entries를 참조하십시오.

JDBC 데이터 보기 만들기 및 구성

JDBC 데이터 보기를 사용하면 LDAP 클라이언트 응용 프로그램이 관계형 데이터베이스에 액세스할 수 있습니다. JDBC 데이터 보기가 작동하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceJDBC Data Views를 참조하십시오.

JDBC 데이터 보기를 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

ProcedureJDBC 데이터 보기를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 관계형 데이터베이스에 대한 JDBC 데이터 소스를 만듭니다.


    $ dpconf create-jdbc-data-source -h host -p port -b db-name -B db-url -J driver-url \
    [-J driver-url]... -S driver-class source-name
    

    현재는 각 JDBC 데이터 보기에 대해 한 개의 JDBC 데이터 소스만 지원됩니다. 즉, 여러 JDBC 데이터 소스에서 로드 균형 조정을 수행할 수 없습니다. 여러 JDBC 데이터 소스에 액세스하려면 각 데이터 소스에 대한 데이터 보기를 만들어 결합 데이터 보기와 결합할 수 있습니다.

    JDBC 데이터 소스를 만드는 경우 다음 등록 정보를 설정해야 합니다.

    db-name

    관계형 데이터베이스 이름(예: payrolldb).

    db-url

    jdbc: vendor:driver://dbhost: dbport 형식의 데이터베이스 URL.

    db-url에는 데이터베이스 이름이 없으므로 완전한 JDBC 데이터베이스 URL이 아닙니다. (데이터베이스 이름은 db-name 등록 정보로 지정됩니다.)

    MySQL, DB2 및 Derby 데이터베이스의 경우에는 db-url/로 끝나야 하고, Oracle 데이터베이스의 경우에는 :으로 끝나야 합니다.

    driver-class

    JDBC 드라이버 클래스(예: org.hsqldb.jdbcDriver).

    driver-url

    JDBC 드라이버 경로(예: file:/// path/to/hsqldb/lib/hsqldb.jar).

    driver-url 등록 정보는 여러 값을 가집니다. 따라서 driver-url은 JDBC 드라이버에 여러 개의 JAR 파일을 지원하여 여러 플랫폼의 JDBC 소스에 연결할 수 있습니다.

  2. JDBC 데이터 소스 풀을 만듭니다.


    $ dpconf create-jdbc-data-source-pool -h host -p port pool-name
    
  3. JDBC 데이터 소스를 JDBC 데이터 소스 풀에 첨부합니다.


    $ dpconf attach-jdbc-data-source -h host -p port pool-name source-name
    
  4. JDBC 데이터 보기를 만듭니다.


    $ dpconf create-jdbc-data-view -h host -p port view-name pool-name suffix-DN
    
  5. (옵션) 데이터 보기가 성공적으로 만들어졌는지 확인하려면 JDBC 데이터 보기 목록을 봅니다.


    $ dpconf list-jdbc-data-views -h host -p port
    

ProcedureJDBC 데이터 보기를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. JDBC 데이터 보기의 등록 정보를 봅니다.


    $ dpconf get-jdbc-data-view-prop -h host -p port view-name
    

    JDBC 데이터 보기의 기본 등록 정보는 다음과 같습니다.


    alternate-search-base-dn                    :  -
    attr-name-mappings                          :  none
    base-dn                                     :  o=sql1
    contains-shared-entries                     :  -
    description                                 :  -
    distribution-algorithm                      :  -
    dn-join-rule                                :  -
    dn-mapping-attrs                            :  none
    dn-mapping-source-base-dn                   :  none
    excluded-subtrees                           :  -
    filter-join-rule                            :  -
    is-enabled                                  :  true
    is-read-only                                :  false
    is-routable                                 :  true
    jdbc-data-source-pool                       :  pool-name
    lexicographic-attrs                         :  all
    lexicographic-lower-bound                   :  none
    lexicographic-upper-bound                   :  none
    non-viewable-attr                           :  -
    non-writable-attr                           :  -
    numeric-attrs                               :  all
    numeric-default-data-view                   :  false
    numeric-lower-bound                         :  none
    numeric-upper-bound                         :  none
    pattern-matching-base-object-search-filter  :  all
    pattern-matching-dn-regular-expression      :  all
    pattern-matching-one-level-search-filter    :  all
    pattern-matching-subtree-search-filter      :  all
    process-bind                                :  -
    replication-role                            :  master
    viewable-attr                               :  all except non-viewable-attr
    writable-attr                               :  all except non-writable-attr
  2. 단계 1에 나열된 하나 이상의 등록 정보를 변경합니다.


    $ dpconf set-jdbc-data-view-prop -h host -p port view-name property:value \
     [property:value ... ]

ProcedureJDBC 테이블, 속성 및 객체 클래스 구성

JDBC 데이터 보기를 구성할 경우에는 다음 객체도 구성해야 합니다.

  1. 관계형 데이터베이스에서 각 테이블에 대한 JDBC 테이블을 만듭니다.


    % dpconf create-jdbc-table jdbc-table-name db-table
    

    db-table의 이름은 대소문자를 구분합니다. 관계형 데이터베이스에 사용된 것과 동일한 대소문자를 사용해야 하며, 그렇지 않으면 해당 테이블에 대한 작업이 실패할 수 있습니다.

  2. 각 관계형 데이터베이스 테이블에서 각 열에 대한 JDBC 속성을 만듭니다.


    % dpconf add-jdbc-attr table-name attr-name sql-column
    

    JDBC 속성을 만들면 테이블 열이 LDAP 속성에 매핑됩니다.

  3. (옵션) 관계형 데이터베이스의 열이 대소문자를 구분할 경우 JDBC 속성의 LDAP 구문을 변경합니다.


    % dpconf set-jdbc-attr-prop table-name attr-name ldap-syntax:ces

    ldap-syntax의 값은 기본적으로 cis입니다. 이는 jdbc-attr이 대소문자를 구분하지 않는다는 것을 의미합니다. 관계형 데이터베이스가 대소문자를 구분할 경우 값을 ces로 변경합니다.

    Oracle 및 DB2와 같은 특정 관계형 데이터베이스는 기본적으로 대소문자를 구분합니다. LDAP는 기본적으로 대소문자를 구분하지 않습니다. 디렉토리 프록시 서버에서 관계형 데이터베이스 테이블의 열이 대소문자를 구분한다는 것을 감지하는 경우 필터에서 해당 속성이 있는 ldapsearch 쿼리가 UPPER 함수를 사용하여 SQL 쿼리로 변환됩니다.

    예를 들어 ldapsearch -b "dc=mysuffix" "(attr=abc)" 쿼리는 다음 SQL 쿼리로 변환됩니다.


    SELECT * FROM mytable WHERE (UPPER(attr)='ABC')

    기본적으로 이 유형의 쿼리는 색인화되지 않습니다. 따라서 이 특성을 가진 쿼리는 성능에 큰 영향을 줄 수 있습니다.

    다음 두 가지 방법으로 성능에 미치는 영향을 줄일 수 있습니다.

    • jdbc-attr의 ldap-syntax 등록 정보를 ces로 설정

    • LDAP 필터에서 사용할 수 있는 각 jdbc-attr에 대해 UPPER 함수를 사용하여 색인 만들기


    주 –

    관계형 데이터베이스가 대소문자를 구분하지 않는 경우 ldap-syntax를 기본값 즉, cis로 사용합니다. ldap-syntax:ces는 대소문자를 구분하지 않는 데이터베이스에서 지원되지 않습니다.


  4. LDAP 관계형 데이터베이스 테이블에 대한 JDBC 객체 클래스를 만듭니다.


    % dpconf create-jdbc-object-class view-name objectclass primary-table \
      [secondary-table... ] DN-pattern
    

    기본적으로 JDBC 객체 클래스를 만들면 해당 테이블과 연관되는 LDAP 객체 클래스가 지정됩니다. 또한 JDBC 객체 클래스는 기본 테이블과 보조 테이블을 지정합니다(있을 경우).

    JDBC 객체 클래스를 만들 때 DN 패턴을 지정합니다. DN 패턴은 항목의 DN을 구성하는 데 사용해야 하는 속성을 설명합니다. 예를 들어 DN 패턴을 uid로 지정하면 항목의 DN이 uid 속성 및 데이터 보기의 보기 기준을 사용하여 구성됩니다. 예를 들면 uid=bjensen,ou=people,dc=example,dc=com과 같습니다. DN 패턴으로 여러 속성을 만들 수 있습니다. 이 경우 속성을 ,(쉼표)로 구분해야 합니다. 예를 들어 DN 패턴을 uid,country로 지정하는 경우 데이터 보기에서 반환되는 항목의 DN은 uid=bjensen,country=America,ou=people,dc=example,dc=com입니다.

    JDBC 객체 클래스의 DN 패턴에서 정의된 모든 하위 트리 구성 요소에는 해당 구성 요소에 대해 정의된 JDBC 객체 클래스가 있어야 합니다. 예를 들어 JDBC 객체 클래스에 DN 패턴 uid,ou가 있는 경우 JDBC 객체 클래스 정의에는 DN 패턴 ou가 포함되어야 합니다. 디렉토리 프록시 서버에서는 올바로 구성된 DIT를 구성해야 합니다. 그렇지 않으면 ou=xxx,base-DN과 같은 값이 있는 하위 트리는 검색 결과로 반환되지 않습니다.

  5. 보조 테이블이 있을 경우 기본 테이블과 보조 테이블 간에 결합 규칙을 정의합니다.


    % dpconf set-jdbc-table-prop secondary-table-name filter-join-rule:join-rule
    

    결합 규칙은 보조 테이블에 정의되며 해당 테이블의 데이터가 기본 테이블의 테이터에 연결되는 방법을 결정합니다. 객체 클래스의 기본 테이블과 보조 테이블 간에 관계를 정의하는 방법은 중요합니다. 자세한 내용은 JDBC 테이블 간의 관계 정의를 참조하십시오.

  6. JDBC 객체 클래스에 대한 수퍼 클래스를 지정합니다.


    % dpconf set-jdbc-object-class-prop view-name objectclass super-class:value
    

    수퍼 클래스는 JDBC 객체 클래스가 상속하는 LDAP 객체 클래스를 나타냅니다.

JDBC 테이블 간의 관계 정의

가장 단순한 경우 JDBC 객체 클래스는 단일(기본) 테이블만 포함합니다. 이 테이블에는 보조 테이블이 없으므로 테이블 간에 관계를 정의할 필요가 없습니다.

객체 클래스에 둘 이상의 테이블이 포함된 경우에는 해당 테이블 간의 관계를 분명하게 정의해야 합니다. 테이블 간의 관계는 항상 보조 테이블에서 정의됩니다. 보조 테이블의 다음 등록 정보를 사용하여 이러한 관계를 정의할 수 있습니다.

다음 예는 처음 두 개의 등록 정보 값을 기준으로 필터 결합 규칙을 정의하는 방법을 보여줍니다. 다음 예에서는 객체 클래스에 기본 테이블과 보조 테이블이 한 개씩 있다고 가정합니다.


예 23–1 is-single-row-table:truecontains-shared-entries:true

이 값은 해당 등록 정보의 기본값입니다. 이 경우 기본 테이블과 보조 테이블 간의 관계는 n->1입니다. 즉, 기본 테이블의 n개 행이 보조 테이블의 공유된 행 하나를 참조합니다.

관계형 데이터베이스에서 외래 키(FK)가 기본 테이블에 정의되고 보조 테이블의 열을 가리킵니다.

예를 들어 조직에서 여러 직원이 동일한 관리자를 공유할 수 있다고 가정합니다. 이 경우 다음 구조를 가진 두 개의 관계형 데이터베이스 테이블이 정의됩니다.


primary table : EMPLOYEE [ID, NAME, FK_MANAGER_ID]
secondary table : MANAGER  [ID, NAME]

다음 객체 클래스와 속성이 정의됩니다.


object-class : employee
attr : name (from primary EMPLOYEE.NAME)
attr : manager (from secondary MANAGER.NAME)

다음 필터 결합 규칙이 보조 테이블에 정의됩니다.


ID=\${EMPLOYEE.FK_MANAGER_ID}"

보조 테이블이 여러 개인 경우 각 보조 테이블에서 filter-join-rule을 구성해야 합니다. 여러 보조 테이블에 대해 filter-join-rule을 구성하는 방법에 대한 자세한 내용은 단계 11를 참조하십시오.

이 구성을 사용하면 LDAP 작업에 대해 다음 동작이 발생합니다.



예 23–2 is-single-row-table:truecontains-shared-entries:false

이 경우 기본 테이블과 보조 테이블 간의 관계는 1->1 또는 1<-1입니다. 즉, 기본 테이블의 한 행을 보조 테이블의 한 행에서 참조합니다.

관계형 데이터베이스에서 외래 키(FK)는 기본 테이블 또는 보조 테이블에 정의할 수 있습니다.

예를 들어 조직에서 직원의 UID가 하나의 테이블에 저장되고 직원의 성이 다른 테이블에 저장된다고 가정합니다. 이 경우 다음 구조를 가진 두 개의 관계형 데이터베이스 테이블이 정의됩니다.


primary table : UID [ID, VALUE, FK_SN_ID]
secondary table : SN [ID, VALUE]

다음 객체 클래스와 속성이 정의됩니다.


object-class : employee
attr : uid (from primary UID.VALUE)
attr : sn (from secondary ID.VALUE)

다음 필터 결합 규칙이 보조 테이블에 정의됩니다.


ID=\${UID.FK_SN_ID}

이 구성은 외래 키 FK_UID_ID가 보조 테이블에 저장되고 UID.ID를 가리키는 정반대 구성이 될 수 있습니다.



예 23–3 is-single-row-table:falsecontains-shared-entries:false

이 경우 기본 테이블과 보조 테이블 간의 괸계는 1->n입니다. 즉, 기본 테이블의 한 행을 보조 테이블의 n개 행에서 참조합니다. 이 예는 값이 여러 개인 속성의 경우를 보여줍니다. 값이 여러 개인 속성은 보조 테이블에서 행 집합으로 표시되며 속성 값당 한 행을 가집니다.

관계형 데이터베이스에서 외래 키는 보조 테이블에 정의되고 기본 테이블의 열을 가리킵니다.

예를 들어 조직에서 직원이 여러 전화 번호를 가질 수 있다고 가정합니다. 이 경우 다음 구조를 가진 두 개의 관계형 데이터베이스 테이블이 정의됩니다.


primary table : EMPLOYEE [ID, NAME]
secondary table : PHONE [ID, VALUE, USER_ID]

다음 객체 클래스와 속성이 정의됩니다.


object-class : employee
attr : cn (from primary EMPLOYEE.NAME)
attr : telephoneNumber (from secondary PHONE.VALUE)

다음 필터 결합 규칙이 보조 테이블에 정의됩니다.


USER_ID=\${EMPLOYEE.ID}


예 23–4 is-single-row-table:falsecontains-shared-entries:true

이 경우는 현재 디렉토리 프록시 서버에서 지원되지 않습니다.


가상 구성 예

다음 절에서는 두 개의 구성 예에 대해 설명합니다. 이러한 구성은 가상 디렉토리의 기본 기능과 이러한 기능을 구성하는 방법을 보여줍니다.

LDAP 디렉토리 및 MySQL 데이터베이스 결합

이 절의 절차에서는 LDAP 디렉토리 및 MySQL 데이터베이스를 결합하는 가상 구성 예에 대해 설명합니다. LDAP 디렉토리는 대부분의 사용자 정보를 포함하는 기본 데이터 소스입니다. mySQL 데이터베이스에는 사용자에 대한 추가 정보가 포함됩니다. 결과로 표시된 구성은 다음 그림과 같습니다.

그림 23–1 가상 구성 예

LDAP 데이터 보기 및 JDBC 데이터 보기로 구성되는 결합 데이터 보기를 보여주는 그림

install-path /ds6/ldif/Example.ldif에 제공된 샘플 데이터를 사용하여 이 예를 그대로 사용하거나 샘플 데이터를 고유한 데이터로 바꿀 수 있습니다.

이 구성은 다음 세 개의 절로 구분할 수 있습니다.

단순하게 만들기 위해 이 절의 모든 명령에서는 디렉토리 프록시 서버가 /local/dps의 로컬 호스트에서 실행 중이라고 가정합니다. 또한, 다음 환경 변수가 설정되었다고 가정합니다.

DIR_PROXY_PORT

1389

LDAP_ADMIN_PWF

pwd.txt, 관리자 비밀번호를 포함하는 파일

DIRSERV_PORT

4389

LDAP_ADMIN_USER

cn=Directory Manager

LDAP 데이터 보기 구성 및 테스트

ProcedureLDAP 데이터 보기를 구성하는 방법

시작하기 전에

이 절의 작업에서는 다음 정보를 가정합니다.

  1. 디렉토리 서버 인스턴스에 대해 myds1이라는 LDAP 데이터 소스를 만듭니다.


    % dpconf create-ldap-data-source myds1 host1:4389
  2. 데이터 소스를 활성화하고 데이터 소스에 대한 쓰기 작업을 허용합니다.


    % dpconf set-ldap-data-source-prop myds1 is-enabled:true is-read-only:false
  3. myds1-pool이라는 LDAP 데이터 소스 풀을 만듭니다.


    % dpconf create-ldap-data-source-pool myds1-pool
  4. LDAP 데이터 소스를 LDAP 데이터 소스 풀에 첨부합니다.


    % dpconf attach-ldap-data-source myds1-pool myds1
  5. 데이터 소스가 해당 데이터 소스 풀에서 바인드, 추가, 검색 및 수정 작업을 100% 받아야 함을 지정합니다.


    % dpconf set-attached-ldap-data-source-prop myds1-pool myds1 add-weight:100 \
     bind-weight:100 modify-weight:100 search-weight:100
  6. dc=example,dc=com의 기본 DN을 사용하여 데이터 소스 풀에 대한 myds1–view라는 LDAP 데이터 보기를 만듭니다.


    % dpconf create-ldap-data-view myds1-view myds1-pool dc=example,dc=com

ProcedureLDAP 데이터 보기를 테스트하는 방법

  1. dc=example,dc=com의 사용자로 LDAP 데이터 소스의 모든 항목을 검색하여 데이터 보기에서 읽을 수 있는지 확인합니다.


    % ldapsearch -p 1389 -D "uid=kvaughan,ou=people,dc=example,dc=com" -w bribery \
     -b dc=example,dc=com "objectclass=*"

    주 –

    dc=example,dc=com의 사용자에 대한 자격 증명을 사용해야 합니다. cn=Directory Manager를 사용하려면 해당 DN을 처리하도록 데이터 보기를 정의해야 합니다.


  2. dc=example,dc=com의 사용자로 userPassword 속성을 수정하여 데이터 보기에 쓸 수 있는지 확인합니다.


    % ldapmodify -p 1389 -D "uid=kvaughan,ou=people,dc=example,dc=com" -w bribery
    dn: uid=kvaughan,ou=people,dc=example,dc=com
    changetype: modify
    replace: userPassword
    userPassword: myNewPassword

    주 –

    디렉토리 서버의 기본 ACI를 사용하여 자신의 비밀번호를 수정할 수 있습니다.


JDBC 데이터 보기 구성 및 테스트

다음 작업에서는 mySQL 데이터베이스가 설치되어 실행 중이고 데이터로 채워져 있으며, 다음과 같은 특징이 있다고 가정합니다.

다음 표에서는 데이터베이스의 테이블과 해당 복합 필드에 대해 설명합니다. JDBC 데이터 보기를 설정하려면 이 정보가 필요합니다.

mySQL 테이블 

필드 

EMPLOYEE

ID, SURNAME,PASSWORD, ROOM, COUNTRY_ID

COUNTRY

ID, NAME

PHONE

USER_ID, NUMBER

ProcedureJDBC 데이터 보기를 구성하는 방법

  1. SQL 데이터베이스에 mysql1이라는 JDBC 데이터 소스를 만듭니다.


    % dpconf create-jdbc-data-source -b sample_sql \
     -B jdbc:mysql://host2.example.com:3306/ \
     -J file:/net/host2.example/local/mysql/lib/jdbc.jar \
     -S com.mysql.jdbc.Driver mysql1
  2. SQL 데이터베이스에 대한 사용자 이름과 비밀번호 파일을 지정합니다.


    % dpconf set-jdbc-data-source-prop mysql1 db-pwd-file:sqlpwd.txt db-user:root
  3. 프록시 서버를 다시 시작합니다.


    % dpadm restart /local/dps
  4. 데이터 소스를 활성화하고 데이터 소스에 대한 쓰기 작업을 허용합니다.


    % dpconf set-jdbc-data-source-prop mysql1 is-enabled:true is-read-only:false
  5. mysql1–pool이라는 JDBC 데이터 소스 풀을 만듭니다.


    % dpconf create-jdbc-data-source-pool mysql1-pool
  6. JDBC 데이터 소스를 데이터 소스 풀에 첨부합니다.


    % dpconf attach-jdbc-data-source mysql1-pool mysql1
  7. o=sql의 기본 DN을 사용하여 데이터 소스 풀에 대한 myjdbc1–view라는 JDBC 데이터 보기를 만듭니다.


    % dpconf create-jdbc-data-view mysql1-view mysql1-pool o=sql
  8. MySQL 데이터베이스의 각 테이블에 대한 JDBC 테이블을 만듭니다.


    % dpconf create-jdbc-table employee1 EMPLOYEE
    % dpconf create-jdbc-table country1 COUNTRY
    % dpconf create-jdbc-table phone1 PHONE

    SQL 데이터베이스의 테이블 이름은 대소문자를 구분합니다. SQL 데이터베이스에 사용된 것과 동일한 대소문자를 사용해야 합니다.

  9. 각 테이블의 열마다 JDBC 속성을 만듭니다.

    JDBC 속성을 만들면 MySQL 열이 LDAP 속성에 매핑됩니다.


    % dpconf add-jdbc-attr employee1 uid ID
    % dpconf add-jdbc-attr employee1 sn SURNAME
    % dpconf add-jdbc-attr employee1 userPassword PASSWORD
    % dpconf add-jdbc-attr employee1 roomNumber ROOM
    % dpconf add-jdbc-attr phone1 telephoneNumber NUMBER
    % dpconf add-jdbc-attr country1 countryName NAME

    phone1 user_idcountry1 id 열에는 LDAP 속성 uid가 이미 만들어진 EMPLOYEE.ID에 있는 값만 들어 있기 때문에 JDBC 속성을 만들 필요가 없습니다.

  10. LDAP person 객체 클래스에 대한 JDBC 객체 클래스를 만듭니다.

    이 단계에서 employee1 테이블은 기본 테이블로 식별되고 country1phone1 테이블은 보조 테이블로 식별됩니다. 또한 JDBC 객체 클래스를 만들려면 DN이 필요합니다. 이 예에서 DN은 데이터 보기의 기본 DN 및 uid 속성에서 구성됩니다.


    % dpconf create-jdbc-object-class mysql1-view person employee1 country1 phone1 uid
  11. 기본 테이블과 보조 테이블 간의 결합 규칙을 정의합니다.

    결합 규칙은 보조 테이블에 정의되며 해당 테이블의 데이터가 기본 테이블의 테이터에 연결되는 방법을 결정합니다.


    % dpconf set-jdbc-table-prop country1 filter-join-rule:ID=\${EMPLOYEE.COUNTRY_ID}
    % dpconf set-jdbc-table-prop phone1 filter-join-rule:USER_ID=\${EMPLOYEE.ID}
  12. JDBC 객체 클래스에 대한 수퍼 클래스를 지정합니다.

    수퍼 클래스는 JDBC 객체 클래스가 속성을 상속하는 LDAP 객체 클래스를 나타냅니다.


    % dpconf set-jdbc-object-class-prop mysql1-view person super-class:top

Procedure필요한 ACI를 만드는 방법

JDBC 데이터 보기를 테스트하기 전에 ACI를 구성하여 데이터 보기에 대한 쓰기 액세스 권한을 활성화해야 합니다. 기본적으로 비 LDAP 데이터 보기에 대한 쓰기 액세스 권한은 거부됩니다. 이 예에서는 한 개의 전역 ACI만 추가하면 사용자가 자신의 비밀번호를 수정할 수 있습니다.

  1. 프록시 관리자로 ACI 풀을 JDBC 데이터 소스에 추가하고 사용자가 자신의 항목을 수정할 수 있도록 전역 ACI를 추가합니다.


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=mysql1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=sql") 
    (version 3.0; acl "enable all access for all users "; allow(all) 
    userdn="ldap:///uid=kvaughan,o=sql";)
    cn: mysql1
  2. 연결 처리기를 만들어 o=sql 도메인에 대한 연결을 처리합니다.


    % dpconf create-connection-handler mysql1-handler
  3. 연결 처리기를 활성화하고 o=sql 도메인에 있는 사용자의 모든 바인드를 처리하도록 구성합니다.


    % dpconf set-connection-handler-prop mysql1-handler is-enabled:true \
     bind-dn-filters:"uid=.*,o=sql"
  4. 이전에 추가한 ACI 풀을 사용하도록 연결 처리기를 구성합니다.


    % dpconf set-connection-handler-prop mysql1-handler aci-source:mysql1

ProcedureJDBC 데이터 보기를 테스트하는 방법

  1. o=sql의 사용자로 JDBC 데이터 소스를 검색하여 데이터 보기에서 읽기 가능한지 확인합니다.


    % ldapsearch -p 1389 -D "uid=kvaughan,o=sql" -w mypwd -b o=sql "objectclass=*"

    주 –

    o=sql에서 사용자의 자격 증명을 사용해야 합니다.


  2. o=sql의 사용자로 userPassword 속성을 수정하여 데이터 보기에 쓰기 가능한지 확인합니다.


    % ldapmodify -p 1389 -D "uid=kvaughan,o=sql" -w mypwd
    dn: uid=kvaughan,o=sql
    changetype: modify
    replace: userPassword
    userPassword: myNewpwd

결합 데이터 보기 만들기 및 테스트

Procedure결합 데이터 보기를 만드는 방법

  1. myjoin1–view라는 결합 데이터 보기를 만듭니다.

    LDAP 데이터 보기를 기본 데이터 보기로 지정하고 JDBC 데이터 보기를 보조 데이터 보기로 지정합니다.


    % dpconf create-join-data-view myjoin1-view myds1-view mysql1-view o=join
  2. 보조 데이터 보기에서 결합 규칙을 정의합니다.

    다음 결합 규칙은 보조 데이터 보기에 있는 항목의 uid 속성이 기본 데이터 보기에 있는 항목의 uid 속성과 일치해야 함을 지정합니다.


    % dpconf set-jdbc-data-view-prop mysql1-view filter-join-rule:uid=\${myds1-view.uid}
  3. 결합 데이터 보기에 필터 결합 규칙이 설정되어 있는 경우 결합 데이터 보기에 항목을 추가하려면 보조 데이터 보기에 가상 변환 규칙을 설정해야 합니다.


    dpconf add-virtual-transformation secondary-view-name \
    write add-attr-value dn uid=\${uid}

    주 –

    이 규칙을 설정하지 않으면 결합 데이터 보기에 항목을 추가할 수 없습니다.


  4. 결합 데이터 보기를 통해 기본 데이터 보기에서 읽고 쓸 수 있는 속성 집합을 정의합니다.


    % dpconf set-ldap-data-view-prop myds1-view viewable-attr:dn \
    viewable-attr:cn viewable-attr:sn viewable-attr:givenName \
    viewable-attr:objectClass viewable-attr:ou viewable-attr:l \
    viewable-attr:uid viewable-attr:mail viewable-attr:telephoneNumber \
    viewable-attr:facsimileTelephoneNumber viewable-attr:roomNumber \
    viewable-attr:userPassword
    % dpconf set-ldap-data-view-prop myds1-view writable-attr:dn \
    writable-attr:cn writable-attr:sn writable-attr:givenName \
    writable-attr:objectClass writable-attr:ou writable-attr:l \
    writable-attr:uid writable-attr:mail writable-attr:telephoneNumber \
     writable-attr:facsimileTelephoneNumber writable-attr:roomNumber \
    writable-attr:userPassword

    이러한 정의는 결합 보기의 컨텍스트에서만 적용됩니다. 기본적으로 LDAP 데이터 보기에 직접 액세스할 경우 모든 속성을 읽고 쓸 수 있습니다.

  5. 결합 데이터 보기를 통해 보조 데이터 보기에서 읽고 쓸 수 있는 속성 집합을 정의합니다.


    % dpconf set-jdbc-data-view-prop mysql1-view viewable-attr:dn \
     viewable-attr:objectclass viewable-attr:sn viewable-attr:roomNumber \
     viewable-attr:userpassword viewable-attr:jobtitle viewable-attr:countryName \
     viewable-attr:telephoneNumber
    % dpconf set-jdbc-data-view-prop mysql1-view writable-attr:dn \
    writable-attr:objectclass writable-attr:sn writable-attr:roomNumber \
    writable-attr:userpassword writable-attr:jobtitle \
    writable-attr:countryName writable-attr:telephoneNumber

    이러한 정의는 결합 보기의 컨텍스트에서만 적용됩니다. 기본적으로 JDBC 데이터 보기에 직접 액세스할 경우 모든 속성을 읽고 쓸 수 있습니다.

Procedure필요한 ACI를 만드는 방법

  1. 프록시 관리자로 결합 데이터 보기에 대한 익명 액세스를 허용하는 전역 ACI를 추가합니다.


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=myjoin1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=join") 
    (version 3.0; acl "anonymous_access"; allow(all) userdn="ldap:///anyone";)
    cn: myjoin1
  2. 이전에 추가한 ACI 풀을 사용하도록 연결 처리기를 구성합니다.


    % dpconf set-connection-handler-prop default-connection-handler aci-source:myjoin1

Procedure결합 데이터 보기를 테스트하는 방법

  1. 익명 사용자로 결합 데이터 보기를 검색합니다.

    이 단계에서는 Kirsten Vaughan의 항목을 검색하여 두 결합 보기의 데이터가 검색되는지 여부를 확인합니다.


    % ldapsearch -p 1389 -b o=join "uid=kvaughan"

    반환된 항목에 LDAP 데이터 보기 및 JDBC 데이터 보기 속성이 모두 포함되어 있는지 확인합니다.

  2. o=join의 사용자로 userPassword 속성을 수정하여 결합 데이터 보기에 쓰기 가능한지 확인합니다.


    % ldapmodify -p 1389
    dn: uid=kvaughan,ou=people,o=join
    changetype: modify
    replace: userPassword
    userPassword: myPassword

별도의 여러 데이터 소스 결합

이 구성에서는 가상 디렉토리의 일부 기능이 특정 디렉토리 서비스 요구 사항을 충족하는 조직인 Example.com에 대해 설명합니다.

데이터 저장소 시나리오

Example.com은 별도의 여러 데이터 소스에 조직 데이터를 저장합니다. 레거시 이유로 인해 사용자 데이터는 LDAP 디렉토리, 플랫 LDIF 파일 및 SQL 데이터베이스에 분산됩니다. HR 부서는 o=example.com의 기본 DN을 사용하여 LDAP 디렉토리에 사용자 데이터를 저장합니다. 급여 부서는 데이터를 SQL 데이터베이스에 저장합니다. 관리 부서는 dc=example,dc=com의 기본 DN을 사용하여 부서 및 건물 번호와 같은 관리 데이터를 LDIF 파일에 저장합니다.

또한 Example.com은 Company22라는 회사를 인수했습니다. Company 22 역시 dc=company22,dc=com의 기본 DN을 사용하여 사용자 데이터를 LDAP 디렉토리에 저장합니다.

다음 다이어그램은 Example.com의 사용자 데이터가 저장되는 방법에 대한 상위 수준 보기를 제공합니다.

그림 23–2 별도의 소스에 있는 데이터 저장소

Example.com의 사용자 데이터가 별도의 데이터 소스에 저장되는 방법을 보여주는 그림

클라이언트 응용 프로그램 요구 사항

Example.com에는 별도의 데이터 소스에 저장된 데이터에 대한 액세스 권한을 필요로 하는 여러 LDAP 클라이언트 응용 프로그램이 있습니다. 클라이언트 응용 프로그램의 요구 사항은 각각 다릅니다. 다른 데이터 보기가 필요합니다. 클라이언트가 데이터를 집계하도록 요구하는 경우도 있습니다. 또한 일부 클라이언트 응용 프로그램에는 Example.com의 새 직원을 이전 직원과 함께 관리할 수 있도록 Company22의 사용자 데이터에 대한 액세스 권한이 필요합니다.

다음 다이어그램은 Example.com의 클라이언트 응용 프로그램 요구 사항에 대한 상위 수준 보기를 제공합니다.

그림 23–3 클라이언트 응용 프로그램 요구 사항

Example.com의 LDAP 응용 프로그램의 요구 사항을 보여주는 그림

다음 절에서는 이 샘플 시나리오에 설명된 클라이언트 응용 프로그램의 요구 사항을 충족할 수 있는 충분한 구성 디렉토리 프록시 서버 데이터 보기를 안내합니다. 데이터 보기가 작동하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 17 장, Directory Proxy Server DistributionSun Java System Directory Server Enterprise Edition 6.3 Reference의 18 장, Directory Proxy Server Virtualization을 참조하십시오.

샘플 시나리오의 구성은 다음 절로 구분됩니다.

HR LDAP 디렉토리 및 관리 LDIF 파일의 데이터 집계

HR 부서는 직원 이름, 작업 시작 데이터 및 작업 수준과 같은 정보를 저장합니다. 관리 부서는 건물 코드 및 사무실 번호와 같은 추가 데이터를 저장합니다. HR 데이터를 처리하는 클라이언트 응용 프로그램에는 두 소스의 결합된 데이터에 대한 액세스 권한이 필요합니다. 두 데이터 소스에는 각 항목에 존재하는 공통 속성인 employeeNumber가 있습니다.

다음 다이어그램은 클라이언트 응용 프로그램의 요구 사항을 보여줍니다.

그림 23–4 LDAP 디렉토리 및 LDIF 파일의 데이터 집계

LDAP 디렉토리 및 LDIF 파일의 결합 보기를 보여주는 그림

이 응용 프로그램의 요구 사항을 충족하기 위해 급여 디렉토리 및 관리 LDIF 파일에 대한 데이터 보기가 만들어집니다. 그런 다음 이러한 두 데이터 보기가 결합되어 집계된 데이터에 대한 액세스를 제공합니다. 이 공통 속성을 사용하여 디렉토리 프록시 서버는 각 사용자에 대한 데이터를 집계할 수 있습니다.

단순하게 만들기 위해 이 절에 사용된 명령은 다음 정보를 가정합니다.

각 명령의 완전한 구문을 얻으려면 명령을 옵션 없이 실행합니다. 예를 들면 다음과 같습니다.

$ dpconf create-ldap-data-view
Operands are missing
Usage: dpconf create-ldap-data-view VIEW_NAME POOL_NAME SUFFIX_DN

Procedure급여 디렉토리에 대한 LDAP 데이터 보기 만들기 및 활성화

  1. 급여 디렉토리에 대한 LDAP 데이터 소스를 만듭니다.

    $ dpconf create-ldap-data-source payroll-directory payrollHost:2389
  2. 급여 디렉토리에 대한 LDAP 데이터 소스 풀을 만듭니다.

    $ dpconf create-ldap-data-source-pool payroll-pool
  3. 급여 데이터 소스를 데이터 소스 풀에 첨부합니다.

    $ dpconf attach-ldap-data-source payroll-pool payroll-directory
  4. 첨부된 데이터 소스의 가중치를 구성합니다.

    $ dpconf set-attached-ldap-data-source-prop -h payrollHost -p 2389 \
    payroll-pool payroll-directory add-weight:2 \
    bind-weight:2 compare-weight:2 delete-weight:2 \
    modify-dn-weight:2 modify-weight:2 search-weight:2
  5. 급여 디렉토리에 대한 LDAP 데이터 보기를 만듭니다.

    $ dpconf create-ldap-data-view payroll-view payroll-pool o=example.com
  6. 클라이언트 요청을 이 데이터 보기로 전달할 수 있도록 LDAP 데이터 보기를 활성화합니다.

    $ dpconf set-ldap-data-view-prop payroll-view is-enabled:true
  7. 디렉토리 프록시 서버를 다시 시작하여 변경 사항을 적용합니다.

    $ dpadm restart /local/myDPS

Procedure관리 데이터에 대한 LDIF 데이터 보기 만들기 및 활성화

  1. 관리 데이터에 대한 LDIF 데이터 보기를 만듭니다.

    $ dpconf create-ldif-data-view admin-view example.ldif dc=example,dc=com
  2. 관리 데이터에 대한 LDIF 데이터 보기를 활성화합니다.

    $ dpconf set-ldif-data-view-prop admin-view is-enabled:true
  3. 관리 보기가 급여 보기에서 둘 이상의 항목에 사용되는 항목을 포함하도록 지정합니다.

    $ dpconf set-ldif-data-view-prop admin-view contains-shared-entries:true

    이 등록 정보를 TRUE로 설정할 경우 급여 데이터 보기에서 항목을 삭제하면 관리 데이터 보기의 공유 항목이 삭제되지 않습니다. 급여 데이터 보기에 항목을 추가하면 항목이 보조 데이터 보기에만 추가됩니다(아직 없는 경우).

  4. 디렉토리 프록시 서버를 다시 시작하여 변경 사항을 적용합니다.

    $ dpadm restart /local/myDPS

Procedure급여 데이터 보기 및 관리 데이터 보기 결합

  1. 관리 데이터 보기에서 데이터가 집계되는 방법을 지정하는 필터 결합 규칙을 만듭니다.

    다음 결합 규칙은 사용자 항목의 employeeNumber 속성을 기준으로 데이터를 결합해야 함을 지정합니다.

    $ dpconf set-ldif-data-view-prop admin-view \
    filter-join-rule:employeeNumber=\${payroll-view.employeeNumber}
  2. 두 데이터 보기를 집계하는 결합 데이터 보기를 만듭니다.

    결합 데이터 보기의 경우 조직에서는 접미어 DN dc=example,dc=com을 사용합니다.

    $ dpconf create-join-data-view example-join-view payroll-view admin-view \
    dc=example,dc=com

DN의 이름을 바꾸어 Company 22의 데이터를 Example.Com의 DIT에 추가

Company 22의 사용자 데이터는 DN dc=company22,dc=com에 저장됩니다. Example.com에서는 대부분 이 사용자 데이터를 별도로 유지하려고 하지만 한 클라이언트 응용 프로그램은 나머지 Example.com 직원과 함께 Company 22 직원을 관리해야 합니다. 이 클라이언트 응용 프로그램의 경우 Company 22 사용자 데이터의 모양은 Example.com 데이터와 같아야 합니다.

다음 다이어그램은 클라이언트 응용 프로그램의 요구 사항을 보여줍니다.

그림 23–5 DN 이름 바꾸기

DN의 이름을 바꾸어 DIT에 데이터를 추가하는 그림

이 응용 프로그램의 요구 사항을 충족하기 위해 dc=example,dc=com의 가상 DN을 사용하여 데이터 보기가 Company 22의 디렉토리에 대해 만들어집니다.

단순하게 만들기 위해 이 절에 사용된 명령은 다음 정보를 가정합니다.

Procedure가상 DN을 사용하여 Company 22의 디렉토리에 대한 데이터 보기 만들기

  1. Company 22의 디렉토리에 대한 LDAP 데이터 소스를 만듭니다.

    $ dpconf create-ldap-data-source company22-directory company22Host:2389
  2. Company 22의 디렉토리에 대한 LDAP 데이터 소스 풀을 만듭니다.

    $ dpconf create-ldap-data-source-pool company22-pool
  3. Company 22의 데이터 소스를 데이터 소스 풀에 첨부합니다.

    $ dpconf attach-ldap-data-source company22-pool company22-directory
  4. 첨부된 데이터 소스의 가중치를 구성합니다.

    $ dpconf set-attached-ldap-data-source-prop -h company22Host -p 2389 \
    company22-pool company22-directory add-weight:2 \
    bind-weight:2 compare-weight:2 delete-weight:2 \
    modify-dn-weight:2 modify-weight:2 search-weight:2
  5. dc=example,dc=com의 가상 DN을 사용하여 Company 22의 디렉토리에 대한 LDAP 데이터 보기를 만듭니다.

    $ dpconf create-ldap-data-view company22-view company22-pool dc=example,dc=com
  6. 이 가상 DN을 Company 22의 디렉토리에 있는 실제 DN에 매핑하도록 디렉토리 프록시 서버에 지시합니다.

    $ dpconf set-ldap-data-view-prop company22-view \
    dn-mapping-source-base-dn:dc=company22,dc=com
  7. 클라이언트 요청을 이 데이터 보기에 전달할 수 있도록 Company 22의 디렉토리에 대한 LDAP 데이터 보기를 활성화합니다.

    $ dpconf set-ldap-data-view-prop company22-view is-enabled:true
  8. 디렉토리 프록시 서버를 다시 시작하여 변경 사항을 적용합니다.

    $ dpadm restart /local/myDPS

Company 22의 데이터를 HR 데이터에 추가

HR 부서에서는 Example.com과 새로 인수한 Company 22에 대한 HR 데이터의 집계된 보기가 필요합니다. 다음 다이어그램은 전역 HR 응용 프로그램의 요구 사항을 보여줍니다.

그림 23–6 결합 데이터 보기 및 LDAP 데이터 보기의 데이터 집계

LDAP 디렉토리 및 다른 결합 보기의 복잡한 결합 보기를 보여주는 그림

Procedure결합 데이터 보기 및 Company 22 데이터 보기 예 결합

  1. Company 22 데이터 보기에서 데이터가 집계되는 방법을 지정하는 필터 결합 규칙을 만듭니다.

    다음 결합 규칙은 사용자 항목의 employeeNumber 속성을 기준으로 데이터를 결합해야 함을 지정합니다.

    $ dpconf set-ldif-data-view-prop company22-view \
    filter-join-rule:employeeNumber=\${example-join-view.employeeNumber}
  2. Company 22의 데이터 보기와 Example.com의 결합 데이터 보기를 집계하는 결합 데이터 보기를 만듭니다.

    $ dpconf create-join-data-view global-join-view example-join-view \
    company22-view dc=example,dc=com

SQL 데이터베이스의 급여 데이터에 액세스할 수 있도록 LDAP 클라이언트 활성화

Example.com의 급여 부서는 급여 데이터를 SQL 데이터베이스에 저장합니다. 이 데이터베이스에는 두 개의 테이블(employeesalary)이 있습니다. Example.com에는 해당 데이터에 대한 액세스 권한을 필요로 하는 LDAP 클라이언트 응용 프로그램이 있습니다. 이 클라이언트 응용 프로그램의 경우 SQL 데이터의 모양이 LDAP 데이터와 같아야 합니다.

다음 다이어그램은 클라이언트 응용 프로그램의 요구 사항을 보여줍니다.

그림 23–7 SQL 데이터베이스에 대한 액세스를 제공하는 JDBC 데이터 보기

SQL 데이터베이스에 대한 액세스를 제공하는 JDBC 데이터 보기를 보여주는 그림

이 응용 프로그램의 요구 사항을 충족하기 위해 SQL 테이블의 열을 LDAP 속성에 매핑하는 JDBC 데이터 보기가 만들어집니다.

단순하게 만들기 위해 이 절에 사용된 명령은 다음 정보를 가정합니다.

ProcedureExample.com의 급여 데이터베이스에 대한 JDBC 데이터 보기 만들기

  1. 급여 데이터베이스에 대한 JDBC 데이터 소스를 만듭니다.

    $ dpconf create-jdbc-data-source -b payrollsqldb \
      -B jdbc:payrollsqldb:payrollsql://localhost/ \
      -J file://payrollsqldb.jar \
      -S org.payrollsqldb.jdbcDriver payroll-src 
  2. SQL 데이터베이스의 등록 정보를 사용하여 JDBC 데이터 소스를 구성합니다.

    $ dpconf set-jdbc-data-source-prop payroll-src \
      db-user:proxy db-pwd-file:password-file-location/myPasswordFile
  3. JDBC 데이터 소스를 활성화합니다.

    $ dpconf set-jdbc-data-source-prop payroll-src is-enabled:true
  4. 급여 데이터베이스에 대한 JDBC 데이터 소스 풀을 만듭니다.

    $ dpconf create-jdbc-data-source-pool payroll-pool
  5. 급여 데이터 소스를 데이터 소스 풀에 첨부합니다.

    $ dpconf attach-jdbc-data-source payroll-pool payroll-src
  6. o=payroll의 가상 DN을 사용하여 급여 데이터베이스에 대한 JDBC 데이터 보기를 만듭니다.

    $ dpconf create-jdbc-data-view payroll-view payroll-pool o=payroll
  7. SQL 데이터베이스의 각 테이블에 대한 JDBC 테이블을 만듭니다.

    $ dpconf create-jdbc-table jdbc-employee employee
    $ dpconf create-jdbc-table jdbc-salary salary
  8. SQL 테이블의 각 열에 대한 JDBC 속성을 추가합니다.

    $ dpconf add-jdbc-attr jdbc-employee eid employee_id
    $ dpconf add-jdbc-attr jdbc-employee first firstname
    $ dpconf add-jdbc-attr jdbc-employee last lastname
    $ dpconf add-jdbc-attr jdbc-employee description description
    $ dpconf add-jdbc-attr jdbc-employee spouse spousename
    $ dpconf add-jdbc-attr jdbc-salary salary salary
    $ dpconf add-jdbc-attr jdbc-salary social ssn
  9. JDBC 데이터 보기를 통해 보기 가능한 속성과 쓰기 가능한 속성을 지정합니다.

    $ dpconf set-jdbc-data-view-prop payroll-view \
     viewable-attr:eid \
     viewable-attr:first \
     viewable-attr:last \
     viewable-attr:desc \
     viewable-attr:spouse \
     viewable-attr:salary \
     viewable-attr:social 
     $ dpconf set-jdbc-data-view-prop payroll-view \
     writable-attr:eid \
     writable-attr:first \
     writable-attr:last \
     writable-attr:description \
     writable-attr:spouse \
     writable-attr:salary \
    writable-attr:social
  10. LDAP 객체 클래스에 매핑되는 JDBC 객체 클래스를 만듭니다.

    다음 명령은 LDAP person 객체 클래스에 매핑되는 객체 클래스를 만듭니다. 객체 클래스는 직원 테이블을 기본 테이블로 사용하고 급여 테이블을 보조 테이블로 사용해야 함을 지정합니다. eid 속성을 사용하여 DN을 구성해야 합니다.

    $ dpconf create-jdbc-object-class payroll-view \
     person jdbc-employee jdbc-salary eid
  11. 보조 테이블의 데이터가 기본 테이블의 데이터에 연결되는 방법을 지정하는 필터 결합 규칙을 보조 테이블에서 만듭니다.

    다음 결합 규칙은 employee_id 속성을 기준으로 데이터를 결합해야 함을 지정합니다.

    $ dpconf set-jdbc-table-prop jdbc-salary \
    filter-join-rule:employee_id=\${employee.employee_id}
  12. JDBC 객체 클래스에서 수퍼 클래스를 만듭니다.

    $ dpconf set-jdbc-object-class-prop payroll-view person super-class:extensibleObject

가상 액세스 제어 추가

LDAP 디렉토리에 대한 액세스 제어는 디렉토리 자체에 ACI를 정의하여 처리됩니다. 가상 데이터 보기를 통해 데이터 소스에 액세스할 경우 이러한 데이터 보기를 통해 표시되는 데이터에만 적용하도록 ACI를 정의해야 합니다.

디렉토리 프록시 서버를 통한 모든 액세스는 연결 처리기에서 제어됩니다. 연결 처리기에 대한 자세한 내용은 26 장, 클라이언트와 디렉토리 프록시 서버 간의 연결 을 참조하십시오.

Procedure익명 액세스를 허용하는 ACI 추가

  1. ACI를 추가합니다.

    $ ldapadd -v -D "cn=proxy manager" -w password -p 389
    dn: cn=ldifonly-acis,cn=virtual access controls
    objectclass: top
    objectclass: aciSource
    cn: ldifonly-acis
    dpsaci: (targetattr="*")(version 3.0; acl "anonymous_access"; allow(all) \
    (userdn="ldap:///anyone");)
  2. 연결 처리기에서 가상 ACI를 가리킵니다.

    $ dpconf set-connection-handler-prop anonymous aci-source:ldifonly-acis
  3. 연결 처리기를 활성화합니다.

    $ dpconf set-connection-handler-prop anonymous is-enabled:true

24장 가상 데이터 변환

가상 데이터 변환은 기존 데이터 보기에서 정의되고, 가상 데이터 보기를 사용하여 가상 데이터를 만들 수 있습니다. 작동하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceVirtual Data Transformations를 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

가상 데이터 변환 구성

모든 유형의 데이터 보기, 즉 LDAP 데이터 보기, LDIF 데이터 보기, 결합 데이터 보기 또는 JDBC 데이터 보기에 가상 데이터 변환을 추가할 수 있습니다.

Procedure가상 변환을 추가하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 데이터 보기에 변환을 추가합니다.


    $ dpconf add-virtual-transformation -h host -p port view-name \
     transformation-model transformation-action attribute-name [parameters...]

    transformation-model mapping, writeread 변환 중 한 가지입니다.

    transformation-action add-attr, remove-attr, add-attr-value, remove-attr-value, def-valueattr-value-mapping 작업 중 한 가지입니다.

    parameterstransformation-modeltransformation-action에 따라 필수인 경우도 있습니다.

    변환 모델, 변환 작업 및 변환 매개 변수에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceVirtual Data Transformations를 참조하십시오.

  2. (옵션) 데이터 보기에 정의된 가상 변환 목록을 봅니다.

    $ dpconf list-virtual-transformations -h host -p port view-name
    

Procedure가상 변환을 제거하는 방법

  1. 다음 명령을 사용하여 가상 변환을 제거합니다.


    dpconf remove-virtual-transformation view_name transformation_name
    

가상 변환의 예

다음 절에서는 가상 데이터 보기가 필요한 사용 사례와 그러한 사용 사례를 구현하는 데 필요한 변환 모델 및 작업의 조합을 제시합니다.

항목의 기존 속성에서 속성 파생

항목의 기존 속성에서 속성을 파생하려면 다음 변환 규칙을 사용합니다. 예를 들어 다음 변환 규칙을 적용하면 givenNamesn 속성에서 파생된 mail 속성이 표시됩니다.


$ dpconf add-virtual-transformation dataview1 read add-attr \
mail \${givenName}.\${sn}@example.com 

다음 다이어그램은 사용자 항목이 검색에서 반환될 때 해당 항목에 대해 발생하는 변환을 나타냅니다.

항목의 기존 속성에서 속성 파생

가상 속성을 실제 속성에 매핑

순수 가상 속성의 일부로 제공되는 속성을 추가하려면 다음 매핑 변환 규칙을 사용합니다. 예를 들어, 다음 변환 규칙을 적용하면 항목에서 지정하지 않아도 givenName이 서버에 저장됩니다. 이 값은 mail \${givenName}@example.com으로 정의된 순수 가상 속성에서 가져옵니다.


$ dpconf add-virtual-transformation dataview1 mapping add-attr \
mail \${givenName}@example.com 

먼저 가상 속성인 mail을 포함하지만 givenName 속성은 포함하지 않는 항목을 추가합니다. 가상 변환을 통해 givenName 속성의 값이 생성되고 항목이 mail 속성 없이 givenName과 함께 저장됩니다. 그런 다음 uid 속성을 사용하여 검색을 수행하면 givenName에 대한 값이 검색되고 동일한 가상 변환에서 가상 속성인 mail의 값이 생성됩니다.

다음 다이어그램은 사용자 항목에서 발생하는 변환을 나타냅니다.

항목에 가상 속성의 속성 추가

속성의 두 번째 가상 값 표시, 다른 실제 속성으로 지정됨

다른 속성으로 지정된 속성의 값을 표시하려면 다음 변환을 사용합니다. 예를 들어 uid를 항목에 이미 저장되어 있는 cn 값과 함께 cn으로 표시합니다. 다음은 cn에 대한 추가 값을 저장하지 않지만 결과가 클라이언트에 반환되기 전에 변환이 적용됩니다.


$ dpconf add-virtual-transformation dataview1 read add-attr-value cn \${uid}

다음 다이어그램은 사용자 항목이 검색에서 반환될 때 해당 항목에 대해 발생하는 변환을 나타냅니다.

다른 속성으로 지정된 속성 값 표시

다른 실제 속성으로 지정된 속성에 두 번째 값 저장

새 항목을 추가하는 과정에서 입력한 값과 함께 속성 값을 저장하려면 다음 변환 규칙을 사용합니다. 이 시나리오에서 항목을 추가하면 mail 속성에 대해 또 하나의 값이 저장됩니다. 이 변환은 새 항목을 만들 때만 적용됩니다.


$ dpconf add-virtual-transformation dataview1 write add-attr-value \
mail \${uid}@example.com

다음 다이어그램은 추가 요청에서 발생하는 변환을 나타냅니다.

속성에 다른 속성의 값 추가

출력에서 속성 제거

출력에 속성을 표시하지 않으려면 다음 변환 규칙을 사용합니다. 예를 들어 다음 변환 규칙을 적용하면 givenName이 출력에 반환되지 않습니다.


dpconf add-virtual-transformation dataview1 read remove-attr givenName

다음 다이어그램은 사용자 항목이 검색에서 반환될 때 해당 항목에 대해 발생하는 변환을 나타냅니다.

출력에서 속성 제거

항목을 저장하는 동안 속성 마스킹

특정 속성을 저장하지 않으려면 다음 변환 규칙을 사용합니다. 예를 들어 다음 변환 규칙을 적용하면 givenName 속성이 실제 데이터베이스에 저장되지 않습니다. 이 변환은 새 항목을 만들 때만 적용됩니다.


$ dpconf add-virtual-transformation dataview1 write remove-attr givenName

다음 다이어그램은 추가 요청에서 발생하는 변환을 나타냅니다.

항목을 저장하는 동안 속성 마스크

속성의 기본값 표시

속성에 할당된 기본값을 표시하려면 다음 변환을 사용합니다. 예를 들어 다음 변환을 적용하면 고유 전화 번호가 없는 항목의 기본 전화 번호가 표시됩니다.


$ dpconf add-virtual-transformation data-view read 11111 telephoneNumber default-number

다음 다이어그램은 사용자 항목이 검색에서 반환될 때 해당 항목에 대해 발생하는 변환을 나타냅니다.

속성의 기본값 표시

속성에 기본값 저장

기본값은 항목을 생성하는 과정에서 속성 값을 지정하지 않는 경우에만 저장됩니다. 속성을 기본값과 함께 저장하려면 다음 변환 규칙을 사용합니다. 예를 들어 다음 변환 규칙을 적용하면 생성하는 항목마다 기본 전화 번호가 추가됩니다. 이 변환은 항목을 추가할 때만 적용됩니다.


$ dpconf add-virtual-transformation dataview1 write 11111 \
telephoneNumber telephone-number

다음 다이어그램은 추가 요청에서 발생하는 변환을 나타냅니다.

속성에 기본값 추가

25장 디렉토리 프록시 서버와 백엔드 LDAP 서버 간의 연결

이 장에서는 디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 연결을 구성하는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

디렉토리 프록시 서버와 백엔드 LDAP 서버 간의 연결 구성

LDAP 데이터 소스를 만든 경우 LDAP 데이터 소스에 열린 기본 연결 수는 6개입니다(읽기, 바인드 및 쓰기 작업에 각각 2개씩). 기본 연결을 확인하려면 다음 명령을 입력합니다.


dpconf get-ldap-data-source-prop src-name num-read-init num-write-init num-bind-init
num-bind-init   :  2
num-read-init   :  2
num-write-init  :  2

연결 수는 트래픽이 증가하면 자동으로 늘어납니다.

디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 연결을 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 연결 수를 구성하는 방법


주 –

이 절차에서는 바인드 작업을 위한 연결 수를 구성합니다. 읽기 또는 쓰기 작업을 위한 연결 수를 구성하려면 동일한 절차를 수행하되, bindread 또는 write로 바꿉니다.


DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 바인드 작업을 위해 디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 초기 연결 수를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-init:new-value
    
  2. 바인드 작업을 위한 연결 증분을 구성합니다.

    증분은 현재 연결 수보다 많은 연결이 요청될 때마다 추가되는 연결 수입니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-incr:new-value
    
  3. 바인드 작업을 위한 최대 연결 수를 구성합니다.

    이 최대 연결 수에 도달하면 더 이상 연결이 추가되지 않습니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-limit:new-value
    

Procedure연결 시간 초과를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버에서 데이터 소스에 연결을 시도할 수 있는 최대 시간을 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     connect-timeout:new-value
    

    예를 들어 연결 시간 초과를 10밀리초로 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 data-source-name connect-timeout:10

Procedure연결 풀 대기 시간 초과를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 연결 풀에 설정된 연결을 사용할 수 있을 때까지 디렉토리 프록시 서버가 대기할 수 있는 최대 시간을 구성합니다.


    $ dpconf set-server-prop -h host -p port data-source-name \
     connection-pool-wait-timeout:value
    

    예를 들어 대기 시간 초과를 20초로 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 data-source-name \
     connection-pool-wait-timeout:20000

디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 SSL 구성

다음 절차에서는 디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 SSL을 구성하는 방법에 대해 설명합니다.

Procedure디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 SSL을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버와 백엔드 LDAP 서버 간에 보안 포트를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     ldaps-port:port-number
    
  2. SSL이 디렉토리 프록시 서버와 백엔드 LDAP 서버 간의 연결에 사용되는 시점을 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name ssl-policy:value
    
    • valuealways인 경우 SSL이 항상 연결에 사용됩니다.

    • valueclient인 경우 클라이언트가 SSL을 사용하는 중이면 SSL이 사용됩니다.

    연결에서 SSL을 사용하고 있지 않으면 startTLS 명령을 사용하여 연결 수준을 SSL로 올릴 수 있습니다.

    TLS(Transport Layer Security)는 표준 버전 SSL입니다. LDAP를 통한 TLS는 IETF 승인 표준 보안 LDAP 방식입니다. LDAPS가 사실상 표준이지만 서비스 포트가 한 개가 아니라 두 개가 되는 등 복잡성을 초래합니다.

  3. 디렉토리 프록시 서버에 대한 SSL 암호 및 SSL 프로토콜 선택 에 설명된 것처럼 SSL에 대한 프로토콜 및 암호를 선택합니다.

  4. 백엔드 LDAP 서버의 SSL 서버 인증서를 확인하도록 디렉토리 프록시 서버를 구성합니다.

    자세한 내용은 백엔드 디렉토리 서버의 인증서를 디렉토리 프록시 서버의 인증서 데이터베이스에 추가하는 방법을 참조하십시오.

  5. 백엔드 LDAP 서버가 디렉토리 프록시 서버에서 인증서를 요청할 경우 SSL 클라이언트 인증서를 보내도록 디렉토리 프록시 서버를 구성합니다.

    자세한 내용은 인증서를 백엔드 LDAP 서버로 내보내기를 참조하십시오.

  6. 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

디렉토리 프록시 서버에 대한 SSL 암호 및 SSL 프로토콜 선택

디렉토리 프록시 서버에 사용될 수 있는 암호 및 프로토콜은 사용 중인 JVMTM(JavaTM Virtual Machine)에 따라 다릅니다. 기본적으로 디렉토리 프록시 서버는 JVM 시스템에 대해 활성화되는 기본 암호 및 프로토콜을 사용합니다.

Procedure암호 및 프로토콜 목록을 선택하는 방법

이 절차를 사용하여 지원되는 암호 및 프로토콜과 활성화된 암호 및 프로토콜을 검색합니다. 암호 또는 프로토콜이 지원되는 경우 이를 활성화하거나 비활성화할 수 있습니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 지원되는 암호 및 프로토콜 목록을 봅니다.


    $ dpconf get-server-prop -h host -p port supported-ssl-cipher-suites \
     supported-ssl-protocols
  2. 활성화된 암호 및 프로토콜 목록을 봅니다.


    $ dpconf get-server-prop -h host -p port enabled-ssl-cipher-suites \
     enabled-ssl-protocols
  3. 지원되는 암호 또는 프로토콜을 하나 이상 활성화합니다.

    1. 지원되는 암호를 하나 이상 활성화합니다.


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-suites:supported-ssl-cipher-suite \
       [enabled-ssl-cipher-suites:supported-ssl-cipher-suite ...]

      지원되는 기존 암호 목록에 암호를 추가하려면 이 명령을 사용합니다.


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-suites+:supported-ssl-cipher-suite
      
    2. 지원되는 프로토콜을 하나 이상 활성화합니다.


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-protocols:supported-ssl-cipher-protocol \
       [enabled-ssl-cipher-protocols:supported-ssl-cipher-protocol ...]

      지원되는 기존 프로토콜 목록에 프로토콜을 추가하려면 이 명령을 사용합니다.


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-protocols+:supported-ssl-cipher-protocol
      
  4. (옵션) 지원되는 암호 또는 프로토콜을 비활성화합니다.


    $ dpconf set-server-prop -h host -p port \
     enabled-ssl-cipher-protocols-:supported-ssl-cipher-protocol
    

백엔드 LDAP 서버에 요청 전달

이 절에는 디렉토리 프록시 서버에서 백엔드 LDAP 서버에 요청을 전달하는 데 사용할 수 있는 다양한 방법에 대한 정보가 들어 있습니다.

바인드 재생을 사용하여 요청 전달

디렉토리 프록시 서버의 클라이언트 자격 증명을 위한 바인드 재생에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceDirectory Proxy Server Configured for BIND Replay를 참조하십시오. 다음 절차에서는 바인드 재생을 사용하여 디렉토리 프록시 서버에서 백엔드 LDAP 서버에 요청을 전달하는 방법에 대해 설명합니다.

Procedure바인드 재생을 사용하여 요청을 전달하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 클라이언트에서 제공된 자격 증명을 사용하여 백엔드 LDAP 서버에 대해 인증하도록 데이터 소스 클라이언트 자격 증명을 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-client-identity

프록시 인증을 사용하여 요청 전달

디렉토리 프록시 서버의 프록시 인증에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceDirectory Proxy Server Configured for Proxy Authorization을 참조하십시오.

이 절은 프록시 인증 및 프록시 인증 제어를 사용하여 요청을 전달하는 절차로 구성되어 있습니다.

Procedure프록시 인증을 사용하여 요청을 전달하는 방법

  1. 버전 1 또는 버전 2의 프록시 인증 제어가 필요하도록 데이터 소스를 구성합니다.

    예를 들어 버전 1의 프록시 인증 제어가 필요하도록 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-use-v1:true

    또는 버전 2의 프록시 인증 제어가 필요하도록 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-use-v1:false
  2. 프록시 인증을 사용하여 백엔드 LDAP 서버에 대해 인증하도록 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-proxy-auth

    쓰기 작업에만 프록시 인증을 사용하여 백엔드 LDAP 서버에 대해 인증하도록 데이터 소스를 구성하려면 다음 명령을 실행합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-proxy-auth-for-write

    쓰기 작업만 프록시 인증 제어를 사용하여 수행할 경우 읽기 요청에서는 클라이언트 아이디가 LDAP 서버에 전달되지 않습니다. 클라이언트 아이디 없이 요청을 전달하는 방법에 대한 자세한 내용은 클라이언트 아이디 없이 요청 전달을 참조하십시오.

  3. 디렉토리 프록시 서버의 바인드 자격 증명을 사용하여 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     bind-dn:DPS-bind-dn bind-pwd-file:filename
    
  4. 시간 초과를 사용하여 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-check-timeout:value
    

    디렉토리 프록시 서버는 getEffectiveRights 명령을 사용하여 프록시 인증에 대한 적절한 ACI가 클라이언트 DN에 있는지 확인합니다. 결과는 디렉토리 프록시 서버에 캐시되고 proxied-auth-check-timeout 만료 시에 갱신됩니다.

  5. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

Procedure요청에 프록시 인증 제어가 포함된 경우 프록시 인증을 사용하여 요청을 전달하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 버전 1이나 2 또는 두 버전 모두 프록시 인증 제어를 허용하도록 디렉토리 프록시 서버를 구성합니다.


    $ dpconf set-server-prop -h host -p port allowed-ldap-controls:proxy-auth-v1 \
     allowed-ldap-controls:proxy-auth-v2

클라이언트 아이디 없이 요청 전달

다음 절차에서는 클라이언트 아이디를 전달하지 않고 디렉토리 프록시 서버에서 백엔드 LDAP 서버에 요청을 전달하는 방법에 대해 설명합니다.

Procedure클라이언트 아이디 없이 요청을 전달하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 디렉토리 프록시 서버의 자격 증명을 사용하여 백엔드 LDAP 서버에 대해 인증하도록 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-specific-identity
  2. 디렉토리 프록시 서버의 바인드 자격 증명을 사용하여 데이터 소스를 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     bind-dn:bind-dn-of-DPS bind-pwd-file:filename
    
  3. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

대체 사용자로 요청 전달

이 절은 요청을 대체 사용자로 전달하는 방법에 대한 정보로 구성되어 있습니다.

Procedure원격 사용자 매핑을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 대체 사용자로 전달할 작업을 활성화합니다.


    $ dpconf set-server-prop -h host -p port enable-user-mapping:true
  2. 원격 매핑을 위한 아이디를 포함하는 속성의 이름을 지정합니다.


    $ dpconf set-server-prop -h host -p port \
     remote-user-mapping-bind-dn-attr:attribute-name
    
  3. 클라이언트 아이디를 원격으로 매핑하도록 디렉토리 프록시 서버를 활성화합니다.


    $ dpconf set-server-prop -h host -p port enable-remote-user-mapping:true
  4. 기본 매핑을 구성합니다.


    $ dpconf set-server-prop -h host -p port \
     user-mapping-default-bind-dn:default-mapping-bind-dn \
     user-mapping-default-bind-pwd-file:filename
    

    매핑된 아이디를 원격 LDAP 서버에서 찾을 수 없는 경우 클라이언트 아이디는 기본 아이디에 매핑됩니다.

  5. 원격 LDAP 서버의 클라이언트에 대한 항목에서 사용자 매핑을 구성합니다.

    디렉토리 서버에서 사용자 매핑을 구성하는 방법에 대한 자세한 내용은 프록시 인증을 참조하십시오.

Procedure로컬 사용자 매핑을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 대체 사용자로 전달할 작업을 활성화합니다.


    $ dpconf set-server-prop -h host -p port enable-user-mapping:true
  2. 디렉토리 프록시 서버가 클라이언트 아이디를 원격으로 매핑하도록 구성되지 않았는지 확인합니다.


    $ dpconf set-server-prop -h host -p port enable-remote-user-mapping:false
  3. 기본 매핑을 구성합니다.


    $ dpconf set-server-prop -h host -p port \
     user-mapping-default-bind-dn:default-mapping-bind-dn \
     user-mapping-default-bind-pwd-file:filename
    

    원격 LDAP 서버의 매핑이 실패할 경우 클라이언트 아이디는 이 DN에 매핑됩니다.

  4. 인증되지 않은 사용자가 작업을 수행하도록 허용할 경우 인증되지 않은 클라이언트에 대한 매핑을 구성합니다.


    $ dpconf set-server-prop -h host -p port \
     user-mapping-anonymous-bind-dn:anonymous-mapping-bind-dn \
     user-mapping-anonymous-bind-pwd-file:filename
    

    인증되지 않은 사용자가 작업을 수행하도록 허용하는 방법에 대한 자세한 내용은 익명 액세스를 구성하는 방법을 참조하십시오.

  5. 클라이언트의 아이디를 구성합니다.


    $ dpconf set-user-mapping-prop -h host -p port \
     user-bind-dn:client-bind-dn user-bind-pwd-file:filename
    
  6. 대체 사용자의 아이디를 구성합니다.


    $ dpconf set-user-mapping-prop -h host -p port \
     mapped-bind-dn:alt-user-bind-dn mapped-bind-pwd-file:filename
    

Procedure익명 클라이언트에 대한 사용자 매핑을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 인증되지 않은 클라이언트에 대한 매핑을 구성합니다.


    $ dpconf set-server-prop -h host -p port \
     user-mapping-anonymous-bind-dn:anonymous-mapping-bind-dn \
     user-mapping-anonymous-bind-pwd-file:filename
    

    익명 클라이언트에 대한 항목이 원격 LDAP 서버에 포함되어 있지 않으므로 익명 클라이언트에 대한 매핑이 디렉토리 프록시 서버에서 구성됩니다.

    인증되지 않은 사용자가 작업을 수행하도록 허용하는 방법에 대한 자세한 내용은 익명 액세스를 구성하는 방법을 참조하십시오.

26장 클라이언트와 디렉토리 프록시 서버 간의 연결

클라이언트와 디렉토리 프록시 서버 간의 연결, 연결 처리기의 개요와 연결 처리기에 사용되는 기준 및 정책에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 20 장, Connections Between Clients and Directory Proxy Server를 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

연결 처리기 만들기, 구성 및 삭제

연결 처리기 만들기, 구성 및 삭제 방법과 데이터 보기에 대한 선호도 구성 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure연결 처리기를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 연결 처리기를 만듭니다.


    $ dpconf create-connection-handler -h host -p port connection-handler-name
    
  2. (옵션) 연결 처리기 목록을 봅니다.


    $ dpconf list-connection-handlers -h host -p port
    

Procedure연결 처리기를 구성하는 방법

시작하기 전에

연결 처리기의 등록 정보는 디렉토리 프록시 서버 인스턴스에 정의된 다른 연결 처리기의 등록 정보와 관련하여 정의해야 합니다. 모든 연결 처리기의 등록 정보를 고려하여 서로 다른 기준 집합을 지정함으로써 우선 순위가 올바르게 지정되도록 합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 연결 처리기의 키 등록 정보와 상대적 우선 순위를 확인하려면 세부 정보 표시 목록을 봅니다.


    $ dpconf list-connection-handlers -h host -p port -v
    Name                        is-enabled  priority  description
    --------------------------  ----------  --------  ---------------------------
    anonymous                   false       99        unauthenticated connections
    default connection handler  true        100       default connection handler

    연결 처리기 anonymousdefault connection handler는 디렉토리 프록시 서버 인스턴스를 만들 때 함께 만들어집니다.

  2. 연결 처리기의 모든 등록 정보를 봅니다.


    $ dpconf get-connection-handler-prop -h host -p port connection-handler-name
    

    새 연결 처리기의 기본 등록 정보는 다음과 같습니다.


    aci-source                     :  -
    allowed-auth-methods           :  anonymous
    allowed-auth-methods           :  sasl
    allowed-auth-methods           :  simple
    allowed-ldap-ports             :  ldap
    allowed-ldap-ports             :  ldaps
    bind-dn-filters                :  any
    data-view-routing-custom-list  :  -
    data-view-routing-policy       :  all-routable
    description                    :  -
    domain-name-filters            :  any
    enable-data-view-affinity      :  false
    ip-address-filters             :  any
    is-enabled                     :  false
    is-ssl-mandatory               :  false
    priority                       :  99
    request-filtering-policy       :  no-filtering
    resource-limits-policy         :  no-limits
    schema-check-enabled           :  false
    user-filter                    :  any
  3. 연결 처리기의 우선 순위를 구성합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name priority:value
    

    우선 순위는 1에서 100까지의 번호 중 하나일 수 있으며, 여기서 1이 우선 순위가 가장 높습니다. 디렉토리 프록시 서버 인스턴스에 대해 연결 처리기가 우선 순위대로 평가됩니다.

  4. (옵션) 연결 처리기의 DN 필터링 등록 정보를 지정합니다.

    이 등록 정보를 사용하면 바인드 DN의 일부 또는 전체를 기준으로 액세스를 제어할 수 있습니다. 등록 정보 값은 정규 표현식입니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     bind-dn-filters:regular-expression
    

    바인드 DN 필터는 JavaTM 정규 표현식의 형식을 사용합니다. Java 정규 표현식 만들기에 대한 자세한 내용은 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html을 참조하십시오.

    예를 들어 ou=people,dc=example,dc=com의 사용자의 모든 바인드를 이름이 secure-handler인 연결 처리기에 보내려면 다음과 같이 bind-dn-filters 등록 정보를 설정합니다.


    $ dpconf set-connection-handler-prop -h host1 -p 1389 secure-handler \
     bind-dn-filters:"uid=.*,ou=people,dc=example,dc=com"
  5. (옵션) 이 연결 처리기에 사용하는 요청 필터링 정책의 이름을 지정합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     request-filtering-policy:policy-name
    

    여기서 policy-name은 기존 요청 필터링 정책의 이름입니다. 요청 필터링 정책을 만들고 구성하는 방법에 대한 자세한 내용은 요청 필터링 정책 및 검색 데이터 숨기기 규칙 만들기 및 구성을 참조하십시오.

  6. (옵션) 이 연결 처리기에 사용하는 자원 제한 정책의 이름을 지정합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     resource-limits-policy:policy-name
    

    여기서 policy-name은 기존 자원 제한 정책의 이름입니다. 자원 제한 정책을 만들고 구성하는 방법에 대한 자세한 내용은 자원 제한 정책 만들기 및 구성을 참조하십시오.

  7. 단계 2에 나열된 다른 등록 정보를 구성합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     property:value [property:value ...]

    예를 들어 연결 처리기가 SSL 연결만을 허용하도록 구성합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     is-ssl-mandatory:true

    등록 정보에 대한 설명과 유효한 값 목록을 보려면 다음 명령을 실행합니다.


    $ dpconf help-properties connection-handler
  8. 연결 처리기를 활성화합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name is-enabled:true
  9. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

Procedure연결 처리기를 삭제하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. (옵션) 연결 처리기 목록을 봅니다.


    $ dpconf list-connection-handlers -h host -p port
    
  2. 연결 처리기를 한 개 이상 삭제합니다.


    $ dpconf delete-connection-handler -h host -p port connection-handler-name [connection-handler-name ... ]

Procedure데이터 보기에 대한 선호도를 구성하는 방법

연결이 연결 처리기에 할당될 때 해당 연결의 요청이 해당 연결 처리기에 구성된 데이터 보기 목록 또는 구성된 모든 데이터 보기에 표시됩니다. 해당 연결의 연속적인 요청은 첫 번째 요청에 사용된 데이터 보기에만 표시됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 보기에 대한 선호도를 활성화합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     enable-data-view-affinity:true
  2. (옵션) 연결 처리기가 요청을 데이터 보기의 사용자 정의 목록에 전달하도록 구성합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name data-view-routing-policy:custom
  3. (옵션) 데이터 보기 목록을 구성합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list:view-name [data-view-routing-custom-list:view-name ...]

    데이터 보기의 기존 목록에 데이터 보기를 추가하려면 이 명령을 사용합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list+:view-name
    

    데이터 보기의 기존 목록에서 데이터 보기를 제거하려면 이 명령을 사용합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list-:view-name
    

요청 필터링 정책 및 검색 데이터 숨기기 규칙 만들기 및 구성

요청 필터링 정책에 대한 개요는 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceRequest Filtering Policies for Connection Handlers를 참조하십시오. 검색 데이터 숨기기 규칙에 대한 개요는 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceSearch Data Hiding Rules in the Request Filtering Policy를 참조하십시오.

요청 필터링 정책 및 검색 데이터 숨기기 규칙을 만들고 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure요청 필터링 정책을 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 요청 필터링 정책을 만듭니다.


    $ dpconf create-request-filtering-policy policy-name
    
  2. 요청 필터링 정책을 연결 처리기에 연결합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     request-filtering-policy:policy-name
    

Procedure요청 필터링 정책을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 요청 필터링 정책의 등록 정보를 봅니다.


    $ dpconf get-request-filtering-policy-prop -h host -p port policy-name
    

    요청 필터링 정책의 기본 등록 정보는 다음과 같습니다.


    allow-add-operations                :  true
    allow-bind-operations               :  true
    allow-compare-operations            :  true
    allow-delete-operations             :  true
    allow-extended-operations           :  true
    allow-inequality-search-operations  :  true
    allow-modify-operations             :  true
    allow-rename-operations             :  true
    allow-search-operations             :  true
    allowed-comparable-attrs            :  all
    allowed-search-scopes               :  base
    allowed-search-scopes               :  one-level
    allowed-search-scopes               :  subtree
    allowed-subtrees                    :  ""
    description                         :  -
    prohibited-comparable-attrs         :  none
    prohibited-subtrees                 :  none
  2. 단계 1에 나열된 등록 정보를 하나 이상 설정하여 요청 필터링 정책을 구성합니다.


    $ dpconf set-request-filtering-policy-prop -h host -p port policy-name \
      property:value [property:value ...]

    단계 1에 나열된 등록 정보를 설정하여 다음과 같은 요청 필터링 정책의 기능을 구성합니다.

    • 클라이언트가 수행할 수 있는 작업 유형

    • 클라이언트에게 표시되거나 표시되지 않는 하위 트리

    • 검색 작업 범위

    • 검색 필터 유형

    • 검색 및 비교 작업에서 비교하거나 비교할 수 없는 속성 유형

Procedure검색 데이터 숨기기 규칙을 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 요청 필터링 정책에 대한 검색 데이터 숨기기 규칙을 하나 이상 만듭니다.


    $ dpconf create-search-data-hiding-rule -h host -p port policy-name rule-name \
     [rule-name ...]
  2. 검색 데이터 숨기기 규칙의 등록 정보를 봅니다.


    $ dpconf get-search-data-hiding-rule-prop policy-name rule-name
    

    검색 데이터 숨기기 규칙의 기본 등록 정보는 다음과 같습니다.


    attrs                              :  -
    rule-action                        :  hide-entry
    target-attr-value-assertions       :  -
    target-dn-regular-expressions      :  -
    target-dns                         :  -
  3. 단계 2에 나열된 등록 정보를 하나 이상 설정하여 검색 데이터 숨기기 규칙을 구성합니다.


    $ dpconf set-search-data-hiding-rule-prop -h host -p port policy-name rule-name \
      property:value [property:value ...]

    다음 규칙 작업 중 하나를 사용할 수 있습니다.

    hide-entry

    대상 항목이 반환되지 않습니다.

    hide-attributes

    대상 항목이 반환되지만 지정된 속성은 필터링됩니다.

    show-attributes

    대상 항목이 반환되지만 지정되지 않은 속성은 필터링됩니다.

    이 규칙은 다음 항목에 적용할 수 있습니다.

    target-dns

    지정된 DN이 있는 항목

    target-dn-regular-expressions

    지정된 DN 패턴이 있는 항목

    target-attr-value-assertions

    지정된 속성 이름 및 속성 값 쌍이 있는 항목(attrName#attrValue)

    다음 구성은 inetorgperson 유형의 항목을 숨기는 검색 데이터 숨기기 규칙을 정의합니다.


    $ dpconf set-search-data-hiding-rule-prop -h host1 -p port my-policy my-rule \
      target-attr-value-assertions:objectclass#inetorgperson

요청 필터링 정책 및 검색 데이터 숨기기 규칙의 예

다음 예에는 요청 필터링 정책 및 검색 데이터 숨기기 규칙이 포함되어 있습니다. 요청 필터링 정책이 검색 데이터 숨기기 규칙과 결합되면 데이터에 대한 액세스가 다음과 같이 제한됩니다.


예 26–1 요청 필터링 정책 예


allow-add-operations                :  false
allow-bind-operations               :  true
allow-compare-operations            :  true
allow-delete-operations             :  false
allow-extended-operations           :  false
allow-inequality-search-operations  :  true
allow-modify-operations             :  false
allow-rename-operations             :  false
allow-search-operations             :  true
allowed-comparable-attrs            :  all
allowed-search-scopes               :  base
allowed-search-scopes               :  one-level
allowed-search-scopes               :  subtree
allowed-subtrees                    :  ou=people,dc=sun,dc=com
description                         :  myRequestFilteringPolicy
prohibited-comparable-attrs         :  none
prohibited-subtrees                 :  none


예 26–2 검색 데이터 숨기기 규칙 예


attrs                              :  -
rule-action                        :  hide-entry
target-attr-value-assertions       :  objectclass:inetorgperson
target-dn-regular-expressions      :  -
target-dns                         :  -

자원 제한 정책 만들기 및 구성

자원 제한 정책에 대한 개요는 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceResource Limits Policies for Connection Handlers를 참조하십시오. 자원 제한 정책을 만들고 구성하는 방법과 검색 제한을 사용자 정의하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure자원 제한 정책을 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 자원 제한 정책을 만듭니다.


    $ dpconf create-resource-limits-policy -h host -p port policy-name
    

    자원 제한 정책의 등록 정보를 수정하는 방법에 대한 자세한 내용은 자원 제한 정책을 구성하는 방법을 참조하십시오.

  2. 자원 제한 정책을 연결 처리기에 연결합니다.


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     resource-limits-policy:policy-name
    

Procedure자원 제한 정책을 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 자원 제한 정책의 등록 정보를 봅니다.


    $ dpconf get-resource-limits-policy-prop -h host -p port policy-name
    

    자원 제한 정책의 기본 등록 정보는 다음과 같습니다.


    description                                 :  -
    max-client-connections                      :  unlimited
    max-connections                             :  unlimited
    max-simultaneous-operations-per-connection  :  unlimited
    max-total-operations-per-connection         :  unlimited
    minimum-search-filter-substring-length      :  unlimited
    referral-bind-policy                        :  default
    referral-hop-limit                          :  default
    referral-policy                             :  default
    search-size-limit                           :  unlimited
    search-time-limit                           :  unlimited
  2. 단계 1에 나열된 등록 정보를 하나 이상 설정하여 자원 제한 정책을 구성합니다.


    $ dpconf set-resource-limits-policy-prop -h host -p port policy-name \
      property:value [property:value ...]

Procedure검색 제한을 사용자 정의하는 방법

검색 기준 및 검색 범위에 따라 사용자 정의된 제한을 검색 작업에 정의할 수 있습니다. 검색 작업의 대상 DN 및 범위가 지정된 기준과 일치하면 최대 검색 결과 크기가 제한됩니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 사용자 정의 검색 제한을 하나 이상 만듭니다.


    $ dpconf create-custom-search-size-limit -h host -p port policy-name \
      custom-search-limit-name [custom-search-limit-name ...]
  2. 사용자 정의 검색 제한의 기준을 설정합니다.


    $ dpconf set-custom-search-size-limit-prop -h host -p port policy-name \
      custom-search-limit-name one-level-search-base-dn:value subtree-search-base-dn:value
    
  3. 검색이 단계 2의 기준 중 하나를 충족하면 반환되는 결과 수에 대한 제한을 설정합니다.


    $ dpconf set-custom-search-size-limit-prop -h host -p port policy-name \
     custom-search-limit-name search-size-limit:value
    
  4. 사용자 정의 검색 제한의 등록 정보를 봅니다.


    $ dpconf get-custom-search-size-limit-prop -h host -p port policy-name \
      custom-search-limit-name
    

    사용자 정의 검색 제한의 기본 등록 정보는 다음과 같습니다.


    one-level-search-base-dn  :  -
    search-size-limit         :  unlimited
    subtree-search-base-dn    :  -

디렉토리 프록시 서버를 연결 기반 라우터로 구성

Directory Proxy Server 5.2는 연결 기반 라우터입니다. Directory Proxy Server 5.2에서 클라이언트 연결이 특정 디렉토리 서버로 전달됩니다. 이 클라이언트 연결의 모든 요청은 연결이 끊어지거나 클라이언트가 바인딩 해제되기 전까지 동일한 디렉토리 서버로 전송됩니다.

Directory Proxy Server 6.3는 작업 기반 라우터입니다. 그러나, 호환을 위해 이 버전의 디렉토리 프록시 서버를 다음 절차에 설명된 것처럼 연결 기반 라우터로 구성할 수 있습니다.

Procedure디렉토리 프록시 서버를 연결 기반 라우터로 구성하는 방법

  1. 연결 처리기 만들기, 구성 및 삭제에 설명된 것처럼 연결 처리기를 하나 이상 만들고 구성합니다.

    기본 연결 처리기를 사용할 수도 있습니다.

  2. 모든 연결 처리기가 요청을 root data view에만 전달하도록 구성합니다.

    예를 들면 다음과 같습니다.


    $ dpconf set-connection-handler-prop -h host1 -p 1389 myConnectionHandler \
     data-view-routing-policy:custom data-view-routing-custom-list:"root data view"
  3. LDAP 데이터 소스 만들기 및 구성에 설명된 것처럼 각 백엔드 LDAP 서버에 데이터 소스를 만들고 구성합니다.

    예를 들면 다음과 같습니다.


    $ dpconf create-ldap-data-source -h host1 -p 1389 myDataSource host2:2389
  4. LDAP 데이터 소스 풀 만들기 및 구성에 설명된 것처럼 데이터 소스 풀을 만들고 구성합니다.

    예를 들면 다음과 같습니다.


    $ dpconf create-ldap-data-source-pool -h host1 -p 1389 myDataSourcePool
  5. 데이터 소스 풀에 LDAP 데이터 소스 첨부에 설명된 것처럼 모든 데이터 소스를 데이터 소스 풀에 연결합니다.

    예를 들면 다음과 같습니다.


    $ dpconf attach-ldap-data-source -h host1 -p 1389 myDataSourcePool myDataSource
  6. 바인드 재생을 사용하여 요청 전달에 설명된 것처럼 각 데이터 소스가 BIND 재생을 사용하여 클라이언트를 인증하도록 구성합니다.

    예를 들면 다음과 같습니다.


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 myDataSource \
     client-cred-mode:use-client-identity
  7. 클라이언트 선호도 구성에 설명된 것처럼 클라이언트 연결과 데이터 소스 풀 간에 선호도를 구성합니다.

    예를 들면 다음과 같습니다.


    $ dpconf set-ldap-data-source-pool-prop -h host1 -p 1389 myDataSourcePool \
     enable-client-affinity:true client-affinity-policy:read-write-affinity-after-write

27장 디렉토리 프록시 서버 클라이언트 인증

디렉토리 프록시 서버에서 클라이언트 인증에 대한 개요는 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 21 장, Directory Proxy Server Client Authentication을 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

클라이언트와 디렉토리 프록시 서버 간의 수신기 구성

디렉토리 프록시 서버에서는 클라이언트와의 통신을 위해 보안 수신기와 비보안 수신기가 제공됩니다. 디렉토리 프록시 서버의 수신기에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceDirectory Proxy Server Client Listeners를 참조하십시오. 이 절에서는 수신기를 구성하는 방법에 대해 설명합니다.

Procedure클라이언트와 디렉토리 프록시 서버 간에 수신기를 구성하는 방법


주 –

이 절차에서는 클라이언트와 디렉토리 프록시 서버 간에 비보안 수신기를 구성합니다. 보안 수신기를 구성하려면 동일한 절차를 수행하되 ldapldaps로 바꿉니다.


DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오. DSCC에서는 성능 탭에서 이 등록 정보를 구성할 수 있습니다.

  1. 비보안 수신기의 등록 정보를 봅니다.


    $ dpconf get-ldap-listener-prop -h host -p port
    

    비보안 수신기의 기본 등록 정보는 다음과 같습니다.


    connection-idle-timeout          :  1h
    connection-read-data-timeout     :  2s
    connection-write-data-timeout    :  1h
    is-enabled                       :  true
    listen-address                   :  0.0.0.0
    listen-port                      :  port-number
    max-connection-queue-size        :  128
    max-ldap-message-size            :  unlimited
    number-of-threads                :  2
    use-tcp-no-delay                 :  true
  2. 요구 사항에 따라 단계 1에 나열된 등록 정보 중 하나 이상을 변경합니다.


    $ dpconf set-ldap-listener-prop -h host -p port property:new-value
    

    예를 들어 host1에서 실행 중인 디렉토리 프록시 서버 인스턴스의 비보안 포트를 비활성화하려면 다음 명령을 실행합니다.


    $ dpconf set-ldap-listener-prop -h host1 -p 1389 is-enabled:false

    주의 – 주의 –

    권한이 없는 포트 번호를 사용하려면 디렉토리 프록시 서버를 루트로 실행해야 합니다.


    비보안 포트 번호를 변경하려면 다음 명령을 실행합니다.


    $ dpconf set-ldap-listener-prop -h host -p port listen-port:new-port-number
    
  3. 필요한 경우 디렉토리 프록시 서버 인스턴스를 다시 시작하여 변경 사항을 적용합니다.

    특정 수신기 등록 정보를 변경한 후에는 서버를 다시 시작해야 합니다. 서버를 다시 시작해야 하는 경우 dpconf는 경고를 표시합니다. 디렉토리 프록시 서버를 다시 시작하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버를 다시 시작하는 방법을 참조하십시오.

디렉토리 프록시 서버에 대해 클라이언트 인증

기본적으로 디렉토리 프록시 서버는 단순 바인드 인증에 맞게 구성됩니다. 단순한 바인드 인증은 추가로 구성할 필요가 없습니다.

클라이언트와 디렉토리 프록시 서버 간 인증에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceClient Authentication Overview를 참조하십시오. 인증을 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure인증서 기반 인증을 구성하는 방법

클라이언트의 인증서 기반 인증에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceConfiguring Certificates in Directory Proxy Server를 참조하십시오. 이 절에서는 인증서 기반 인증을 구성하는 방법에 대해 설명합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.


주 –

인증서 기반 인증은 SSL 연결을 통해서만 수행할 수 있습니다.


  1. 클라이언트가 SSL 연결을 설정할 때 클라이언트가 인증서를 제공하도록 디렉토리 프록시 서버를 구성합니다.


    $ dpconf set-server-prop -h host -p port allow-cert-based-auth:require

Procedure익명 액세스를 구성하는 방법

익명 액세스에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceAnonymous Access를 참조하십시오. 익명 클라이언트의 아이디를 다른 아이디에 매핑하는 방법에 대한 자세한 내용은 대체 사용자로 요청 전달을 참조하십시오.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 인증되지 않은 사용자가 작업을 수행하도록 허용합니다.


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:true

ProcedureSASL 외부 바인드에 대해 디렉토리 프록시 서버를 구성하는 방법

SASL 외부 바인드에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceUsing SASL External Bind를 참조하십시오.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 인증되지 않은 작업을 허용하지 않습니다.


    $ dpconf set-server-prop -h host -p port allow-unauthenticated-operations:false
  2. 연결을 설정할 때 클라이언트가 인증서를 제공하도록 요구합니다.


    $ dpconf set-server-prop -h host -p port allow-cert-based-auth:require

    클라이언트는 DN을 포함하는 인증서를 제공합니다.

  3. SASL 외부 바인드로 클라이언트 인증을 활성화합니다.


    $ dpconf set-server-prop -h host -p port allow-sasl-external-authentication:true
  4. 백엔드 LDAP 서버에서 클라이언트 인증서를 매핑하려면 디렉토리 프록시 서버에 사용되는 아이디를 구성합니다.


    $ dpconf set-server-prop -h host -p port cert-search-bind-dn:bind-DN \
     cert-search-bind-pwd-file:filename
    
  5. 디렉토리 프록시 서버가 검색하는 하위 트리의 기본 DN을 구성합니다.

    디렉토리 프록시 서버는 하위 트리를 검색하여 클라이언트 인증서에 매핑되는 사용자 항목을 찾습니다.


    $ dpconf set-server-prop -h host -p port cert-search-base-dn:base-DN
    
  6. 클라이언트 인증서의 정보를 LDAP 서버의 인증서에 매핑합니다.

    1. 인증서를 포함하는 LDAP 서버의 속성에 이름을 지정합니다.


      $ dpconf set-server-prop cert-search-user-attribute:attribute
      
    2. 클라이언트 인증서의 속성을 인증서가 포함된 LDAP 서버 항목의 DN에 매핑합니다.


      $ dpconf set-server-prop -h host -p port \
       cert-search-attr-mappings:client-side-attribute-name:server-side-attribute-name
      

      예를 들어 DN cn=user1,o=sun,c=us가 있는 클라이언트 인증서를 DN uid=user1,o=sun이 있는 LDAP 항목에 매핑하려면 다음 명령을 실행합니다.


      $ dpconf set-server-prop -h host1 -p 1389 cert-search-attr-mappings:cn:uid \
       cert-search-attr-mappings:o:o
      
  7. (옵션) SASL 외부 바인드 작업에 대한 요청을 모든 데이터 보기 또는 데이터 보기의 사용자 정의 목록에 전달합니다.

    • 모든 데이터 보기에 요청을 전달하려면 다음 명령을 실행합니다.


      $ dpconf set-server-prop -h host -p port cert-data-view-routing-policy:all-routable
    • 데이터 보기 목록에 요청을 전달하려면 다음 명령을 실행합니다.


    $ dpconf set-server-prop -h host -p port cert-data-view-routing-policy:custom \
     cert-data-view-routing-custom-list:view-name [view-name...]
       

28장 디렉토리 프록시 서버 로깅

디렉토리 프록시 서버는 정보를 액세스 로그 및 오류 로그에 기록합니다. 디렉토리 서버와는 달리 디렉토리 프록시 서버에는 감사 로그가 없습니다. 디렉토리 프록시 서버 로그에 대한 설명은 Sun Java System Directory Server Enterprise Edition 6.3 Reference의 23 장, Directory Proxy Server Logging을 참조하십시오.

이 장은 다음 내용으로 구성되어 있습니다.

디렉토리 프록시 서버 로그 보기

디렉토리 프록시 서버 로그는 로그 파일을 직접 열거나 디렉토리 서비스 제어 센터(Directory Service Control Center, DSCC)를 사용하여 볼 수 있습니다.

기본적으로 로그는 다음 디렉토리에 저장됩니다.


instance-path/logs

다음 그림은 DSCC에서 캡처한 디렉토리 프록시 서버 오류 로그 화면을 보여줍니다.

그림 28–1 디렉토리 프록시 서버의 오류 로그 창

화면 캡처는 디렉토리 프록시 서버의 오류 로그를 보여줍니다. 오류 로그 항목은 표로 나열됩니다.

디렉토리 프록시 서버 로그 구성

디렉토리 프록시 서버 오류 로그 및 액세스 로그는 dpconf 명령 또는 DSCC를 사용하여 구성할 수 있습니다. DSCC를 사용하여 로그를 구성하는 방법에 대한 자세한 내용은 디렉토리 프록시 서버 온라인 도움말을 참조하십시오. 이 절에서는 dpconf 명령을 사용하여 디렉토리 프록시 서버 로그를 구성하는 방법에 대해 설명합니다.

다음 명령을 실행하여 허용되는 값 및 기본값과 함께 구성 옵션의 전체 목록을 검색할 수 있습니다.

$ dpconf help-properties error-log
$ dpconf help-properties access-log

Procedure디렉토리 프록시 서버 액세스 로그 및 오류 로그를 구성하는 방법

이 절차를 수행하면 디렉토리 프록시 서버 액세스 로그가 구성됩니다. 디렉토리 프록시 서버 오류 로그를 구성하려면 동일한 절차를 수행하되 accesserror로 바꿉니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 액세스 로그의 등록 정보를 봅니다.


    $ dpconf get-access-log-prop -h host -p port
    

    액세스 로그의 기본 등록 정보는 다음과 같습니다.


    default-log-level                :  info
    enable-log-rotation				  :  true
    log-buffer-size                  :  9.8k
    log-file-name                    :  logs/access
    log-file-perm                    :  600
    log-level-client-connections     :  -
    log-level-client-disconnections  :  -
    log-level-client-operations      :  -
    log-level-connection-handlers    :  -
    log-level-data-sources           :  -
    log-level-data-sources-detailed  :  -
    log-min-size						  :  100M
    log-rotation-frequency           :  1h
    log-rotation-policy              :  size
    log-rotation-size                :  100M
    log-rotation-start-day           :  1
    log-rotation-start-time          :  0000
    log-search-filters               :  false
    max-age                          :  unlimited
    max-log-files                    :  10
    max-size                         :  unlimited
    min-free-disk-space-size         :  1M
  2. 단계 1에 나열된 하나 이상의 등록 정보를 변경합니다.


    $ dpconf set-access-log-prop -h host -p port property:value \
     [property:value ...]

    예를 들어 모든 메시지 범주의 기본 로그 수준을 경고로 설정하려면 default-log-level 등록 정보 값을 warning으로 설정합니다.


    $ dpconf set-access-log-prop -h host1 -p 1389 default-log-level:warning

    각 메시지 범주의 로그 수준에 상관없이 모든 로그를 비활성화하려면 default-log-level 등록 정보 값을 none으로 설정합니다.


    $ dpconf set-access-log-prop -h host1 -p 1389 default-log-level:none

    특정 로그 수준을 기본 로그 수준으로 재설정하려면 해당 로그 수준 등록 정보를 inherited로 설정합니다. 예를 들어 클라이언트 연결에 대한 로그 수준을 재설정하려면 다음 명령을 실행합니다.


    $ dpconf set-access-log-prop -h host1 -p 1389 log-level-client-connections:inherited

    set-access-log-prop 하위 명령으로 설정할 수 있는 등록 정보에 대한 자세한 내용을 보려면 다음을 입력합니다.


    $ dpconf help-properties access-log

디렉토리 프록시 서버 로그 회전 구성

기본적으로 로그 파일은 파일 크기가 100MB에 도달할 때 회전됩니다. 기본적으로 10개의 로그 파일이 유지되며, 이후에 회전 프로시저는 가장 오래된 로그 파일을 덮어쓰기 시작합니다. 이 절에서는 디렉토리 프록시 서버 로그 회전을 예약하는 방법, 로그를 수동으로 회전하는 방법 및 로그 회전을 비활성화하는 방법에 대해 설명합니다. 구성 예는 로그 회전 구성 예를 참조하십시오.

Procedure액세스 로그 및 오류 로그가 주기적으로 회전하도록 구성하는 방법

이 절차를 수행하면 디렉토리 프록시 서버 액세스 로그가 구성됩니다. 디렉토리 프록시 서버 오류 로그를 구성하려면 동일한 절차를 수행하되 accesserror로 바꿉니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. (옵션) 액세스 로그의 등록 정보를 봅니다.


    $ dpconf get-access-log-prop -h host -p port
    
  2. (옵션) 액세스 로그의 등록 정보에 대해 유효한 값을 봅니다.

    $ dpconf help-properties access-log
  3. 로그가 특정 크기에 도달할 때 로그를 회전하려면 다음 등록 정보를 설정합니다.


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-policy:size log-rotation-size:maximum file size
    

    최대 파일 크기의 단위가 지정되어 있지 않으면 바이트가 기본 단위로 사용됩니다. 로그 파일이 정의된 크기에 도달할 때 로그가 회전됩니다. 파일 크기는 1MB 이상, 2GB 이하여야 합니다.

    크기를 기준으로 로그를 회전하는 방법에 대한 예는 로그 크기를 기준으로 로그 회전을 참조하십시오.

  4. 로그 크기에 상관없이 로그를 주기적으로 회전하려면 다음 등록 정보를 설정합니다.


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-frequency:interval in months, weeks, hours, or minutes \
     log-rotation-policy:periodic \
     log-rotation-start-day:day in week (1-7) or day in the month (1-31) \
     log-rotation-start-time:time of day (hhmm)
    

    로그가 매월 31일에 회전하도록 구성되었으나 해당 월의 일수가 31일 미만이면 로그는 다음 달 1일에 회전됩니다.

    로그를 주기적으로 회전하는 방법에 대한 예는 시간을 기준으로 로그 회전을 참조하십시오.

  5. 파일 크기가 큰 경우에 로그를 주기적으로 회전하려면 log-rotation-frequencylog-min-size 등록 정보를 설정합니다.


    $ dpconf set-access-log-prop -h host -p port \
     log-rotation-frequency:interval in months, weeks, hours, or minutes \
     log-rotation-policy:periodic log-min-size:minimum file size
     log-rotation-start-day:day in week (1-7) or day in the month (1-31) \
     log-rotation-start-time:time of day (hhmm)
    

    log-min-size 등록 정보는 로그의 최소 크기를 나타냅니다. 로그 파일이 지정된 크기보다 큰 경우에만 예약된 시간에 회전이 수행됩니다.

    로그가 매월 31일에 회전하도록 구성되었으나 해당 월의 일수가 31일 미만이면 로그는 다음 달 1일에 회전됩니다.

    파일 크기가 큰 경우에 로그를 주기적으로 회전하는 방법에 대한 예는 시간 및 로그 크기를 기준으로 로그 회전을 참조하십시오.

Procedure액세스 로그 및 오류 로그 파일을 수동으로 회전하는 방법

이 절차를 수행하면 디렉토리 프록시 서버 액세스 로그가 회전됩니다. 디렉토리 프록시 서버 오류 로그를 회전하려면 동일한 절차를 수행하되 accesserror로 바꿉니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 액세스 로그를 회전합니다.


    $ dpconf rotate-log-now -h host -p port access

Procedure액세스 로그 및 오류 로그 회전을 비활성화하는 방법

이 절차를 수행하면 디렉토리 프록시 서버 액세스 로그 회전이 비활성화됩니다. 디렉토리 프록시 서버 오류 로그 회전을 비활성화하려면 동일한 절차를 수행하되 accesserror로 바꿉니다.

  1. 로그 파일 회전을 비활성화합니다.


    $ dpconf set-access-log-prop -h host -p port enable-log-rotation:false

로그 회전 구성 예

로그 크기, 시간 또는 두 가지 모두를 기준으로 로그 회전을 구성하는 방법에 대한 예는 다음과 같습니다.

로그 크기를 기준으로 로그 회전

이 절에 나와 있는 예는 로그 크기만을 기준으로 로그 회전을 구성하는 방법을 보여줍니다. 다음과 같이 구성하면 로그가 마지막으로 회전된 시간에 상관없이 로그 크기가 10MB에 도달할 때 로그를 회전합니다.


$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-policy:size \
  log-rotation-size:10M

시간을 기준으로 로그 회전

이 절에 나와 있는 예는 로그 크기에 상관없이 마지막 회전 시간을 기준으로 로그 회전을 구성하는 방법을 보여줍니다.

log-rotation-start-day가 31로 설정되어 있고 해당 월의 일수가 30일이면 로그는 다음 달 1일에 회전됩니다. log-rotation-start-day가 31로 설정되어 있고 해당 월의 일수가 28일(2월)이면 로그는 다음 달 3일에 회전됩니다.

시간 및 로그 크기를 기준으로 로그 회전

다음 예는 파일 크기가 큰 경우에 지정된 간격으로 로그 회전을 구성하는 방법을 보여줍니다.

다음과 같이 구성하면 로그 파일 크기가 1MB를 초과하는 경우 매일 3시, 11시 및 19시에 로그를 회전합니다. 로그 파일 크기가 1MB를 초과하지 않으면 로그 파일은 회전되지 않습니다.


$ dpconf set-access-log-prop -h host1 -p 1389 log-rotation-frequency:8h \
 log-rotation-policy:periodic log-min-size:1M log-rotation-start-time:0300

디렉토리 프록시 서버 로그 삭제

디렉토리 프록시 서버에서 시간, 크기 또는 여유 디스크 공간(기본값)을 기준으로 로그 삭제를 구성할 수 있습니다. 이러한 삭제 정책에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceLog File Deletion을 참조하십시오.

다음 절차를 수행하면 액세스 로그에 대한 로그 삭제가 구성됩니다. 오류 로그에 대한 로그 삭제를 구성하려면 동일한 명령을 사용하되 accesserror로 바꿉니다.

Procedure시간을 기준으로 액세스 로그 및 오류 로그 삭제를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 로그 파일의 최대 사용 기간을 지정합니다.


    $ dpconf set-access-log-prop -h host -p port max-age:duration
    

    여기서 duration은 일(d), 주(w) 또는 월(M) 단위로 구성됩니다. 예를 들어 5일 이상 지난 백업 로그 파일을 삭제하려면 다음 명령을 사용합니다.


    $ dpconf set-access-log-prop -h host1 -p 1389 max-age:5d

Procedure파일 크기를 기준으로 액세스 로그 및 오류 로그 삭제를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 로그 파일의 최대 크기를 지정합니다.


    $ dpconf set-access-log-prop -h host -p port max-size:memory-size
    

    예를 들어 1MB를 초과하는 백업 로그 파일을 삭제하려면 다음 명령을 사용합니다.


    $ dpconf set-access-log-prop -h host1 -p 1389 max-size:1M

Procedure여유 디스크 공간을 기준으로 액세스 로그 및 오류 로그 삭제를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 사용 가능한 최소 디스크 공간을 지정합니다.


    $ dpconf set-access-log-prop -h host -p port min-free-disk-space-size:memory-size
    

    예를 들어 사용 가능한 디스크 공간이 2MB 미만일 때 백업 로그 파일을 삭제하려면 다음 명령을 사용합니다.


    $ dpconf set-access-log-prop -h host1 -p 1389 min-free-disk-space-size:2M

syslogd 데몬에 경고 로깅

이 절에서는 syslogd 데몬에 대한 경고 메시지 로깅을 구성하는 방법과 운영 체제에서 syslog 경고를 허용하도록 구성하는 방법에 대해 설명합니다.

Procedure디렉토리 프록시 서버에서 경고를 syslogd 데몬에 기록하도록 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. (옵션) 시스템 로그 경고의 현재 등록 정보 값을 봅니다.


    $ dpconf get-server-prop -h host -p port syslog-alerts-enabled \
     syslog-alerts-facility syslog-alerts-host

    시스템 로그 경고의 기본 등록 정보는 다음과 같습니다.


    syslog-alerts-enabled   :  false
    syslog-alerts-facility  :  USER
    syslog-alerts-host      :  localhost

    syslog-alerts-host 등록 정보는 메시지를 보낼 syslogd 데몬의 호스트 이름을 정의합니다. syslog-alerts-facility 등록 정보는 읽기 전용이며 메시지를 시스템 로그의 user 범주로 보냅니다.

  2. 경고 메시지를 syslogd 데몬에 기록하도록 활성화합니다.


    $ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true
  3. (옵션) 경고 메시지를 다른 호스트의 syslogd 데몬으로 보냅니다.


    $ dpconf set-server-prop -h host -p port syslog-alerts-host:hostname
    

운영 체제에서 syslog 경고를 허용하도록 구성

이 절에서는 SolarisTM, Linux 및 HP-UX 운영 체제에서 syslog 경고를 허용하도록 구성하는 방법에 대해 설명합니다.

ProcedureSolaris OS에서 syslog 경고를 허용하도록 구성하는 방법

  1. syslog 구성 파일에 적절한 기능을 추가합니다.

    예를 들어 USER 기능을 사용하여 모든 경고를 저장하려면 /etc/syslog.conf에 다음 행을 추가합니다.

    user.info       /var/adm/info

    여기서 /var/adm/info는 메시지를 저장할 로컬 디렉토리 예입니다. 작업을 계속하기 전에 /var/adm/info가 있는지 확인합니다.

  2. syslogd 데몬을 다시 시작합니다.

    1. Solaris 8 및 9의 경우 다음을 입력하여 syslogd를 다시 시작합니다.

      $ /etc/init.d/syslog stop | start
    2. Solaris 10의 경우 다음을 입력하여 syslogd를 다시 시작합니다.

      $ svcadm restart system/system-log
  3. 메시지가 syslog에 기록되는지 확인합니다.

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

ProcedureLinux에서 syslog 경고를 허용하도록 구성하는 방법

  1. syslog 구성 파일에 적절한 기능을 추가합니다.

    예를 들어 USER 기능을 사용하여 모든 경고를 저장하려면 /etc/syslog.conf에 다음 행을 추가합니다.

    user.info       /var/adm/info

    여기서 /var/adm/info는 메시지를 저장할 로컬 디렉토리 예입니다. 작업을 계속하기 전에 /var/adm/info가 있는지 확인합니다.

  2. syslogd 데몬이 -r 옵션과 함께 실행되도록 구성합니다.

    이 옵션을 사용하면 syslogd가 네트워크 연결을 허용합니다. 기본적으로 -r 옵션은 설정되어 있지 않습니다.

    -r 옵션을 설정하려면 /etc/sysconfig/syslog에 다음 행을 추가합니다.

    SYSLOGD_OPTIONS="-m 0 -r"

    /etc/sysconfig/syslog가 없으면 동일한 행을 /etc/init.d/syslog에 추가합니다.

  3. syslogd 데몬을 다시 시작합니다.

    $ /etc/init.d/syslog stop | start
  4. 메시지가 syslog에 기록되는지 확인합니다.

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

ProcedureHP-UX에서 syslog 경고를 허용하도록 구성하는 방법

  1. syslog 구성 파일에 적절한 기능을 추가합니다.

    예를 들어 USER 기능을 사용하여 모든 경고를 저장하려면 /etc/syslog.conf에 다음 행을 추가합니다.

    user.info       /var/adm/info

    여기서 /var/adm/info는 메시지를 저장할 로컬 디렉토리 예입니다. 작업을 계속하기 전에 /var/adm/info가 있는지 확인합니다.

  2. syslogd 데몬을 다시 시작합니다.

    $ /sbin/init.d/syslogd stop | start
  3. 메시지가 syslog에 기록되는지 확인합니다.

    $ logger -p user.info "Test message"
    $ cat /var/adm/info
     Jun 19 17:18:38 host user: [ID 12345 user.info] Test message

디렉토리 프록시 서버 및 디렉토리 서버 액세스 로그를 통해 클라이언트 요청 추적

클라이언트 요청 경로를 추적하려면 디렉토리 프록시 서버 액세스 로그 및 디렉토리 서버 액세스 로그에 요청이 기록되는 방식을 알고 있어야 합니다. 이 절의 내용을 이해하려면 먼저 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceTracking Client Requests Through Directory Proxy Server and Directory Server Access Logs를 읽으십시오.

Procedure디렉토리 서버에서 디렉토리 프록시 서버를 통해 클라이언트 응용 프로그램에 대한 작업을 추적하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 디렉토리 서버 액세스 로그에서 추적할 작업의 연결 번호를 찾습니다.

    예를 들어 액세스 로그에서 다음 행은 연결 번호가 conn=12839op=2 작업을 나타냅니다.


    [20/Jul/2006:18:01:49 -0500] conn=12839 op=2 msgId=4 - SRCH base="dc=example,dc=com" 
     scope=2 filter="(objectClass=organizationalunit)" attrs=ALL
  2. 이 연결에 대한 디렉토리 프록시 서버 연결 정보를 얻습니다.

    이 정보를 얻으려면 디렉토리 서버 액세스 로그를 검색하여 연결 번호가 일치하는 작업을 모두 찾습니다. 예를 들어 UNIX 시스템에서 다음과 같이 grep 명령을 실행하여 디렉토리 서버 액세스 로그에서 연결 conn=12839와 일치하는 행을 모두 찾습니다.


    $ grep conn=12839 access

    초기 LDAP 연결을 보여주는 행이 찾고 있는 정보이며 이는 다음과 유사합니다.


    [19/Jul/2006:16:32:51 -0500] conn=12839 op=-1 msgId=-1 - fd=27 slot=27 
     LDAP connection from 129.153.160.175:57153 to 129.153.160.175

    위의 행은 129.153.160.175:57153에서 디렉토리 서버로의 LDAP 연결이 있음을 나타냅니다. 포트 번호(57153)는 디렉토리 프록시 서버 액세스 로그로 다시 연결하는 데 필요한 정보입니다. 포트 번호를 사용하면 디렉토리 프록시 서버 로그에서 일치하는 연결을 찾을 수 있으며 이 연결에서 클라이언트 정보를 찾아볼 수 있습니다.

    연결이 처음 구성된 이후에 로그 파일이 회전된 적이 있다면 현재 액세스 로그 파일과 아카이브된 로그 파일을 모두 검색해야 합니다.

  3. 디렉토리 프록시 서버 액세스 로그에서 일치하는 연결을 찾습니다.

    이 정보를 얻으려면 디렉토리 프록시 서버 액세스 로그를 검색하여 포트 번호가 일치하는 작업을 모두 찾습니다.

    로그 파일에서 포트 번호가 동일한 항목을 여러 개 찾을 수 있습니다. 올바른 항목을 찾으려면 디렉토리 서버 로그 항목의 타임스탬프를 검색에 포함시킵니다.

    예를 들어 UNIX 시스템의 경우 다음과 같이 grep 명령을 실행하여 디렉토리 서버 로그에서 찾은 타임스탬프 및 포트 번호와 일치하는 연결 항목을 찾습니다.


    $ grep 19/Jul/2006:16:32 access | grep 57153

    값은 서버 시간에 약간의 차이를 두기 위해 타임스탬프에서 제외됩니다.

    디렉토리 프록시 서버 로그에서 일치하는 행은 다음과 유사합니다.


    [19/Jul/2006:16:32:51 -0500] - SERVER_OP  - INFO  - Created BIND  LDAP connection 
     s_conn=sunds-d1m1-9389:34 client=0.0.0.0:57153 
     server=idm160.central.sun.com:9389 main

    이 행은 디렉토리 프록시 서버가 s_conn=sunds-d1m1-9389:34에 대한 BIND 연결을 만들었음을 나타냅니다. 디렉토리 프록시 서버는 TCP 포트 57153에서 자신을 client=0.0.0.0 클라이언트로 자체 식별합니다.

    로그의 이 행에서 얻을 수 있는 중요 정보는 서버 아이디 및 포트 번호(s_conn=sunds-d1m1-9389:34)입니다.

  4. 이전 단계에서 식별된 서버 아이디 및 포트 번호와 일치하는 작업을 모두 찾습니다.

    이 정보를 얻으려면 디렉토리 프록시 서버 액세스 로그를 검색하여 서버 아이디 및 포트 번호가 일치하는 작업을 모두 찾습니다.

    예를 들어 UNIX 시스템에서 다음과 같이 grep 명령을 실행하여 이전 단계에서 찾은 서버 아이디와 일치하는 작업을 찾습니다.


    $ grep s_conn=sunds-d1m1-9389:34 access

    이 경우, 이러한 작업은 며칠 동안 지속되었을 수 있기 때문에 타임스탬프 검색은 유용하지 않습니다. 그러나, 검색에서 반환된 작업이 올바른 것인지 확인해야 합니다. Create 연결 문이 여러 개인 경우 원래 검색 문과 일치하는 항목을 찾아야 합니다. 이 작업을 수행하려면 타임스탬프를 단계 1에서 찾은 타임스탬프와 일치시킵니다.

    디렉토리 프록시 서버 액세스 로그에서 추출된 다음 내용은 s_conn=sunds-d1m1-9389:34에 대해 반환된 모든 작업을 보여줍니다.


    [19/Jul/2006:16:32:51 -0500] - SERVER_OP  - INFO - Created BIND LDAP connection
     s_conn=sunds-d1m1-9389:34 client=0.0.0.0:57153 server=idm160.central.sun.com:9389 main
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=0 BIND dn="cn=directory manager"
     method="SIMPLE" s_msgid=3 s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=0 BIND RESPONSE err=0 msg=""
     s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=1 SEARCH base="dc=example,dc=com"
     scope=2 s_msgid=4 s_conn=sunds-d1m1-9389:34
    [20/Jul/2006:18:01:49 -0500] - SERVER_OP  - INFO  - conn=31 op=1 SEARCH RESPONSE err=0 msg=""
     nentries=1 s_conn=sunds-d1m1-9389:34

    이 정보를 통해 디렉토리 프록시 서버의 검색 작업에 해당하는 연결 아이디가 31(conn=31)임을 알 수 있습니다.

  5. 이전 단계에서 찾은 연결 아이디와 일치하는 클라이언트 연결 IP 주소를 찾습니다.

    이 정보를 얻으려면 디렉토리 프록시 서버 액세스 로그를 검색하여 연결 아이디 및 타임스탬프가 일치하는 작업을 모두 찾습니다. 사용할 타임스탬프는 단계 1의 원래 검색 문에 있는 타임스탬프입니다.

    예를 들어 UNIX 시스템에서 다음과 같이 grep 명령을 실행하여 클라이언트 연결 IP 주소를 찾습니다.


    $ grep "20/Jul/2006:18:01" access | grep conn=31

    찾으려는 행은 다음과 유사합니다.


    [20/Jul/2006:18:01:49 -0500] - CONNECT - INFO  - conn=31 client=129.150.64.156:2031
    server=0.0.0.0:11389 protocol=LDAP
  6. 이전 단계에서 찾은 IP 주소의 소유자를 확인합니다.

    이 정보를 통해 디렉토리 서버에서 작업을 수행한 담당자를 정확하게 설정할 수 있습니다.

29장 디렉토리 프록시 서버 모니터링 및 경고

모니터링은 디렉토리 프록시 서버 및 해당 데이터 소스의 오류를 감지합니다.

디렉토리 프록시 서버의 모니터링 프레임워크와 cn=monitor 항목의 세부 레이아웃에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceMonitoring Directory Proxy Server를 참조하십시오. 이 장은 다음 내용으로 구성되어 있습니다.

디렉토리 프록시 서버에 대한 모니터링된 데이터 검색

디렉토리 프록시 서버에 대한 모니터링된 데이터를 검색하려면 cn=monitor 항목을 사용합니다. 이 항목은 로컬 메모리에 저장된 데이터베이스에서 디렉토리 프록시 서버에 의해 관리됩니다. cn=monitor 항목에 대한 LDAP 검색을 수행하여 cn=monitor 아래에서 속성을 검색할 수 있습니다. 이 항목을 검색하려면 프록시 관리자로 바인드해야 합니다.

JVM을 사용하여 모니터링된 데이터를 검색하는 방법에 대한 자세한 내용은 JVM을 사용하여 디렉토리 프록시 서버에 대한 모니터링된 데이터 검색을 참조하십시오.

데이터 소스에 대한 모니터링된 데이터 검색

디렉토리 프록시 서버가 데이터 소스의 상태를 모니터링하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 ReferenceMonitoring Data Sources를 참조하십시오. 이 절에서는 데이터 소스의 모니터링을 구성하는 방법에 대해 설명합니다.

Procedure오류를 수신하여 데이터 소스를 모니터링하는 방법

이 모니터링 유형에서 디렉토리 프록시 서버는 디렉토리 프록시 서버 및 데이터 소스 간의 트래픽에서 오류를 수신합니다. 디렉토리 프록시 서버는 오류가 감지될 경우 반응하지만 데이터 소스를 적극적으로 테스트하지 않기 때문에 이 모니터링 유형을 사후 행동 모니터링이라고 합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스에 대한 모니터링 모드를 reactive로 설정합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:reactive
  2. 디렉토리 프록시 서버에 대한 관리 경고 구성에 설명된 것처럼 오류가 감지되거나 데이터 소스가 오프라인 또는 온라인 상태가 될 경우 경고를 보내도록 구성합니다.

Procedure전용 연결을 정기적으로 설정하여 데이터 소스를 모니터링하는 방법

디렉토리 프록시 서버는 지정된 간격 동안 데이터 소스에 요청이나 응답이 없을 경우 데이터 소스에 대한 전용 연결을 만듭니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스에 대한 모니터링 모드를 proactive로 설정합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:proactive
  2. 디렉토리 프록시 서버에서 수행되는 모니터링 검색 요청을 구성합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port datasource \
      monitoring-bind-timeout:timeout monitoring-entry-dn:dn \
      monitoring-search-filter:filter monitoring-entry-timeout:timeout
    

    검색 요청에서 다음 등록 정보가 사용됩니다.

    monitoring-bind-timeout

    데이터 소스에 대한 연결이 설정될 때까지 디렉토리 프록시 서버가 대기하는 시간. 기본적으로 이 등록 정보의 값은 5초입니다.

    monitoring-entry-dn

    검색 요청에서 대상 항목의 DN. 기본적으로 이 등록 정보는 루트 DSE 항목입니다("").

    monitoring-search-filter

    검색 필터.

    monitoring-entry-timeout

    디렉토리 프록시 서버가 검색 응답을 위해 대기하는 시간. 기본적으로 이 등록 정보의 값은 5초입니다.

  3. (옵션) 사전 행동 모니터링을 구성하여 특정 사용자로 바인드합니다.


    $ dpconf set-ldap-data-source-prop ldap-data-source \
    monitoring-bind-dn:uid=user-id monitoring-bind-pwd-file:password-file
    

    user-iduid=bjensen,dc=example,dc=com과 같은 유효한 dn으로, password-file을 비밀번호를 포함하는 파일 경로로 바꿉니다.

    기본적으로 바인드가 익명으로 수행되므로 monitoring-bind-dnmonitoring-bind-pwd 속성이 모두 none으로 설정됩니다.

  4. 폴링 간격을 설정합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-interval:interval
    

    연결이 끊어진 경우 디렉토리 프록시 서버는 이 간격마다 연결을 폴링하여 복구를 감지합니다. 기본적으로 모니터링 간격은 30초입니다.

  5. 디렉토리 프록시 서버에 대한 관리 경고 구성에 설명된 것처럼 데이터 소스가 오프라인 또는 온라인 상태로 감지된 경우 경고를 보내도록 구성합니다.

Procedure설정된 연결을 테스트하여 데이터 소스를 모니터링하는 방법

이 모니터링 유형에서 디렉토리 프록시 서버는 각 데이터 소스에 대한 연결에서 검색을 정기적으로 수행합니다. 이 방법으로 디렉토리 프록시 서버는 닫힌 연결을 감지하고 비활성으로 인해 연결이 끊어지지 않도록 방지합니다.

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 데이터 소스에 대한 모니터링 모드를 proactive로 설정합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port datasource monitoring-mode:proactive
  2. 연결이 끊어지지 않도록 디렉토리 프록시 서버에서 데이터 소스에 요청을 전송할 시간 간격을 설정합니다.


    $ dpconf set-ldap-data-source-prop -h host -p port datasource \
     monitoring-inactivity-timeout:time
    

    기본적으로 비활성 시간 초과는 120초입니다.

  3. (옵션) 사전 행동 모니터링을 구성하여 특정 사용자로 바인드합니다.


    $ dpconf set-ldap-data-source-prop ldap-data-source
    monitoring-bind-dn:uid=user-id monitoring-bind-pwd-file:password-file
    

    user-iduid=bjensen,dc=example,dc=com과 같은 유효한 dn으로, password-file을 비밀번호를 포함하는 파일 경로로 바꿉니다.

    기본적으로 바인드가 익명으로 수행되므로 monitoring-bind-dnmonitoring-bind-pwd 속성이 모두 none으로 설정됩니다.

  4. 디렉토리 프록시 서버에 대한 관리 경고 구성에 설명된 것처럼 데이터 소스가 오프라인 또는 온라인 상태로 감지된 경우 경고를 보내도록 구성합니다.

디렉토리 프록시 서버에 대한 관리 경고 구성

관리 경고를 구성하는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

Procedure관리 경고를 활성화하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 활성화된 경고를 봅니다.


    % dpconf get-server-prop -h host -p port enabled-admin-alerts
  2. 하나 이상의 관리 경고를 활성화합니다.


    % dpconf set-server-prop -h host -p port enabled-admin-alerts:alert1 \
      [enabled-admin-alerts:alert2 ...]

    예를 들어 사용 가능한 모든 경고를 활성화하려면 다음 명령을 실행합니다.


    % dpconf set-server-prop -h host -p port \
     enabled-admin-alerts:error-configuration-reload-failure-with-impact \
     enabled-admin-alerts:error-server-shutdown-abrupt \ 
     enabled-admin-alerts:info-configuration-reload \
     enabled-admin-alerts:info-data-source-available \
     enabled-admin-alerts:info-server-shutdown-clean \
     enabled-admin-alerts:info-server-startup \
     enabled-admin-alerts:warning-configuration-reload-failure-no-impact \
     enabled-admin-alerts:warning-data-source-unavailable \
     enabled-admin-alerts:warning-data-sources-inconsistent \
     enabled-admin-alerts:warning-listener-unavailable

    모든 경고를 비활성화하려면 다음 명령을 실행합니다.


    % dpconf set-server-prop -h host -p port enabled-admin-alerts:none

    활성화된 경고의 기존 목록에 경고를 추가하려면 이 명령을 실행합니다.


    % dpconf set-server-prop -h host -p port enabled-admin-alerts+:alert-name
    

    활성화된 경고의 기존 목록에서 경고를 제거하려면 이 명령을 실행합니다.


    % dpconf set-server-prop -h host -p port enabled-admin-alerts-:alert-name
    

    기본적으로 경고가 활성화되지 않습니다.

참조

자세한 내용은 enabled-admin-alerts(5dpconf)를 참조하십시오.

ProcedureSyslog에 보내도록 관리 경고를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 관리 경고를 활성화하는 방법에 설명된 것처럼 syslog 데몬에 보낼 경고를 선택합니다.

  2. syslog 데몬에 보내도록 경고를 활성화합니다.


    $ dpconf set-server-prop -h host -p port syslog-alerts-enabled:true

    USER 기능으로 모든 경고가 syslog에 보내집니다.

  3. 경고를 보낼 syslog 데몬의 호스트 이름을 설정합니다.


    $ dpconf set-server-prop -h host -p port syslog_hostname:hostname
    

Procedure전자 메일로 보내도록 관리 경고를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 관리 경고를 활성화하는 방법에 설명된 것처럼 syslog에 보낼 경고를 선택합니다.

  2. 전자 메일의 주소와 특성을 구성합니다.


    $ dpconf set-server-prop -h host -p port email-alerts-smtp-host:host-name \
      email-alerts-smtp-port:port-number \
      email-alerts-message-from-address:sender-email-address \
      email-alerts-message-to-address:receiver-email-address \
      [email-alerts-message-to-address:receiver-email-address ...] \
      email-alerts-message-subject:email-subject
    
  3. 전자 메일로 보내도록 경고를 활성화합니다.


    $ dpconf set-server-prop -h host -p port email-alerts-enabled:true
  4. (옵션) 전자 메일에 경고 코드를 포함하도록 플래그를 설정합니다.


    $ dpconf set-server-prop -h host -p port \
     email-alerts-message-subject-includes-alert-code:true

Procedure스크립트를 실행하도록 관리 경고를 구성하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 관리 경고를 활성화하는 방법에 설명된 것처럼 syslog에 보낼 경고를 선택합니다.

  2. 스크립트를 실행하도록 경고를 활성화합니다.


    $ dpconf set-server-prop -h host -p port scriptable-alerts-enabled:true
  3. 실행할 스크립트의 이름을 설정합니다.


    $ dpconf set-server-prop -h host -p port scriptable-alerts-command:script-name
    

JVM을 사용하여 디렉토리 프록시 서버에 대한 모니터링된 데이터 검색

디렉토리 프록시 서버는 JVM(Java Virtual Machine) 내에서 실행되고 JVM 시스템의 메모리에 따라 달라집니다. 디렉토리 프록시 서버가 올바르게 실행되고 있는지 확인하려면 JVM 시스템의 메모리 사용을 모니터링해야 합니다.

JVM 시스템의 매개 변수를 조정하는 방법에 대한 자세한 내용은 Sun Java System Directory Server Enterprise Edition 6.3 Deployment Planning GuideHardware Sizing For Directory Proxy Server를 참조하십시오.

기본적으로 JVM 시스템의 힙 크기는 250MB입니다. 디렉토리 프록시 서버에 물리적 메모리가 충분하지 않은 경우 힙 크기는 250MB보다 작을 수 있습니다.

디렉토리 프록시 서버가 실행 중인 경우 JVM 시스템의 힙 크기를 모니터링하여 메모리가 부족해지지 않도록 할 수 있습니다. 이렇게 하려면 JDK(Java Development Kit)와 함께 제공되는 표준 도구를 사용합니다. 이러한 도구는 $JAVA_HOME/bin/jps $JAVA_HOME/bin/jstat 디렉토리에 있습니다.

ProcedureJVM의 힙 크기를 보는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. JVM의 힙 크기를 봅니다.


    $ dpadm get-flags instance-path jvm-args
    jvm-args: -Xms250M  -Xmx250M

Procedure디렉토리 프록시 서버가 실행 중인 경우 JVM의 힙 크기를 모니터링하는 방법

DSCC를 사용하여 이 작업을 수행할 수 없습니다. 이 절차에 설명된 것처럼 명령줄을 사용하십시오.

  1. 디렉토리 프록시 서버 인스턴스의 PID를 봅니다.


    $ jps
  2. JVM 시스템에 사용된 메모리를 봅니다.


    $ jstat -gcutil PID
    
    • 0 열이 거의 100%에 도달하면 JVM 시스템에 메모리가 부족한 것입니다.

    • FGC는 전체 가비지 컬렉션(GC) 이벤트 수입니다. 가비지 컬렉션은 광범위합니다.

    • GCT(Garbage Collection Time)는 GC에 사용된 시간입니다.