| |
| Sun Java(TM) System Directory Server 5 2004Q2 관리 설명서 | |
3장
디렉토리 트리 작성디렉토리 트리는 서버 내의 고유 이름(DN)으로 식별되는 모든 항목으로 구성됩니다. DN의 계층 구조적 특성으로 인해 트리의 데이터를 구조화하는 분기와 리프가 작성됩니다. 디렉토리 트리는 관리 편의상 접미어, 하위 접미어 및 연결 접미어로 정의됩니다. Directory Server 콘솔에서 이러한 모든 요소를 작성하고 관리하기 위한 컨트롤을 제공하지만 명령줄 도구를 사용할 수도 있습니다.
디렉토리 데이터 구조화에 대한 개념 정보와 접미어 전반에 걸친 내용은 Directory Server Deployment Planning Guide의 4장, “The Directory Information Tree”를 참조하십시오.
이 장은 다음 내용으로 구성되어 있습니다.
접미어 작성Directory Server 콘솔이나 명령줄을 사용하여 루트 접미어와 하위 접미어를 모두 작성할 수 있습니다.
콘솔에서 새 루트 접미어 작성
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 새 접미어를 선택합니다.
또는 데이터 노드를 선택하고 객체 메뉴에서 새 접미어를 선택할 수도 있습니다.
"새 접미어" 대화 상자가 표시됩니다.
- 접미어 DN 필드에 접미어 고유 이름을 입력합니다. 두 개 이상의 속성-값 쌍이 쉼표로 구분된 고유 이름 형식을 사용하여 이름을 입력해야 합니다.
관례상, 루트 접미어는 도메인-구성 요소(dc) 이름 지정 속성을 사용합니다. 예를 들어 새로운 접미어 DN을 dc=example,dc=org와 같이 입력할 수 있습니다.
- 기본적으로 이 접미어의 데이터베이스 파일 위치는 서버에서 자동으로 선택합니다. 또한 기본적으로 접미어는 시스템 색인만 유지 관리하고 속성이 암호화되거나 복제가 구성되지 않습니다.
기본값을 수정하려면 옵션 버튼을 눌러 새 접미어 옵션을 표시합니다.
- 데이터베이스 이름은 데이터베이스 파일이 저장된 디렉토리의 이름이기도 합니다. 기본 데이터베이스 이름은 접미어 DN의 이름 지정 속성 중에서 첫 번째 속성 값으로, 고유하게 숫자가 추가될 수도 있습니다. 다른 이름을 사용하려면 사용자 정의 사용 라디오 버튼을 선택하고 새로운 데이터베이스 고유 이름을 입력합니다.
데이터베이스 이름에는 ASCII (7비트) 영숫자 문자, 하이픈(-) 및 밑줄(_)만 사용할 수 있습니다. 예를 들어 새 데이터베이스의 이름을 example_2와 같이 지정할 수 있습니다.
- 데이터베이스 파일을 저장할 디렉토리 위치를 선택할 수도 있습니다. 기본적으로 데이터베이스 파일은 아래 경로의 하위 디렉토리에 저장됩니다.
ServerRoot/slapd-serverID/db
새 경로를 입력하거나 찾아보기를 눌러 새로운 데이터베이스 디렉토리 위치를 찾습니다. 디렉토리 서버 호스트에서 액세스할 수 있는 경로를 지정해야 합니다.
- 신속하게 새 접미어를 구성하기 위해 기존 접미어를 복제할 수도 있습니다. 접미어 구성 복제를 선택하고 드롭다운 메뉴에서 복제할 접미어를 선택합니다. 다음과 같은 복제 구성 중 하나를 선택합니다.
- 새 접미어 옵션이 모두 구성되면 확인을 누릅니다. 새 접미어 대화 상자에 선택한 모든 옵션이 표시됩니다.
- 새 접미어 대화 상자에서 확인을 눌러 새 루트 접미어를 작성합니다.
데이터 분기에 이 루트 접미어가 자동으로 표시됩니다. 새 접미어의 추가 구성 방법은 접미어 관리를 참조하십시오.
새 루트 접미어에는 접미어 DN 항목을 비롯하여 항목이 하나도 없으므로 초기화되어 적절한 액세스 권한이 할당될 때까지 디렉토리에서 액세스할 수 없으며 콘솔의 디렉토리 탭에도 표시되지 않습니다.
LDIF 파일을 사용하여 접미어를 초기화하는 경우 나머지 단계는 무시해도 됩니다. 단, 배포에 필요한 액세스 제어 명령(ACI)이 LDIF 파일의 루트 항목에 포함되어 있어야 합니다.
- 콘솔의 최상위 디렉토리 탭을 선택합니다. 새 접미어는 아직 디렉토리 트리에 표시되지 않습니다.
- 디렉토리 관리자만 접미어의 최상위 항목을 만들 수 있는 권한을 갖고 있습니다. 디렉토리 관리자로 로그인하지 않은 경우, 콘솔 > 새 사용자로 로그인 메뉴 항목을 선택하여 디렉토리 관리자로 로그인합니다. 디렉토리 관리자의 DN과 비밀번호를 입력하여 로그인합니다. 기본적으로 디렉토리 관리자 DN은 cn=Directory Manager입니다.
- 디렉토리 트리에서 서버 호스트 이름과 포트가 있는 루트 노드를 마우스 오른쪽 버튼으로 누릅니다. 팝업 메뉴에서 새 루트 객체 항목을 선택하고 새 루트 접미어의 DN을 선택합니다.
또는 디렉토리 트리의 루트 노드를 선택한 다음 객체 메뉴에서 새 루트 객체 항목을 선택합니다.
- 새 객체 대화 상자에서 루트 객체의 객체 클래스를 하나 선택합니다. 선택한 객체 클래스에 따라 루트 항목에 추가할 수 있는 속성이 결정됩니다.
관례상, dc 이름 지정 속성이 있는 접미어 DN의 루트 객체는 domain 객체 클래스에 속합니다. 일반적으로 루트 객체는 단순 객체로, 데이터가 거의 포함되어 있지 않습니다.
- 객체 클래스를 선택했으면 새 객체 대화 상자에서 확인을 누릅니다.
이제 콘솔에 새 루트 객체의 일반 편집기가 표시되고 기본 ACI 집합이 자동으로 새 객체에 추가됩니다. 자세한 내용은 기본 ACI를 참조하십시오. ACI 집합을 수정하는 등 토폴로지에 필요한 속성 값을 추가하고 편집합니다.
- 항목 편집이 끝나면 일반 편집기에서 확인을 눌러 새 접미어의 루트 객체를 작성합니다.
이제 디렉토리 트리에 새 접미어가 표시되며 ACI로 할당된 권한에 따라 콘솔에서 관리할 수 있습니다.
콘솔에서 새 하위 접미어 작성
아래 절차에서는 기존의 루트 접미어 또는 하위 접미어 아래에 새 하위 접미어를 작성하는 방법에 대해 설명합니다.
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드와 접미어 노드를 확장하여 부모 접미어를 표시합니다.
- 부모 접미어 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 새 하위 접미어를 선택합니다.
또는 부모 접미어 노드를 선택하고 객체 메뉴에서 새 하위 접미어를 선택할 수도 있습니다.
새 하위 접미어 대화 상자가 표시됩니다.
- 하위 접미어 RDN 필드에 고유 이름을 입력합니다. 두 개 이상의 속성-값 쌍이 쉼표로 구분된 상대적인 고유 이름 형식으로 이름을 입력해야 합니다(예: ou=Contractors).
텍스트 상자 아래 줄에는 RDN 뒤에 부모 접미어 DN이 추가된, 이 하위 접미어의 전체 DN이 표시됩니다.
- 기본적으로 이 접미어의 데이터베이스 파일 위치는 서버에서 자동으로 선택합니다. 또한 기본적으로 접미어는 시스템 색인만 유지 관리하고 속성이 암호화되거나 복제가 구성되지 않습니다.
기본값을 수정하려면 옵션 버튼을 눌러 새 접미어 옵션을 표시합니다.
- 데이터베이스 이름은 데이터베이스 파일이 저장된 디렉토리의 이름이기도 합니다. 기본 데이터베이스 이름은 RDN의 이름 지정 속성 중에서 첫 번째 속성 값으로, 고유하게 숫자가 추가될 수도 있습니다. 다른 이름을 사용하려면 사용자 정의 사용 라디오 버튼을 선택하고 새로운 데이터베이스 고유 이름을 입력합니다.
데이터베이스 이름에는 ASCII (7비트) 영숫자 문자, 하이픈(-) 및 밑줄(_)만 사용할 수 있습니다. 예를 들어 새 데이터베이스의 이름을 temps-US와 같이 지정할 수 있습니다.
- 데이터베이스 파일을 저장할 디렉토리 위치를 선택할 수도 있습니다. 기본적으로 데이터베이스 파일은 아래 경로의 하위 디렉토리에 저장됩니다.
ServerRoot/slapd-serverID/db
새 경로를 입력하거나 "찾아보기"를 눌러 새로운 데이터베이스 디렉토리 위치를 찾습니다. 디렉토리 서버 응용 프로그램에서 액세스할 수 있는 경로를 지정해야 합니다.
- 신속하게 새 하위 접미어를 구성하기 위해 부모 접미어나 다른 기존 접미어를 복제할 수도 있습니다. 접미어 구성 복제를 선택하고 드롭다운 메뉴에서 복제할 접미어를 선택합니다. 다음과 같은 복제 구성 중 하나를 선택합니다.
- 새 접미어 옵션이 모두 구성되면 확인을 누릅니다. 새 하위 접미어 대화 상자에 선택한 모든 옵션이 표시됩니다.
- 새 하위 접미어 대화 상자에서 확인을 눌러 하위 접미어를 작성합니다.
구성 탭의 부모 접미어 아래에 이 하위 접미어가 자동으로 표시됩니다. 새 접미어의 추가 구성 방법은 접미어 관리를 참조하십시오.
새 하위 접미어에는 RDN 항목을 비롯하여 항목이 하나도 없으므로 초기화되어 적절한 액세스 권한이 할당될 때까지 디렉토리에서 액세스할 수 없으며 콘솔의 디렉토리 탭에도 표시되지 않습니다.
LDIF 파일을 사용하여 접미어를 초기화하는 경우 나머지 단계는 무시해도 됩니다. 단, 배포에 필요한 ACI (Access Control Instruction)가 LDIF 파일의 부모 접미어 및 새 항목에 포함되어 있어야 합니다.
- 콘솔의 최상위 디렉토리 탭에서 디렉토리 트리를 확장하여 하위 접미어의 부모를 표시합니다. 새 하위 접미어는 아직 표시되지 않습니다.
- 디렉토리 관리자만 접미어 및 하위 접미어의 최상위 항목을 만들 수 있는 권한(ACI)을 갖고 있습니다. 디렉토리 관리자로 로그인하지 않은 경우, 콘솔 > 새 사용자로 로그인 메뉴 항목을 선택하여 디렉토리 관리자로 로그인합니다. 디렉토리 관리자의 DN과 비밀번호를 입력하여 로그인합니다. 기본적으로 디렉토리 관리자 DN은 cn=Directory Manager입니다.
- 하위 접미어의 부모를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 새 항목을 선택합니다. 새 객체 목록에서 이 하위 접미어의 RDN에 해당하는 객체 유형을 선택합니다. 예를 들어 ou=Contractors 하위 접미어를 작성한 경우 OrganizationalUnit 항목을 선택합니다. 작성한 하위 접미어의 객체 클래스가 표시되지 않으면 기타를 선택하여 새 객체 대화 상자의 목록에서 해당 객체 클래스를 선택합니다. 또는 하위 접미어의 부모를 선택한 다음 객체 메뉴에서 새 항목을 선택합니다.
- 이제 콘솔에 새 객체의 사용자 정의 또는 일반 편집기가 표시됩니다. ACI 집합을 수정하는 등 토폴로지에 필요한 속성 값을 추가하고 편집합니다.
- 항목 편집이 끝나면 편집기에서 확인을 눌러 새 하위 접미어 항목을 작성합니다.
이제 디렉토리 트리에 새 하위 접미어가 표시되며 ACI로 할당된 권한에 따라 콘솔에서 관리할 수 있습니다.
명령줄에서 접미어 작성
ldapmodify 명령줄 유틸리티를 사용하여 디렉토리에 접미어를 작성할 수도 있습니다. 루트 접미어와 하위 접미어는 서버에서 똑같이 내부적으로 관리되기 때문에 명령줄에서 작성하는 절차도 거의 흡사합니다.
다음 예에서는 “cn=Directory Manager”가 사용되었지만 구성 항목은 모든 관리 사용자가 만들 수 있습니다. 하지만 접미어의 최상위 항목은 반드시 디렉토리 관리자가 만들어야 합니다.
- 루트 접미어의 경우 아래 명령을 실행하여 cn=mapping tree,cn=config에 접미어 구성 항목을 작성합니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn="suffixDN",cn=mapping tree,cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsMappingTree
cn: suffixDN
nsslapd-state: backend
nsslapd-backend: databaseName
^D하위 접미어의 경우 동일한 명령에 아래 속성만 추가하여 사용합니다.
nsslapd-parent-suffix: "parentSuffixDN"suffixDN은 새 접미어의 전체 DN입니다. 관례상, 루트 접미어는 도메인-구성 요소(dc) 이름 지정 속성을 사용합니다(예: dc=example,dc=org). 하위 접미어의 suffixDN에는 하위 접미어의 RDN과 부모 접미어의 DN이 포함됩니다(예: ou=Contractors,dc=example,dc=com).
databaseName은 이 접미어와 관련된, 내부적으로 관리되는 데이터베이스의 이름입니다. 모든 접미어의 databaseName은 고유해야 하며, 관례상 suffixDN의 이름 지정 구성 요소 중에서 첫 구성 요소의 값입니다. databaseName은 접미어의 데이터베이스 파일이 저장된 디렉토리 이름이기도 하므로 ASCII(7비트) 영숫자 문자, 하이픈(-) 및 밑줄(_)만 사용할 수 있습니다.
하위 접미어의 경우 parentSuffixDN은 부모 접미어의 DN과 정확하게 일치합니다.
- 아래 명령을 실행하여 데이터베이스 구성 항목을 작성합니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=databaseName,cn=ldbm database,cn=plugins,cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsBackendInstance
cn: databaseName
nsslapd-suffix: suffixDN
^D여기서 databaseName과 suffixDN은 이전 단계에서 사용한 값이어야 합니다.
디렉토리에 이 항목이 추가되면 서버의 데이터베이스 모듈이 자동으로 아래 디렉토리에 데이터베이스 파일을 작성합니다.
ServerRoot/slapd-serverID/db/databaseName
다른 위치에 데이터베이스 파일을 작성하게 하려면 아래 속성을 사용하여 데이터베이스 구성 항목을 작성합니다.
nsslapd-directory: path/databaseName
데이터베이스 파일의 저장 위치에 databaseName 디렉토리가 자동으로 작성됩니다.
- 루트 접미어 또는 하위 접미어의 기본 항목을 작성합니다.
예를 들어 아래 명령을 실행하여 dc=example,dc=org 루트 접미어의 기본 항목을 작성할 수 있습니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: dc=example,dc=org
objectclass: top
objectclass: domain
dc: example
^DDN의 첫 이름 지정 속성과 해당 값을 추가해야 합니다. 또한 기본 항목의 객체 클래스 스키마에 필요한 모든 속성도 추가해야 합니다. 관례상, 도메인-구성 요소(dc)를 사용하는 루트 접미어 DN은 domain 객체 클래스에 속하므로 다른 속성을 추가할 필요가 없습니다.
액세스 정책을 실행하려면 루트 접미어에 액세스 제어 명령(ACI)도 추가해야 합니다. 다음과 같은 aci 속성 값을 추가하면 익명 읽기, 보안 자체 수정, 관리자용 전체 액세스 권한 등을 허용할 수 있습니다.
aci: (targetattr != "userPassword") (version 3.0; acl
"Anonymous access";
allow (read, search, compare)userdn = "ldap:///anyone";)
aci: (targetattr != "nsroledn || aci || nsLookThroughLimit ||
nsSizeLimit || nsTimeLimit || nsIdleTimeout ||
passwordPolicySubentry || passwordExpirationTime ||
passwordExpWarned || passwordRetryCount || retryCountResetTime
|| accountUnlockTime || passwordHistory ||
passwordAllowChangeTime")(version 3.0; acl "Allow self entry
modification except for nsroledn, aci, resource limit
attributes, passwordPolicySubentry and password policy state
attributes"; allow (write)userdn ="ldap:///self";)
aci: (targetattr = "*")(version 3.0; acl
"Configuration Administrator";
allow (all) userdn = "ldap:///uid=admin,ou=Administrators,
ou=TopologyManagement, o=NetscapeRoot";)
aci: (targetattr ="*")(version 3.0;acl
"Configuration Administrators Group";
allow (all) (groupdn =
"ldap:///cn=Configuration Administrators, ou=Groups,
ou=TopologyManagement, o=NetscapeRoot");)하위 접미어의 예로, 아래 명령을 실행하여 ou=Contractors,dc=example,dc=com의 기본 항목을 작성할 수 있습니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: ou=Contractors,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
description: base of separate subsuffix for contractor identities
^DDN의 이름 지정 속성과 해당 값을 추가해야 합니다. 또한 기본 항목의 객체 클래스 스키마에 필요한 모든 속성을 추가해야 하며, 허용되는 다른 속성도 추가할 수 있습니다. 새 하위 접미어가 ACI 범위에 포함되면 부모에 정의된 ACI 액세스 제어가 이 하위 접미어에도 적용됩니다. 하위 접미어에 다른 액세스 정책을 정의하려면 기본 항목을 작성할 때 원하는 aci 속성을 지정합니다.
접미어 관리접미어를 작성하여 해당 내용을 모두 동시에 관리할 수 있습니다. 이 절에서는 모든 작업 비활성화, 읽기 전용 접미어 설정, 접미어 수준의 참조 작성 등 접미어에 대한 액세스 관리 방법에 대해 설명합니다.
접미어 수준에서 구성되는 다양한 디렉토리 관리 작업에 대해서는 본 설명서의 다른 장에서 설명합니다.
접미어 비활성화 또는 활성화
유지 관리를 위해 접미어를 비활성화하거나 보안상 해당 접미어 내용을 사용할 수 없도록 설정해야 하는 경우가 있습니다. 접미어를 비활성화하면 서버에서 접미어에 액세스하는 클라이언트 작업에 응답하여 접미어 내용을 읽거나 쓸 수 없습니다. 기본 참조가 정의되어 있으면 클라이언트가 비활성화된 접미어에 액세스할 때 해당 참조가 반환됩니다.
콘솔에서 접미어 비활성화 또는 활성화
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 비활성화할 접미어를 선택합니다.
- 오른쪽 패널에서 설정 탭을 선택합니다. 작성된 모든 접미어는 기본적으로 활성화됩니다.
이 접미어에 대한 복제를 허용하면 해당 탭의 내용이 자동으로 업데이트될 수 있음을 알리는 메시지가 표시됩니다. 복제되는 접미어를 비활성화하면 이 접미어에 대한 복제도 중단됩니다. 복제 중단 기간이 복구 설정보다 짧은 경우 접미어를 다시 활성화하면 복제 기법에서 이 복제본에 대한 업데이트를 계속합니다. 복제 복구 설정은 이 소비자 복제본의 지연 제거와 공급자 변경 로그의 최대 크기 및 수명으로 구성됩니다(고급 소비자 구성 참조).
- 접미어를 비활성화하려면 "이 접미어에 대한 액세스를 가능하게 합니다" 확인란을 선택 취소하고 접미어를 활성화하려면 확인란을 선택합니다.
- 저장을 눌러 변경 사항을 적용하면 접미어가 즉시 비활성화 또는 활성화됩니다.
- 선택 사항으로, 접미어가 비활성화될 경우 이 접미어에 대한 모든 작업에 반환할 전역 기본 참조를 설정할 수도 있습니다. 이 설정은 최상위 구성 탭에서 루트 노드의 네트워크 탭에 있습니다. 자세한 내용은 콘솔에서 기본 참조 설정을 참조하십시오.
명령줄에서 접미어 비활성화 또는 활성화
- 아래 명령을 실행하여 접미어 구성 항목의 nsslapd-state 속성을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn="suffixDN",cn=mapping tree,cn=config
changetype: modify
replace: nsslapd-state
nsslapd-state: disabled or backend
^D여기서 suffixDN은 정의된 바와 같이 공백까지 포함하는 접미어 DN의 전체 문자열입니다. 접미어를 비활성화하려면 nsslapd-state 속성을 disabled 값으로 설정하고 전체 액세스 권한을 허용하려면 backend 값으로 설정합니다.
명령이 성공하면 접미어가 즉시 비활성화됩니다.
- 선택 사항으로, 접미어가 비활성화될 경우 이 접미어에 대한 모든 작업에 반환할 전역 기본 참조를 설정할 수도 있습니다. 자세한 내용은 명령줄에서 기본 참조 설정을 참조하십시오.
액세스 권한 및 참조 설정
접미어를 완전히 비활성화하지 않고 액세스를 제한하려면 읽기 전용 액세스를 허용하도록 액세스 권한을 수정할 수 있습니다. 이 경우 쓰기 작업을 위해 다른 서버에 대한 참조를 정의해야 합니다. 읽기 및 쓰기 액세스를 모두 거부하고 접미어에 대한 모든 작업에 반환할 참조를 정의할 수도 있습니다.
또한 참조를 사용하여 일시적으로 클라이언트 응용 프로그램을 다른 서버로 연결할 수 있습니다. 예를 들어 접미어 내용을 백업하는 동안 접미어가 다른 서버를 가리키도록 참조를 추가할 수 있습니다.
복제 기법은 쓰기 권한과 참조를 이용하여 복제할 접미어를 구성합니다. 복제를 활성화하거나, 복제본 수준을 올리거나 내리면 참조 설정이 수정됩니다.
콘솔에서 액세스 권한 및 참조 설정
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 참조를 설정할 접미어를 선택합니다.
- 오른쪽 패널에서 설정 탭을 선택합니다. 연결 접미어를 활성화한 경우에만 권한과 참조를 설정할 수 있습니다. 이 접미어에 대한 복제를 허용하면 해당 탭의 내용이 자동으로 업데이트될 수 있음을 알리는 메시지가 표시됩니다.
- 다음 라디오 버튼 중 하나를 선택하여 이 접미어 항목에 대한 모든 쓰기 작업에 반환할 응답을 설정합니다.
- 쓰기와 읽기 요청을 처리합니다 - 기본적으로 이 라디오 버튼이 선택되며 접미어의 정상적인 동작을 나타냅니다. 참조도 정의할 수 있지만 반환되지는 않습니다.
- 읽기 요청을 처리하고 쓰기 요청에 대한 참조를 반환합니다 - 접미어를 읽기 전용으로 설정하고 쓰기 요청에 대한 참조로 반환할 LDAP URL을 목록에 하나 이상 입력하려면 이 라디오 버튼을 선택합니다.
- 읽기와 쓰기 요청 모두에 대한 참조를 반환합니다 - 읽기와 쓰기 액세스를 모두 거부하려면 이 라디오 버튼을 선택합니다. 전역 기본 참조를 사용하지 않고 특별히 이 접미어에 대한 참조를 정의할 수 있다는 점을 제외하면 이 동작은 접미어에 대한 액세스를 비활성화하는 것과 유사합니다.
- 추가 및 제거 버튼을 사용하여 참조 목록을 편집합니다. 추가 버튼을 누르면 새 참조의 LDAP URL을 작성할 수 있는 대화 상자가 표시됩니다. 원격 서버 분기의 DN에 대한 참조를 작성할 수도 있습니다. LDAP URL의 구조에 대한 자세한 내용은 Directory Server Administration Reference의 6장, “LDAP URL Reference”를 참조하십시오.
여러 개의 참조를 입력할 수 있습니다. 디렉토리는 클라이언트 응용 프로그램의 요청에 응답하여 이 목록에 있는 모든 참조를 반환합니다.
- 저장을 눌러 변경 사항을 적용하면 새로운 권한 및 참조 설정이 즉시 실행됩니다.
명령줄에서 액세스 권한 및 참조 설정
참조란 레이블이 지정된 URL, 즉 뒤에 공백 문자 및 레이블이 올 수 있는 LDAP URL입니다. 공백 문자가 중요하기 때문에 참조의 URL 부분에 있는 모든 공백 문자는 %20를 사용하여 이스케이프시켜야 합니다.
아래 명령에서 suffixDN은 정의된 바와 같이 공백까지 포함하는 접미어 DN의 전체 문자열입니다. LDAPURL은 아래 예와 같이 대상의 호스트 이름, 포트 번호 및 DN이 포함된 유효한 URL입니다.
ldap://phonebook.example.com:389/ou=All%20People,dc=example,dc=com
- 아래 명령을 실행하여 접미어의 구성 항목을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn="suffixDN",cn=mapping tree,cn=config
changetype: modify
replace: nsslapd-state
nsslapd-state: referral on update or referral
-
add: nsslapd-referral
nsslapd-referral: LDAPURL
^D마지막 변경 명령문을 반복하여 다른 LDAP URL을 nsslapd-referral 속성에 원하는 대로 추가할 수도 있습니다.
nsslapd-state 속성 값이 referral on update이면 접미어는 읽기 전용으로 설정되고 쓰기 작업에 대한 참조로 모든 LDAP URL이 반환됩니다. 속성 값이 referral이면 읽기와 쓰기 작업이 모두 거부되고 모든 요청에 대해 참조가 반환됩니다.
- 명령이 성공하면 접미어가 즉시 읽기 전용으로 설정되거나 액세스할 수 없게 되고 참조를 반환할 수 있습니다.
접미어 삭제
접미어를 삭제하면 전체 분기가 디렉토리에서 제거됩니다. 디렉토리에서 부모 접미어만 삭제하고 해당 하위 접미어를 새로운 루트 접미어로 유지할 수도 있습니다.
콘솔에서 접미어 삭제
- Directory Server 콘솔의 구성 탭에서 데이터 노드를 확장합니다.
- 제거할 접미어를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 삭제를 선택합니다.
또는 접미어 노드를 선택하고 객체 메뉴에서 삭제를 선택할 수도 있습니다.
- 모든 접미어 항목이 디렉토리에서 제거될 것이라고 알려주는 확인 대화 상자가 표시됩니다.
부모 접미어의 경우 모든 하위 접미어를 재귀적으로 삭제할 수 있습니다. 전체 분기를 제거하려면 "이 접미어와 해당 하위 접미어를 모두 삭제합니다"를 선택합니다. 디렉토리에서 특정 접미어만 제거하고 해당 하위 접미어를 그대로 유지하려면 "이 접미어만 삭제합니다"를 선택합니다.
- 확인을 눌러 접미어를 삭제합니다.
콘솔의 작업 완료 상황을 단계별로 보여주는 진행률 대화 상자가 표시됩니다.
명령줄에서 접미어 삭제
명령줄에서 접미어를 삭제하려면 ldapdelete 명령을 사용하여 해당 구성 항목을 디렉토리에서 제거합니다.
하위 접미어를 포함한 전체 분기를 삭제하려면 삭제된 부모의 하위 접미어를 찾아서 각 하위 접미어 및 해당 하위 접미어에 대해 같은 절차를 반복해야 합니다.
- 아래 명령을 실행하여 접미어 구성 항목을 제거합니다.
ldapdelete -h host -p port -D "cn=Directory Manager" -w password \
-v ’cn="suffixDN",cn=mapping tree,cn=config’이 명령은 suffixDN에 지정된 기준 항목부터 시작하여 접미어를 서버에서 제거합니다. 이제 디렉토리에서 이 접미어를 보거나 액세스할 수 없습니다. -v 옵션은 세부 정보 표시 모드를 지정합니다. 즉, 삭제 작업에 대한 추가 정보가 표시됩니다.
- cn=databaseName,cn=ldbm database,cn=plugins,cn=config에 있는 해당 데이터베이스 구성 항목과 하위 항목을 모두 제거합니다. 다음 명령은 ilash 명령을 사용하여 이 재귀적 삭제를 수행합니다.
% ilash -call "http://host:port/" -user "cn=Directory Manager"
[...]
Enter password for "cn=Directory Manager": password
[...]
[example,com]% dcd cn=config
[config]% ddelete -subtree \
"cn=databaseName,cn=ldbm database,cn=plugins,cn=config"Removed cn=aci, cn=index, cn=databaseName, cn=ldbm database,
cn=plugins, cn=configRemoved cn=entrydn, cn=index, cn=databaseName, cn=ldbm database,
cn=plugins, cn=config[...]
Removed cn=encrypted attributes, cn=databaseName, cn=ldbm database,
cn=plugins, cn=configRemoved cn=index, cn=databaseName, cn=ldbm database, cn=plugins,
cn=configRemoved cn=monitor, cn=databaseName, cn=ldbm database, cn=plugins,
cn=configRemoved cn=databaseName,cn=ldbm database,cn=plugins,cn=config
이 명령은 데이터베이스와 관련된 모든 색인 구성 항목을 출력하며, 이렇게 출력된 항목은 모두 제거해야 합니다. 데이터베이스 구성이 완전히 삭제되면 서버는 이 접미어와 관련된 모든 데이터베이스 파일과 디렉토리를 제거합니다.
연결 접미어 작성루트 접미어와 하위 접미어는 다른 서버에 연결할 수 있으며 콘솔이나 명령줄에서 두 절차를 모두 수행할 수 있습니다.
하지만 연결 접미어를 작성하기 전에 먼저 원격 서버에서 프록시 아이디를 작성해야 합니다. 로컬 서버는 연결 접미어를 통해 작업을 전달할 때 이 프록시 아이디를 사용하여 원격 서버에 바인드합니다.
동일한 매개 변수를 사용하여 많은 연결 접미어를 구성하는 경우 새로운 연결 접미어의 연결 매개 변수에도 기본값을 설정해야 합니다. 연결 정책 구성에 설명된 것처럼, 연결 접미어를 작성하기 전이나 작성한 후에 LDAP 컨트롤과 서버 구성 요소에 연결 정책을 설정할 수도 있습니다.
프록시 아이디 작성
프록시 아이디는 로컬 서버에서 연결 작업을 바인드하고 전달하기 위해 사용하는 원격 서버의 사용자입니다. 보안상, 디렉토리 관리자나 관리 사용자(admin)를 프록시에 사용해서는 안 됩니다.
지정된 서버의 연결 작업에만 사용할 새 아이디를 작성하십시오. 콘솔에서 연결 접미어 작성 또는 콘솔에서 연결 정책 수정에 정의된 모든 페일오버 서버 및 연결할 모든 서버에서 프록시 아이디를 작성합니다. 프록시 아이디는 연결 접미어에 완전한 액세스 권한을 가져야 합니다.
콘솔에서 프록시 아이디 작성
아래 절차는 Directory Server 콘솔이 연결 접미어의 대상인 원격 서버에 연결되어 있는 경우에만 적용됩니다.
명령줄에서 프록시 아이디 작성
아래 절차에서는 host1과 host2를 사용하여 각각 연결 접미어가 있는 로컬 서버와 연결 접미어의 대상인 원격 서버를 나타냅니다.
- 아래 명령을 실행하여 host2에서 프록시 아이디를 작성합니다.
ldapmodify -a -h host2 -p port2 -D "cn=Directory Manager" -w password2
dn: uid=host1_proxy,cn=config
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetorgperson
uid: host1_proxy
cn: host1 chaining proxy
sn: host1
userpassword: password
description: proxy entry to be used for chaining from host1
^D기본 연결 매개 변수 설정
연결 매개 변수는 서버가 어떻게 연결 서버에 연결하여 해당 연결 접미어에 대한 작업을 처리하는지 결정하며, 각 연결 접미어에 구성됩니다. Directory Server는 연결 접미어를 작성할 때 사용되는 기본값을 제공합니다. 이 기본값을 편집하여 새로운 모든 연결 접미어의 연결 매개 변수를 지정할 수 있습니다.
기본 매개 변수를 수정한 후에 작성된 새 연결 접미어에는 변경된 값이 포함됩니다. 하지만 접미어가 작성된 후에는 연결 접미어 관리에 설명된 방식으로만 매개 변수를 수정할 수 있습니다.
아래에는 연결 매개 변수의 속성과 기본값이 설명되어 있습니다. 허용된 값에 대한 설명은 Directory Server Administration Reference의 2장, “Chained Suffix Plug-in Attributes”를 참조하십시오.
클라이언트 반환 매개 변수
- nsReferralOnScopedSearch - on (기본값)으로 설정하면 연결 접미어 내에서만 검색하는 클라이언트 검색 시 원격 서버에 대한 참조를 받게 되므로 검색 결과가 두 번 전송되는 것을 방지할 수 있습니다. off로 지정할 경우 크기 및 시간 제한 매개 변수를 설정하여 연결 접미어 검색 시간을 제한해야 합니다.
- nsslapd-sizelimit - 이 매개 변수는 연결 검색 작업에 응답하여 반환할 항목 수를 지정합니다. 기본 크기 제한은 2000개입니다. 연결 접미어에 대한 광범위한 검색을 제한하려면 이 매개 변수 값을 낮게 설정하십시오. 항상 원격 서버의 크기 설정에 따라 작업이 제한됩니다.
- nsslapd-timelimit - 이 매개 변수는 연결 작업 시간을 제어합니다. 기본 시간 제한은 3600초(1시간)입니다. 연결 접미어에 대한 작업 시간을 제한하려면 이 매개 변수 값을 낮게 설정하십시오. 항상 원격 서버의 시간 설정에 따라 작업이 제한됩니다.
계단식 연결 매개 변수
- nsCheckLocalACI - 단일 수준 연결에서는 로컬 서버가 아닌 원격 서버가 연결 접미어에 바인드된 사용자의 액세스 권한을 확인하므로 기본값은 off입니다. 그러나 계단식 연결의 중간 서버는 연결 작업을 전달하는 서버에서 사용된 프록시 DN의 액세스 권한을 확인 및 제한하기 위해 이 매개 변수를 on으로 설정해야 합니다.
- nsHopLimit - 루프 감지 기능은 이 매개 변수를 사용하여 허용되는 최대 홉 수를 정의합니다. 연결 작업이 정의된 최대 홉 수에 도달할 경우 계단식 토폴로지에 잘못된 루프가 있다는 가정 하에 이 연결 작업은 전달되지 않고 중단됩니다.
연결 관리 매개 변수
- nsOperationConnectionsLimit - 연결 접미어와 원격 서버 사이에 구성할 수 있는 동시 LDAP 작업 연결의 최대 개수입니다. 기본값은 10개입니다.
- nsBindConnectionsLimit - 연결 접미어와 원격 서버 간에 구성할 수 있는 최대 동시 바인드 연결 수입니다. 기본값은 3개입니다.
- nsConcurrentBindLimit - LDAP 연결 당 동시에 허용되는 최대 바인드 작업 수입니다. 기본값은 연결 당 아직 해결되지 않은 바인드 작업 10개입니다.
- nsBindRetryLimit - 오류 시 연결 접미어가 원격 서버로 재바인드를 시도하는 횟수입니다. 값을 0으로 설정하면 연결 접미어는 바인드를 한 번만 시도합니다. 기본값은 3회입니다.
- nsConcurrentOperationsLimit - LDAP 연결 당 동시에 허용되는 최대 작업 수입니다. 기본값은 연결 당 10개입니다.
- nsBindTimeout - 연결 접미어에 대한 바인드 시도가 시간 초과될 때까지의 시간(초)입니다. 기본값은 15초입니다.
- nsAbandonedSearchCheckInterval - 서버에서 작업 중단 여부를 확인할 때까지의 시간(초)입니다. 기본값은 2초입니다.
- nsConnectionLife - 연결 접미어와 원격 서버 간의 연결을 다시 사용할 수 있도록 열어 두는 시간입니다. 연결을 열어 두면 속도는 더 빠르지만 많은 자원이 사용됩니다. 예를 들어, 전화 접속 연결을 사용하는 경우 연결 시간을 제한하는 것이 좋습니다. 기본값은 0으로, 연결 시간이 제한되지 않습니다.
오류 감지 매개 변수
- nsmaxresponsedelay - 원격 서버가 LDAP의 연결 작업 요청에 응답할 때까지의 최대 시간입니다. 시간은 초 단위로 설정됩니다. 로컬 서버는 이 지연 시간 후에 연결을 테스트합니다. 기본 지연 시간은 60초입니다.
- nsmaxtestresponsedelay - 원격 서버의 응답 여부를 확인하기 위한 테스트 기간입니다. 테스트는 존재하지 않는 항목을 검색하는 단순한 요청을 이용합니다. 시간은 초 단위로 설정됩니다. 테스트 지연 동안 응답이 없으면 연결 접미어는 원격 서버가 다운되었다고 가정합니다. 기본 테스트 응답 지연 시간은 15초입니다.
콘솔에서 기본 연결 매개 변수 설정
명령줄에서 기본 연결 매개 변수 설정
- ldapmodify 명령을 사용하여 cn=default instance config,cn=chaining database,cn=plugins,cn=config 항목을 편집합니다. 이 항목의 모든 속성은 새 연결 접미어 매개 변수의 기본값이 됩니다.
예를 들어 아래 명령은 새 연결 접미어의 기본 크기 제한을 5000개 항목으로 늘리고 기본 시간 제한을 10분으로 단축합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=default instance config,cn=chaining database,
cn=plugins,cn=config
changetype: modify
replace: nsslapd-sizelimit
nsslapd-sizelimit: 5000
-
replace: nsslapd-timelimit
nsslapd-timelimit: 600
^D항목에 대한 변경 사항이 즉시 적용됩니다.
콘솔에서 연결 접미어 작성
아래 절차에 따라 연결 루트 접미어와 연결 하위 접미어를 모두 작성할 수 있습니다.
- Directory Server 콘솔의 구성 탭을 선택합니다.
- 연결 루트 접미어의 경우 데이터 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 새 연결 접미어를 선택합니다. 또는, 데이터 노드를 선택하고 객체 메뉴에서 새 연결 접미어를 선택할 수도 있습니다.
- 연결 하위 접미어의 경우 데이터 노드와 접미어 노드를 확장하여 부모 접미어를 표시합니다. 부모 접미어 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 새 연결 하위 접미어를 선택합니다. 또는 부모 접미어 노드를 선택하고 객체 메뉴에서 새 연결 하위 접미어를 선택할 수도 있습니다.
"새 연결 (하위) 접미어" 대화 상자가 표시됩니다.
- 연결할 원격 서버 항목의 DN을 입력합니다. 원격 항목이 원격 접미어의 기본 항목일 필요는 없습니다.
- 필요한 경우, 접미어 데이터가 저장된 원격 서버의 호스트 이름을 도메인과 함께 입력합니다.
- 원격 서버에 액세스하기 위한 포트 번호를 입력하고, 보안 포트인 경우 확인란을 선택합니다. 보안 포트를 사용하면 연결 작업이 SSL상에서 암호화됩니다. 자세한 내용은 SSL을 사용한 연결을 참조하십시오.
대화 상자 아래쪽에는 원격 서버의 전체 URL이 표시됩니다.
- 원격 서버에 지정된 프록시 아이디의 바인드 DN과 비밀번호를 입력합니다. 로컬 서버는 원격 서버에 있는 접미어 내용에 액세스할 때 이 DN을 프록시로 사용합니다. 예를 들어, 프록시 아이디 작성에서 정의한 uid=host1_proxy,cn=config DN을 사용합니다.
원격 서버의 디렉토리 관리자 DN은 사용할 수 없습니다. 연결 접미어를 통해 수행된 작업은 creatorsName 속성과 modifiersName 속성에 이 프록시 아이디를 사용합니다. 프록시 DN은 생략할 수 있으며, 이 경우에는 로컬 서버가 원격 서버에 액세스할 때 익명으로 바인드합니다.
- 확인을 눌러 연결 접미어를 작성합니다. 새 접미어가 연결 아이콘과 함께 구성 트리에 표시됩니다.
- 새 연결 접미어를 눌러 선택하고 오른쪽 패널에서 원격 서버 탭을 선택합니다.
- 선택 사항으로, 이 연결 접미어에 대한 페일오버 서버를 하나 이상 정의할 수도 있습니다. 원격 서버에 연결할 수 없는 경우 서버는 응답하는 서버가 나타날 때까지 페일오버 서버를 정의된 순서대로 하나씩 시도합니다. 페일오버 서버에는 원격 서버의 연결 접미어와 똑같은 접미어가 있어야 하며 프록시에 지정된 바인드 DN도 같아야 합니다.
페일오버 서버를 정의하려면 원격 서버 URL 필드에 다른 호스트 이름 및 포트 번호 쌍을 공백으로 구분하여 입력합니다. 필드 형식은 다음과 같습니다.
ldap[s]://hostname[:port][ hostname[:port]].../
- 원격 서버 탭의 아래쪽 텍스트 상자에 연결을 통한 프록시 작업을 허용하는 데 필요한 ACI가 표시됩니다. suffixDN에 해당하는 원격 서버 항목에 이 ACI를 추가해야 합니다. 페일오버 서버를 정의한 경우 페일오버 서버에도 ACI를 추가하십시오. ACI 복사 버튼을 사용하여 ACI 텍스트를 시스템 클립보드에 복사한 다음 붙여넣습니다.
원격 서버의 기본 항목에 ACI를 추가하면 로컬 서버의 디렉토리 트리에 연결 접미어가 표시됩니다.
주의
연결을 통해 공개된 원격 서버에 대한 액세스를 제한하기 위해 동일한 항목에 다른 ACI를 정의해야 할 수도 있습니다. 연결 접미어를 통한 액세스 제어를 참조하십시오.
- 서버 구성 요소에 대한 연결 정책을 구성한 경우 이 구성 요소가 원격 서버에 액세스할 수 있도록 허용하는 ACI도 추가해야 합니다. 예를 들어 참조 무결성 플러그 인의 연결을 허용할 경우 단계 2에서 지정한 DN의 기본 항목에 아래 ACI를 추가해야 합니다.
aci: (targetattr "*")
(target="ldap:///suffixDN")
(version 3.0; acl "RefInt Access for chaining"; allow
(read,write,search,compare) userdn = "ldap:///cn=referential
integrity postoperation,cn=plugins,cn=config";)명령줄에서 연결 접미어 작성
ldapmodify 명령줄 유틸리티를 사용하여 디렉토리에 연결 접미어를 작성할 수도 있습니다. 연결 루트 접미어와 연결 하위 접미어는 서버에서 똑같이 내부적으로 관리되기 때문에 명령줄에서 작성하는 절차도 거의 흡사합니다.
- 연결 루트 접미어의 경우 아래 명령을 실행하여 cn=mapping tree,cn=config에 연결 접미어 항목을 작성합니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=suffixDN,cn=mapping tree,cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsMappingTree
cn: suffixDN
nsslapd-state: backend
nsslapd-backend: databaseName
^D연결 하위 접미어의 경우 아래 속성만 추가하여 같은 명령을 사용합니다.
nsslapd-parent-suffix: parentSuffixDN연결 하위 접미어의 suffixDN에는 하위 접미어의 RDN과 부모 접미어의 DN이 포함됩니다(예: l=Europe,dc=example,dc=com). suffixDN은 원격 서버를 통해 사용할 수 있는 항목의 DN이어야 하지만 원격 접미어의 기본 항목일 필요는 없습니다.
접미어 이름은 DN 형식을 사용하지만 하나의 문자열로 처리됩니다. 따라서 모든 공백은 접미어 이름의 일부로 중요한 의미를 가집니다. 서버에서 원격 항목에 액세스하려면 원격 접미어에 사용된 공백까지 정확하게 suffixDN 문자열에 입력해야 합니다.
databaseName은 연결 플러그 인 구성 요소에서 이 연결 접미어를 식별하기 위해 사용합니다. 모든 접미어의 databaseName은 고유해야 하며, 관례상 suffixDN의 이름 지정 구성 요소 중에서 첫 구성 요소의 값입니다. 로컬 접미어와 달리 연결 접미어는 로컬 서버에 데이터베이스 파일을 저장하지 않습니다.
하위 접미어의 경우 parentSuffixDN은 부모 접미어의 DN과 정확하게 일치합니다. 부모는 로컬 접미어이거나 연결 접미어입니다.
- 아래 명령을 실행하여 연결 구성 항목을 작성합니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=databaseName,cn=chaining database,cn=plugins,cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsBackendInstance
cn: databaseName
nsslapd-suffix: suffixDN
nsfarmserverurl: LDAPURL
nsmultiplexorbinddn: proxyDN
nsmultiplexorcredentials: ProxyPassword
^D여기서 databaseName과 suffixDN은 이전 단계에서 사용한 값이어야 합니다. LDAPURL은 원격 서버의 URL이지만 접미어 정보는 포함되지 않습니다. 페일오버 서버가 아래 형식으로 URL에 열거될 수도 있습니다.
ldap[s]://hostname[:port][ hostname[:port]].../
LDAP URL에 열거된 모든 원격 서버에는 suffixDN이 있어야 합니다. 보안 포트 지정에 대한 자세한 내용은 SSL을 사용한 연결을 참조하십시오.
proxyDN은 원격 서버에 지정된 프록시 아이디의 DN입니다. 로컬 서버는 원격 서버에 있는 접미어 내용에 액세스할 때 이 DN을 프록시로 사용합니다. 연결 접미어를 통해 수행된 작업은 creatorsName 속성과 modifiersName 속성에 이 프록시 아이디를 사용합니다. 프록시 DN을 지정하지 않으면 로컬 서버는 원격 서버에 액세스할 때 익명으로 바인드합니다.
ProxyPassword는 프록시 DN의 암호화되지 않은 비밀번호 값으로, 비밀번호는 구성 파일에 저장될 때 암호화됩니다. 예를 들면 다음과 같습니다.
nsmultiplexorbinddn: uid=host1_proxy,cn=config
nsmultiplexorcredentials: secret
cn=default instance config,cn=chaining database,cn=plugins,cn=config의 기본값으로 설정된 모든 연결 매개 변수가 자동으로 새 항목에 포함됩니다. 연결 구성 항목을 작성할 때 다른 속성 값을 설정하여 이 값을 무시할 수 있습니다. 값을 정의할 수 있는 속성 목록은 기본 연결 매개 변수 설정을 참조하십시오.
- 아래 명령을 실행하여 원격 항목에 ACI를 작성합니다. 이 ACI는 연결을 통한 프록시 작업을 허용하는 데 필요합니다. ACI에 대한 자세한 내용은 6장, "액세스 제어 관리"를 참조하십시오.
ldapmodify -h host2 -p port2 -D "cn=Directory Manager" -w password2
dn: suffixDN
changetype: modify
add: aci
aci: (targetattr=*)(target = "ldap:///suffixDN")(version 3.0;acl
"Allows use of admin for chaining"; allow (proxy)
(userdn="ldap:///proxyDN");)
^D
주의
이 서버를 통해 공개된 원격 서버에 대한 액세스를 제한하기 위해 동일한 항목에 다른 ACI를 정의해야 할 수도 있습니다. 연결 접미어를 통한 액세스 제어를 참조하십시오.
- 서버 구성 요소에 대한 연결 정책을 구성한 경우 이 구성 요소가 원격 서버에 액세스할 수 있도록 허용하는 ACI도 추가해야 합니다. 예를 들어 참조 무결성 플러그 인의 연결을 허용할 경우 suffixDN에 해당하는 기본 항목에 아래 ACI를 추가해야 합니다.
aci: (targetattr "*")
(target="ldap:///suffixDN")
(version 3.0; acl "RefInt Access for chaining"; allow
(read,write,search,compare) userdn = "ldap:///cn=referential
integrity postoperation,cn=plugins,cn=config";)아래 명령은 연결 하위 접미어를 작성하는 예를 보여줍니다. suffixDN의 쉼표는 DN의 이름 지정 속성에 표시될 때만 역슬래시(\)로 이스케이프해야 합니다.
ldapmodify -a -h host1 -p port1 -D "cn=Directory Manager" -w password1
dn: cn=l=Europe\,dc=example\,dc=com,cn=mapping tree,cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsMappingTree
cn: l=Europe,dc=example,dc=com
nsslapd-state: backend
nsslapd-backend: Europe
nsslapd-parent-suffix: dc=example,dc=com
dn: cn=Europe,cn=chaining database,cn=plugins,cn=config
objectclass: top
objectclass: extensibleObject
objectclass: nsBackendInstance
cn: Europe
nsslapd-suffix: l=Europe,dc=example,dc=com
nsfarmserverurl: ldap://host2:port2/
nsmultiplexorbinddn: uid=host1_proxy,cn=config
nsmultiplexorcredentials: proxyPassword
^D
ldapmodify -h host2 -p port2 -D "cn=Directory Manager" -w password2
dn: l=Europe,dc=example,dc=com
changetype: modify
changetype: modify
aci: (targetattr=*)(target =
"ldap:///l=Europe,dc=example,dc=com")(version 3.0;acl
"Allows use of admin for chaining"; allow (proxy)
(userdn="ldap:///uid=host1_proxy,cn=config");)
^D연결 접미어를 통한 액세스 제어
인증된 사용자가 연결 접미어에 액세스하면 서버는 이 사용자의 아이디를 원격 서버로 보냅니다. 액세스 제어는 항상 원격 서버에서 평가됩니다. 원격 서버에서 평가되는 모든 LDAP 작업은 프록시 인증 제어를 통해 전달된 클라이언트 응용 프로그램의 원래 아이디를 사용합니다. 사용자에게 원격 서버의 하위 트리에 대한 올바른 액세스 제어가 있을 경우에만 원격 서버 작업이 제대로 수행됩니다. 따라서 다음과 같은 몇 가지 제한을 고려하여 원격 서버에 일반적인 액세스 제어를 추가할 필요가 있습니다.
연결 접미어에 사용할 ACI를 작성하는 경우 다음과 같은 제한이 적용됩니다.
액세스 제어는 항상 원격 서버에서 평가되지만 연결 접미어가 있는 서버와 원격 서버에서 모두 평가하도록 설정할 수도 있습니다. 이 경우 다음과 같은 여러 가지 제한이 따릅니다.
- 액세스 제어를 평가하는 동안 사용자 항목 내용을 사용하지 못할 수도 있습니다(예: 연결 접미어가 있는 서버에서 액세스 제어가 평가되고 원격 서버에 항목이 있는 경우).
성능상의 이유로 클라이언트는 원격 조회 및 액세스 제어 평가를 수행할 수 없습니다.
- 연결 접미어가 클라이언트 응용 프로그램에서 수정하는 항목에 액세스하지 못할 수도 있습니다.
수정 작업을 할 때 연결 접미어에는 원격 서버에 저장된 전체 항목에 대한 액세스 권한이 없습니다. 삭제 작업의 경우 연결 접미어에서 항목의 DN만 알기 때문에 액세스 제어에서 특정 속성을 지정하면 연결 접미어를 통한 삭제 작업이 제대로 수행되지 않습니다.
기본적으로 연결 접미어가 있는 서버에서 설정된 액세스 제어는 평가되지 않습니다. 이 기본값을 무시하려면 cn=databaseName,cn=chaining database,cn=plugins,cn=config 항목의 nsCheckLocalACI 속성을 사용합니다. 그러나 계단식 연결을 사용하는 경우가 아니면 연결 접미어가 있는 서버에서 액세스 제어를 평가하는 것은 바람직하지 않습니다. 자세한 내용은 계단식 연결 구성을 참조하십시오.
SSL을 사용한 연결
연결 접미어에 대한 작업을 수행할 때 SSL을 사용하여 원격 서버와 통신하도록 서버를 구성할 수 있습니다. SSL을 연결에 사용하려면 다음과 같은 단계를 수행해야 합니다.
- 원격 서버에서 SSL을 활성화합니다.
- 연결 접미어가 있는 서버에서 SSL을 활성화합니다.
SSL 활성화에 대한 자세한 내용은 11장, "인증 및 암호화 관리"를 참조하십시오.
- 연결 접미어를 작성 또는 수정하는 동안 SSL과 원격 서버의 보안 포트를 지정합니다.
콘솔을 사용하는 경우 연결 접미어를 작성 또는 구성하는 동안 보안 포트 확인란을 선택합니다. 콘솔에서 연결 접미어 작성 또는 콘솔에서 연결 정책 수정을 참조하십시오.
명령줄 절차를 사용하는 경우 LDAPS URL과 원격 서버의 보안 포트를 지정합니다. 예를 들어 ldaps://example.com:636/과 같이 입력합니다. 명령줄에서 연결 접미어 작성 또는 명령줄에서 연결 정책 수정을 참조하십시오.
연결 접미어와 원격 서버에서 SSL을 사용하여 통신하도록 구성한다고 해서 작업 요청을 하는 클라이언트 응용 프로그램도 SSL을 사용해야 하는 것은 아닙니다. 클라이언트는 LDAP 또는 DSML 프로토콜의 어떤 포트라도 사용할 수 있습니다.
연결 접미어 관리이 절에서는 기존의 연결 접미어를 업데이트 및 삭제하고 연결 기법을 제어하는 방법에 대해 설명합니다.
연결 정책 구성
서버의 연결 정책은 연결 서버에 전파할 LDAP 컨트롤 및 연결 접미어에 대한 액세스를 허용할 서버 구성 요소를 결정합니다. 이러한 설정과 각 설정이 연결 접미어에 대한 작업에 미치는 영향을 명확히 이해해야 합니다. 연결 정책은 서버에 있는 모든 연결 접미어에 적용됩니다.
기본 설정은 정상적인 작업이 투명하게 완료될 수 있도록 구성되었습니다. 그러나 LDAP 컨트롤이 필요한 작업이거나 참조 무결성 플러그 인과 같은 서버 구성 요소를 사용하는 경우 사용자 요구에 맞게 연결 정책을 구성해야 합니다.
연결 접미어를 작성하기 전에 먼저 연결 정책을 구성하여 연결 접미어가 활성화되면 즉시 정책이 적용될 수 있도록 하는 것이 가장 좋지만 나중에 정책을 수정할 수도 있습니다.
LDAP 컨트롤의 연결 정책
LDAP 컨트롤은 클라이언트에서 특정 방식으로 작업이나 결과를 수정하라고 요청할 때 이 요청의 일부로 전송됩니다. 서버 연결 정책은 작업과 더불어 서버에서 연결 접미어로 전달할 컨트롤을 결정합니다. 기본적으로 다음과 같은 컨트롤이 연결 접미어의 원격 서버로 전달됩니다.
표 3-1 기본적으로 연결이 허용되는 LDAP 컨트롤
컨트롤의 OID
컨트롤 이름 및 설명
1.2.840.113556.1.4.473
서버측 정렬 - 검색과 연결되어 결과로 표시된 항목을 해당 속성 값에 따라 정렬합니다.1
1.3.6.1.4.1.1466.29539.12
연결 루프 감지 - 서버에서 다른 서버와 연결하는 횟수를 추적합니다. 이 횟수가 지정된 값에 도달하면 작업이 중단되고 클라이언트 응용 프로그램에 이를 알려줍니다. 자세한 내용은 계단식 연결을 위한 LDAP 컨트롤 전송을 참조하십시오.
2.16.840.1.113730.3.4.2
스마트 참조의 관리된 DSA - 참조를 따르지 않고 스마트 참조를 항목으로 반환하므로 스마트 참조 자체를 변경하거나 삭제할 수 있습니다.
2.16.840.1.113730.3.4.9
가상 목록 보기(VLV) - 모든 결과 항목을 동시에 반환하지 않고 일부 검색 결과를 제공합니다.1
1서버측 정렬과 VLV 컨트롤은 검색 범위가 단일 접미어인 경우에만 연결에서 지원됩니다. 클라이언트 응용 프로그램이 여러 접미어에 요청하면 연결 접미어에서 VLV 컨트롤을 지원할 수 없습니다.
아래 표에는 연결 정책을 구성하여 연결에 허용할 수 있는 기타 LDAP 컨트롤이 열거되어 있습니다.
표 3-2 연결 가능한 LDAP 컨트롤
컨트롤의 OID
컨트롤 이름 및 설명
1.3.6.1.4.1.42.2.27.9.5.2
유효 권한 요청 받기 - 항목과 속성에 관한 액세스 권한 및 ACI 정보를 결과로 반환하도록 서버에 요청합니다.
2.16.840.1.113730.3.4.12
프록시 인증(이전 사양) - 클라이언트에서 요청 기간 동안 다른 항목의 아이디를 사용할 수 있게 합니다.1
2.16.840.1.113730.3.4.14
특정 데이터베이스에 대한 검색 - 검색 작업과 함께 사용되어 컨트롤에 지정된 데이터베이스에 대해 검색하도록 지정합니다.
2.16.840.1.113730.3.4.16
인증 요청 - 바인드 요청과 함께 제공되어 인증서를 바인드 응답으로 제공하도록 서버에 요청합니다.
2.16.840.1.113730.3.4.17
실제 속성만 요청 - 서버에서 가상 속성을 확인할 필요 없이 실제로 반환된 항목에 있는 속성만 반환하도록 지정합니다.
2.16.840.1.113730.3.4.18
프록시 인증(새 사양) - 클라이언트에서 요청 기간 동안 다른 아이디를 사용할 수 있게 합니다.1
2.16.840.1.113730.3.4.19
가상 속성만 요청 - 서버에서 서비스 기능의 역할 및 클래스에 의해 생성된 속성만 반환하도록 지정합니다.
1응용 프로그램은 두 컨트롤 중 하나를 프록시 인증에 사용할 수 있습니다. 두 OID에 대한 연결 정책은 같아야 합니다. 자세한 내용은 계단식 연결을 위한 LDAP 컨트롤 전송을 참조하십시오.
서버 구성 요소의 연결 정책
구성 요소는 내부 작업을 사용하는 서버의 모든 기능 또는 기능 단위입니다. 예를 들어 플러그 인도 구성 요소로 간주됩니다. 대부분의 구성 요소는 작업을 수행하기 위해 디렉토리에 저장된 구성 데이터 또는 사용자 데이터 중 하나인 디렉토리 내용에 액세스해야 합니다.
기본적으로 서버 구성 요소는 연결이 허용되지 않습니다. 서버 구성 요소에서 연결 접미어에 액세스할 수 있게 하려면 명시적으로 연결을 허용해야 합니다. 연결 데이터에 액세스할 수 있는 구성 요소는 아래에 해당 DN으로 열거되어 있습니다.
콘솔에서 연결 접미어 작성에 설명된 것처럼 원격 서버에서 ACI에 특정 권한을 부여하여 연결을 허용해야 합니다. 서버 구성 요소를 연결하는 경우 이 ACI에서 검색, 읽기 및 비교를 허용해야만 서버 구성 요소에서 이러한 작업을 수행할 수 있습니다. 목록에 설명된 것처럼 원격 서버에 대한 쓰기 권한이 필요한 구성 요소도 있습니다.
- cn=ACL Plugin,cn=plugins,cn=config - ACL 플러그 인은 액세스 제어 기능을 구현합니다. 로컬 및 원격 ACI 속성을 혼합하는 것은 안전하지 않으므로 ACI 속성을 검색 및 업데이트하는 작업은 연결되지 않습니다. 하지만 사용자 항목에 액세스하기 위한 요청은 연결할 수 있습니다. ACI 및 연결 제한에 대한 자세한 내용은 ACI 제한을 참조하십시오.
- cn=old plugin,cn=plugins,cn=config - 이 플러그 인은 모든 Directory Server 4.x 플러그 인과 각각의 연결 허용 여부를 나타냅니다. 4.x 플러그 인은 모두 같은 연결 정책을 사용합니다. 4.x 플러그 인에서 수행한 작업에 따라 원격 서버의 ACI를 설정해야 할 수도 있습니다.
- cn=resource limits,cn=components,cn=config - 이 구성 요소는 사용자 바인드 DN에 따라 자원 사용 제한을 설정합니다. 이 구성 요소의 연결이 허용되면 연결 접미어에 아이디가 저장되어 있는 사용자에 대해 자원 제한을 실행할 수 있습니다.
- cn=certificate-based authentication,cn=components,cn=config - 이 구성 요소는 SASL 외부 바인드 방법과 함께 사용되며 원격 서버에서 사용자 인증서를 검색합니다.
주의
연결 접미어에서 인증서 기반의 인증을 허용하면 보안 허점이 생길 수 있습니다. 다른 접미어가 신뢰할 수 없는 원격 서버에 연결되어 있으면 신뢰할 수 없는 서버의 인증서가 인증에 사용될 수 있습니다.
- cn=referential integrity postoperation,cn=plugins,cn=config - 이 플러그 인을 사용하면 항목이 제거될 경우 해당 DN을 참조하는 다른 항목(예: 그룹 구성원 목록)으로 이 작업이 전파됩니다. 그룹 구성원이 연결 접미어에 있으면 이 플러그 인을 연결에 사용하여 정적 그룹의 관리를 간소화할 수 있습니다. 이 플러그 인은 원격 서버에 대한 쓰기 권한이 있어야만 연결 접미어에 액세스할 수 있습니다.
- cn=uid uniqueness,cn=plugins,cn=config - UID 고유성 플러그 인은 지정된 속성의 모든 새 속성 값이 서버에서 고유하도록 제어합니다. 이 플러그 인의 연결을 허용하면 전체 디렉토리 트리에서 고유성이 보장됩니다.
콘솔에서 연결 정책 수정
- Directory Server 콘솔의 구성 탭에서 데이터 노드를 선택하고 오른쪽 패널에서 연결 탭을 선택합니다.
- 오른쪽 목록에서 LDAP 컨트롤을 하나 이상 선택하고 추가를 눌러 연결을 허용합니다. 추가 및 삭제 버튼을 사용하여 연결을 허용할 컨트롤 목록을 작성합니다.
LDAP 컨트롤은 해당 OID로 표시됩니다. 각 컨트롤의 이름과 자세한 설명은 LDAP 컨트롤의 연결 정책을 참조하십시오.
- 동일한 탭의 아래쪽에 연결이 허용되는 서버 구성 요소가 표시됩니다. 오른쪽 목록에서 구성 요소 이름을 하나 이상 선택하고 추가를 눌러 연결을 허용합니다. 추가 및 삭제 버튼을 사용하여 연결을 허용할 구성 요소 목록을 작성합니다.
각 구성 요소에 대한 자세한 내용은 서버 구성 요소의 연결 정책을 참조하십시오.
- 저장을 눌러 연결 정책을 저장합니다.
- 서버를 다시 시작하여 변경 사항을 적용합니다.
명령줄에서 연결 정책 수정
cn=config,cn=chaining database,cn=plugins,cn=config 항목에는 연결 정책 구성의 속성이 포함되어 있습니다. 이 항목을 편집하려면 ldapmodify 명령을 사용합니다.
- 여러 값을 갖는 nsTransmittedControls 속성에 연결을 허용할 모든 LDAP 컨트롤의 OID가 포함되도록 수정합니다. 연결할 수 있는 모든 컨트롤의 OID는 LDAP 컨트롤의 연결 정책을 참조하십시오.
예를 들어 아래 명령은 연결 컨트롤 목록에 효과적인 권한 제어를 추가합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=config,cn=chaining database,cn=plugins,cn=config
changetype: modify
add: nsTransmittedControls
nsTransmittedControls: 1.3.6.1.4.1.42.2.27.9.5.2
^D클라이언트 응용 프로그램에서 사용자 정의 컨트롤을 사용하는 경우 이 컨트롤의 연결을 허용하기 위해 해당 OID를 nsTransmittedControls 속성에 추가할 수도 있습니다.
- 연결을 허용할 모든 서버 구성 요소의 DN이 여러 값을 갖는 nsActiveChainingComponents 속성에 포함되도록 속성을 수정합니다. 각 구성 요소에 대한 자세한 내용은 서버 구성 요소의 연결 정책을 참조하십시오.
예를 들어 아래 명령은 연결 구성 요소 목록에 참조 무결성 구성 요소를 추가합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=config,cn=chaining database,cn=plugins,cn=config
changetype: modify
add: nsActiveChainingComponents
nsActiveChainingComponents: cn=referential integrity
postoperation,cn=components,cn=config
^D- 연결 정책 구성 항목의 수정이 끝나면 서버를 다시 시작하여 변경 사항을 적용해야 합니다.
연결 접미어 비활성화 또는 활성화
유지 관리나 보안를 위해 연결 접미어를 비활성화해야 하는 경우가 있습니다. 접미어를 비활성화하면 서버는 접미어에 액세스하는 클라이언트 작업에 응답하여 원격 서버에 연결할 수 없습니다. 기본 참조가 정의되어 있으면 클라이언트가 비활성화된 접미어에 액세스할 때 해당 참조가 반환됩니다.
콘솔에서 연결 접미어 비활성화 또는 활성화
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 비활성화할 연결 접미어를 선택합니다.
- 오른쪽 패널에서 설정 탭을 선택합니다. 작성된 모든 연결 접미어는 기본적으로 활성화됩니다.
- 접미어를 비활성화하려면 "이 접미어에 대한 액세스를 가능하게 합니다" 확인란을 선택 취소하고 접미어를 활성화하려면 확인란을 선택합니다.
- 저장을 눌러 변경 사항을 적용하면 접미어가 즉시 비활성화 또는 활성화됩니다.
- 선택 사항으로, 접미어가 비활성화될 경우 이 접미어에 대한 모든 작업에 반환할 전역 기본 참조를 설정할 수도 있습니다. 이 설정은 최상위 구성 탭에서 루트 노드의 네트워크 탭에 있습니다. 자세한 내용은 콘솔에서 기본 참조 설정을 참조하십시오.
명령줄에서 접미어 비활성화 또는 활성화
- 아래 명령을 실행하여 연결 접미어 항목의 nsslapd-state 속성을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=suffixDN,cn=mapping tree,cn=config
changetype: modify
replace: nsslapd-state
nsslapd-state: disabled or backend
^D여기서 suffixDN은 정의된 바와 같이 접미어 DN의 전체 문자열이며, 값에 쉼표가 있을 때 이스케이프하는 역슬래시(\)나 공백을 포함합니다. 접미어를 비활성화하려면 nsslapd-state 속성을 disabled 값으로 설정하고 전체 액세스 권한을 허용하려면 backend 값으로 설정합니다.
명령이 성공하면 접미어가 즉시 비활성화됩니다.
- 선택 사항으로, 접미어가 비활성화될 경우 이 접미어에 대한 모든 작업에 반환할 전역 기본 참조를 설정할 수도 있습니다. 자세한 내용은 명령줄에서 기본 참조 설정을 참조하십시오.
액세스 권한 및 참조 설정
연결 접미어를 완전히 비활성화하지 않고 액세스를 제한하려면 읽기 전용 액세스를 허용하도록 액세스 권한을 수정할 수 있습니다. 이 경우 쓰기 작업을 위해 다른 서버에 대한 참조를 정의해야 합니다. 읽기 및 쓰기 액세스를 모두 거부하고 접미어에 대한 모든 작업에 반환할 참조를 정의할 수도 있습니다.
연결에 대한 일반적인 내용은 Directory Server Deployment Planning Guide의 5장, “Distribution, Chaining, and Referrals”를 참조하십시오.
콘솔에서 액세스 권한 및 참조 설정
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 참조를 설정할 연결 접미어를 선택합니다.
- 오른쪽 패널에서 설정 탭을 선택합니다. 연결 접미어를 활성화한 경우에만 권한과 참조를 설정할 수 있습니다.
- 다음 라디오 버튼 중 하나를 선택하여 이 접미어 항목에 대한 모든 쓰기 작업에 반환할 응답을 설정합니다.
- 쓰기와 읽기 요청을 처리합니다 - 기본적으로 이 라디오 버튼이 선택되며 정상적인 동작을 나타냅니다. 읽기와 쓰기 작업이 모두 원격 서버로 전달되고 그 결과가 클라이언트로 반환됩니다. 참조도 정의할 수 있지만 클라이언트로 반환되지는 않습니다.
- 읽기 요청을 처리하고 쓰기 요청에 대한 참조를 반환합니다 - 서버에서 읽기 요청만 전달하고 그 결과를 클라이언트로 반환합니다. 쓰기 요청에 대한 참조로 반환할 LDAP URL을 목록에 하나 이상 입력합니다.
- 읽기와 쓰기 요청 모두에 대한 참조를 반환합니다 - 모든 작업에 대한 참조로 반환할 LDAP URL을 목록에 하나 이상 입력합니다. 전역 기본 참조를 사용하지 않고 특별히 이 접미어에 대한 참조를 정의할 수 있다는 점을 제외하면 이 동작은 접미어에 대한 액세스를 비활성화하는 것과 유사합니다.
- 추가 및 제거 버튼을 사용하여 참조 목록을 편집합니다. 추가 버튼을 누르면 새 참조의 LDAP URL을 작성할 수 있는 대화 상자가 표시됩니다. 원격 서버 분기의 DN에 대한 참조를 작성할 수도 있습니다. LDAP URL의 구조에 대한 자세한 내용은 Directory Server Administration Reference의 6장, LDAP URL Reference를 참조하십시오.
여러 개의 참조를 입력할 수 있습니다. 디렉토리는 클라이언트 응용 프로그램의 요청에 응답하여 이 목록에 있는 모든 참조를 반환합니다.
- 저장을 눌러 변경 사항을 적용하면 새로운 권한 및 참조 설정이 즉시 실행됩니다.
콘솔에서 액세스 권한 및 참조 설정
아래 명령에서 suffixDN은 정의된 바와 같이 공백까지 포함하는 연결 접미어의 전체 문자열입니다. LDAPURL은 아래 예와 같이 대상의 호스트 이름, 포트 번호 및 DN이 포함된 유효한 URL입니다.
ldap://alternate.example.com:389/ou=People,dc=example,dc=com
- 아래 명령을 실행하여 연결 접미어 항목을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=suffixDN,cn=mapping tree,cn=config
changetype: modify
replace: nsslapd-state
nsslapd-state: referral on update or referral
-
add: nsslapd-referral
nsslapd-referral: LDAPURL
^D마지막 변경 명령문을 반복하여 다른 LDAP URL을 nsslapd-referral 속성에 원하는 대로 추가할 수도 있습니다.
nsslapd-state 속성 값이 referral on update이면 접미어는 읽기 전용으로 설정되고 쓰기 작업에 대한 참조로 모든 LDAP URL이 반환됩니다. 속성 값이 referral이면 읽기와 쓰기 작업이 모두 거부되고 모든 요청에 대해 참조가 반환됩니다.
- 명령이 성공하면 접미어가 즉시 읽기 전용으로 설정되거나 액세스할 수 없게 되고 참조를 반환할 수 있습니다.
연결 매개 변수 수정
연결 접미어가 정의되면 연결을 제어하는 매개 변수를 수정할 수 있습니다. 원격 서버에 액세스하는 방법을 지정하거나 프록시에 사용된 DN을 변경할 수 있으며 원격 서버를 변경할 수도 있습니다. 또한 서버의 연결 서버와의 연결 및 유지 관리를 제어하는 성능 매개 변수를 수정할 수 있습니다.
콘솔에서 연결 매개 변수 수정
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 수정할 연결 접미어를 선택합니다.
- 오른쪽 패널에서 원격 서버 탭을 선택합니다.
- 원격 서버의 이름이나 포트를 변경하려면 원격 서버 URL 필드를 수정합니다. URL에는 원격 서버 하나 이상의 호스트 이름과 포트 번호(선택 사항)가 아래 형식으로 포함되어 있습니다.
ldap[s]://hostname[:port][ hostname[:port]].../
이 URL에 접미어 정보는 포함되지 않습니다. 보안 포트 지정에 대한 자세한 내용은 SSL을 사용한 연결을 참조하십시오. 첫 서버가 연결 요청에 응답하지 않으면 URL에 표시된 순서대로 각 서버에 연결합니다. LDAP URL에 열거된 모든 원격 서버에는 연결 접미어의 기본 항목인 suffixDN이 있어야 합니다.
- 프록시 사용자의 DN을 변경하려면 바인드 DN 필드에 새 값을 입력합니다. 이 DN에 해당하는 비밀번호를 비밀번호 필드에 입력하고 다시 확인합니다.
proxyDN은 원격 서버 사용자의 DN입니다. 로컬 서버는 원격 서버에 있는 접미어 내용에 액세스할 때 이 DN을 프록시로 사용합니다. 연결 접미어를 통해 수행된 작업은 creatorsName 속성과 modifiersName 속성에 이 프록시 아이디를 사용합니다. 프록시 DN을 지정하지 않으면 로컬 서버는 원격 서버에 액세스할 때 익명으로 바인드합니다.
- 탭 아래쪽의 텍스트 상자에 이 접미어의 연결을 허용하는 데 필요한 ACI가 표시됩니다. 원격 서버 URL을 변경한 경우 새 원격 서버에서 suffixDN에 해당하는 항목에 이 ACI를 추가해야 합니다. 프록시 DN을 수정한 경우에는 모든 연결 서버에서 ACI를 업데이트해야 합니다. ACI 복사 버튼을 사용하여 ACI 텍스트를 시스템 클립보드에 복사한 다음 붙여넣습니다.
- 제한 및 제어 탭을 선택하여 연결 요청에 대한 매개 변수를 구성합니다. 계단식 연결 매개 변수에 대해서는 계단식 연결 구성에서 설명합니다.
- 클라이언트 반환 제어 매개 변수를 설정하여 연결 작업의 크기와 시간을 제한합니다.
- 범위 검색에서 참조 반환 - 검색 범위가 연결 접미어로만 제한되는 검색은 결과가 두 번 전송되기 때문에 비효율적입니다. 기본적으로 서버는 참조를 연결 서버로 반환하여 클라이언트가 연결 서버에서 직접 검색하도록 강제합니다. 이 옵션을 선택 취소하는 경우 다음과 같은 매개 변수를 설정하여 연결할 결과의 크기를 제한해야 합니다.
- 크기 제한 또는 크기 제한 없음 - 이 매개 변수는 연결 검색 작업에 응답하여 반환할 항목 수를 지정합니다. 기본 크기 제한은 2000개입니다. 연결 접미어에 대한 광범위한 검색을 제한하려면 이 매개 변수 값을 낮게 설정하십시오. 항상 원격 서버의 크기 설정에 따라 작업이 제한됩니다.
- 시간 제한 또는 시간 제한 없음 - 이 매개 변수는 연결 작업 시간을 제어합니다. 기본 시간 제한은 3600초(1시간)입니다. 연결 접미어에 대한 작업 시간을 제한하려면 이 매개 변수 값을 낮게 설정하십시오. 항상 원격 서버의 시간 설정에 따라 작업이 제한됩니다.
- 연결 관리 매개 변수를 설정하여 서버에서 네트워크 연결 및 원격 서버와의 바인드를 관리하는 방법을 제어합니다.
- 최대 LDAP 연결 수. 연결 접미어와 원격 서버 사이에 구성할 수 있는 동시 LDAP 작업 연결의 최대 개수입니다. 기본값은 10개입니다.
- 최대 바인드 연결 수. 연결 접미어와 원격 서버 간에 구성할 수 있는 최대 동시 바인드 연결 수입니다. 기본값은 3개입니다.
- 연결 당 최대 바인드 수. LDAP 연결 당 동시에 허용되는 최대 바인드 작업 수입니다. 기본값은 연결 당 아직 해결되지 않은 바인드 작업 10개입니다.
- 최대 바인드 다시 시도 횟수. 오류 시 연결 접미어가 원격 서버로 재바인드를 시도하는 횟수입니다. 값을 0으로 설정하면 연결 접미어는 바인드를 한 번만 시도합니다. 기본값은 3회입니다.
- 연결 당 최대 작업 수. LDAP 연결 당 동시에 허용되는 최대 작업 수입니다. 기본값은 연결 당 10개입니다.
- 바인드 시간 초과 또는 바인드 시간 초과 없음. 연결 접미어에 대한 바인드 시도가 시간 초과될 때까지의 시간(초)입니다. 기본값은 15초입니다.
- 중단 전 시간 초과 또는 중단 전 시간 초과 없음. 서버에서 작업 중단 여부를 확인할 때까지의 시간(초)입니다. 기본값은 2초입니다.
- 연결 수명(초) 또는 수명 제한 없음. 연결 접미어와 원격 서버간의 연결을 다시 사용할 수 있도록 열어 두는 시간입니다. 연결을 열어 두면 속도는 더 빠르지만 많은 자원이 사용됩니다. 예를 들어, 전화 접속 연결을 사용하는 경우 연결 시간을 제한하는 것이 좋습니다. 기본적으로 연결 수명은 제한되지 않습니다.
오류 감지 매개 변수는 콘솔에서 사용할 수 없습니다. 명령줄에서 연결 매개 변수 수정을 참조하십시오.
- 연결 매개 변수가 모두 설정되면 저장을 누릅니다.
명령줄에서 연결 매개 변수 수정
명령줄을 사용하면 콘솔에서 설정 가능한 모든 매개 변수는 물론, 오류 감지 매개 변수에 설명된 추가 매개 변수까지 구성할 수 있습니다.
- 아래 명령을 실행하여 수정할 접미어에 해당하는 연결 구성 항목을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=databaseName,cn=chaining database,cn=plugins,cn=config
changetype: modify
replace: attributeName
attributeName: attributeValue
-
replace: attributeName2
attributeName2: attributeValue2
...
^D사용할 수 있는 속성 이름과 값에 대해서는 이후 단계에서 설명합니다. 한 명령에 여러 개의 변경 명령문을 사용하여 많은 매개 변수를 동시에 변경할 수도 있습니다.
- nsfarmserverURL 속성을 수정하여 원격 서버의 이름 또는 포트를 변경합니다. 속성 값은 하나 이상의 원격 서버 호스트 이름과 포트 번호(선택 사항)가 아래 형식으로 포함되어 있는 URL입니다.
ldap[s]://hostname[:port][ hostname[:port]].../
이 URL에 접미어 정보는 포함되지 않습니다. 보안 포트 지정에 대한 자세한 내용은 SSL을 사용한 연결을 참조하십시오. 첫 서버가 연결 요청에 응답하지 않으면 URL에 표시된 순서대로 각 서버에 연결합니다. LDAP URL에 열거된 모든 원격 서버에는 연결 접미어의 기본 항목인 suffixDN이 있어야 합니다.
- nsmultiplexorBindDN 속성과 nsmultiplexorCredentials 속성을 수정하여 원격 서버에 대한 프록시 액세스에 사용된 DN을 변경합니다.
로컬 서버는 원격 서버에 있는 접미어 내용에 액세스할 때 이 DN을 프록시로 사용합니다. 연결 접미어를 통해 수행된 작업은 creatorsName 속성과 modifiersName 속성에 이 프록시 아이디를 사용합니다. 프록시 DN을 지정하지 않으면 로컬 서버는 원격 서버에 액세스할 때 익명으로 바인드합니다.
- 프록시 DN이나 자격 증명을 수정한 경우 아래 명령을 실행하여 원격 서버에 해당 ACI를 작성해야 합니다. 이 ACI는 연결을 통한 프록시 작업을 허용하는 데 필요합니다.
ldapmodify -h host2 -p port2 -D "cn=Directory Manager" -w password2
dn: suffixDN
changetype: modify
add: aci
aci: (targetattr=*)(target = "ldap:///suffixDN")(version 3.0;acl
"Allows use of admin for chaining"; allow (proxy)
(userdn="ldap:///proxyDN");)
^D- 기본 연결 매개 변수 설정에 설명된 속성을 설정하여 원격 서버의 연결 및 작업 처리를 제어합니다. 계단식 매개 변수에 대해서는 계단식 연결 구성에서 자세히 설명합니다.
스레드 사용 최적화
연결에 사용된 스레드 자원을 고려하여 서버에서 전역으로 사용되는 스레드 수를 설정할 수도 있습니다. 연결 작업은 원격 서버로 전달되어야 하기 때문에 오랜 시간이 소요될 수 있으며, 원격 서버에서 작업을 처리하는 동안 해당 스레드는 유휴 상태로 있습니다. 연결 서버에서 지연이 증가하면 이 시간 동안 더 많은 스레드가 로컬 작업 처리에 사용될 수 있도록 전역 스레드 수를 늘려야 합니다.
기본적으로 서버에서 사용되는 스레드 수는 30개입니다. 그러나 연결 접미어를 사용하는 경우 작업 처리에 사용할 수 있는 스레드 수를 늘려 성능을 향상시킬 수 있습니다. 필요한 스레드 수는 연결 접미어 개수, 연결 접미어에 대한 작업 유형, 원격 서버의 평균 작업 처리 시간 등에 따라 결정됩니다.
일반적으로 로컬 접미어 개수만큼 연결 접미어에 대한 작업이 구성된다고 가정하여 연결 접미어 당 스레드 수를 5 -10개 정도 늘려야 합니다.
콘솔에서 스레드 자원 설정
명령줄에서 스레드 자원 설정
연결 접미어 삭제
연결 접미어를 삭제하면 로컬 디렉토리 트리에서 해당 접미어를 액세스할 수 없지만 연결 서버에 있는 항목이나 접미어는 삭제되지 않습니다. 디렉토리에서 부모 접미어만 삭제하고 해당 하위 접미어를 새로운 루트 접미어로 유지할 수도 있습니다.
콘솔에서 연결 접미어 삭제
- Directory Server 콘솔의 구성 탭에서 데이터 노드를 확장합니다.
- 제거할 접미어를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 삭제를 선택합니다.
또는 접미어 노드를 선택하고 객체 메뉴에서 삭제를 선택할 수도 있습니다.
- 이 연결 접미어를 통해 액세스할 수 있는 항목은 원격 디렉토리에서 제거되지 않는다고 알려주는 확인 대화 상자가 표시됩니다.
부모 접미어의 경우 모든 하위 접미어를 재귀적으로 삭제할 수 있습니다. 전체 분기를 제거하려면 "이 접미어와 해당 하위 접미어를 모두 삭제합니다"를 선택합니다. 디렉토리에서 특정 접미어만 제거하고 해당 하위 접미어를 그대로 유지하려면 "이 접미어만 삭제합니다"를 선택합니다.
- 확인을 눌러 접미어를 삭제합니다.
콘솔의 작업 완료 상황을 단계별로 보여주는 진행률 대화 상자가 표시됩니다.
명령줄에서 접미어 삭제
명령줄에서 접미어를 삭제하려면 ldapdelete 명령을 사용하여 해당 구성 항목을 디렉토리에서 제거합니다.
하위 접미어를 포함한 전체 분기를 삭제하려면 삭제된 부모의 하위 접미어를 찾아서 각 하위 접미어 및 해당 하위 접미어에 대해 같은 절차를 반복해야 합니다.
- 아래 명령을 실행하여 접미어 구성 항목을 제거합니다.
ldapdelete -h host -p port -D "cn=Directory Manager" -w password
cn=suffixDN,cn=mapping tree,cn=config이 명령을 실행하면 연결 접미어와 해당 원격 항목이 더 이상 디렉토리에 표시되지 않습니다.
- 아래 명령을 실행하여 cn=databaseName,cn=chaining database,cn=plugins,cn=config에 있는 해당 데이터베이스 구성 항목과 하위 모니터 항목을 제거합니다.
ldapdelete -h host -p port -D "cn=Directory Manager" -w password
cn=monitor,cn=dbName,cn=chaining database,cn=plugins,cn=config
cn=dbName,cn=chaining database,cn=plugins,cn=config
계단식 연결 구성계단식 연결의 경우 특정 서버로부터 연결된 하위 트리 자체가 연결 접미어이거나 연결 하위 접미어를 포함할 수 있습니다. 특정 서버의 연결 접미어가 작업에 사용되면 이 작업은 중간 서버로 전달되고, 다시 이 서버가 세 번째 서버에 연결합니다. 계단식 연결은 디렉토리 트리의 모든 데이터를 액세스하기 위해 서버간의 홉이 두 번 이상 필요한 경우에 발생합니다.
예를 들어 아래 다이어그램은 ou=People,l=Europe,dc=example,dc=com 항목에 대한 액세스가 어떻게 서버 A에서 서버 B로 연결되었다가 다시 서버 C로 연결되는지 보여줍니다. 서버 A에는 루트 접미어 dc=example,dc=com이 있으며 l=Europe,dc=example,dc=com 분기에 서버 B에 대한 연결 하위 접미어가 있습니다. 서버 B에는 항목 l=Europe,dc=example,dc=com이 포함되지만, 분기 ou=People,l=Europe,dc=example,dc=com은 서버 C에 대한 연결 하위 접미어입니다. 서버 C에 항목 ou=People,l=Europe,dc=example,dc=com이 실제로 포함됩니다.
그림 3-1 3대의 서버를 사용한 계단식 연결
계단식 매개 변수 설정
계단식 연결에서는 다음 두 개의 연결 매개 변수를 구성해야 합니다.
콘솔에서 계단식 매개 변수 설정
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 수정할 연결 접미어를 선택합니다.
- 오른쪽 패널에서 계단식 연결 매개 변수를 수정할 수 있는 제한 및 제어 탭을 선택합니다.
- 계단식 연결의 모든 중간 서버에서 로컬 ACI 확인 확인란을 선택합니다.
사용자의 액세스 권한은 첫 번째 서버에서 평가되지 않고 프록시를 통해 두 번째 서버에서 평가되기 때문에 단일 수준 연결에서는 이 확인란을 선택하지 않습니다. 하지만 계단식 연결의 중간 서버에서는 작업을 다시 전달하기 전에 액세스 제어를 수행하도록 ACI 확인 기능을 사용해야 합니다.
- 계단식 연결의 모든 서버에서 토폴로지의 모든 연결 작업에 허용되는 최대 홉 수를 설정합니다. 같은 작업이 다른 연결 접미어로 전달될 때마다 홉 수가 하나씩 가산되며, 이 제한에 도달할 경우 연결 접미어는 더 이상 작업을 전달하지 않습니다.
가장 긴 계단식 연결의 홉 수보다 큰 수를 설정해야 합니다. 제한에 도달할 경우 서버에서 토폴로지에 잘못된 루프가 있다고 가정하기 때문에 해당 작업이 중단됩니다.
또한, 계단식 연결을 위한 LDAP 컨트롤 전송에 설명된 것처럼 연결 구성에서 루프 감지 제어를 허용하도록 설정해야 합니다.
- 계단식 매개 변수가 모두 설정되면 저장을 누릅니다.
명령줄에서 계단식 매개 변수 설정
- 모든 중간 서버에서 아래 명령을 실행하여 계단식 접미어에 대한 연결 구성 항목을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=databaseName,cn=chaining database,cn=plugins,cn=config
changetype: modify
replace: nsCheckLocalACI
nsCheckLocalACI: on
-
changetype: modify
replace: nsHopLimit
nsHopLimit: maximumHops
^DmaximumHops를 가장 긴 계단식 연결의 홉 수보다 큰 값으로 설정해야 합니다. 제한에 도달할 경우 서버에서 토폴로지에 잘못된 루프가 있다고 가정하기 때문에 해당 작업이 중단됩니다. 또한 계단식 연결을 위한 LDAP 컨트롤 전송에 설명된 것처럼 연결 구성에서 루프 감지 제어를 허용하도록 설정해야 합니다.
- 계단식 연결의 다른 모든 서버에서 아래 명령을 실행하여 계단식 접미어에 대한 연결 구성 항목을 편집합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=databaseName,cn=chaining database,cn=plugins,cn=config
replace: nsHopLimit
nsHopLimit: maximumHops
^D여기서 maximumHops의 정의는 이전 단계의 정의와 같습니다.
계단식 연결을 위한 LDAP 컨트롤 전송
기본적으로 연결 접미어는 프록시 인증 컨트롤을 전송하지 않습니다. 그러나 연결 접미어가 다른 연결 접미어에 연결하는 경우 이 컨트롤을 사용하여 원격 서버의 액세스 제어에 필요한 사용자 인증을 전송해야 합니다. 중간 연결 접미어도 이 컨트롤의 연결을 허용해야 합니다.
프록시 인증 컨트롤에 대한 두 번째 프로토콜이 최근에 정의되었습니다. 서버 버전이 틀리면 사용되는 컨트롤도 다를 수 있으므로 모든 계단식 서버에서 이전 프록시 인증 컨트롤과 새로운 프록시 인증 컨트롤의 연결을 모두 허용하도록 구성해야 합니다.
또한, 계단식 연결 중에 루프를 방지하려면 루프 감지 컨트롤이 필요합니다. 기본적으로 이 컨트롤은 연결 작업과 함께 전달되지만 만약을 위해 구성을 확인해야 합니다. 서버에서 이 컨트롤의 연결을 허용하지 않으면 해당 서버와 관련된 모든 루프는 감지되지 않습니다.
연결 정책 구성에 설명된 단계에 따라 다음 세 가지 컨트롤의 연결이 허용되는지 확인합니다.