|
|
| Sun ONE Directory Server 관리 설명서 |
14장 PTA(Pass-Through Authentication)
플러그 인 사용PTA(Pass-Through Authentication)는 한 디렉토리 서버에서 다른 디렉토리 서버를 참조하여 바인드 요청을 인증하는 메커니즘입니다. 디렉토리 서버는 PTA 플러그 인의 기능을 사용하여 로컬 접미사에 저장되지 않은 항목에 대한 단순한 바인드 작업(암호 기반)을 허용할 수 있습니다.
Sun ONE Directory Server 5.2에서는 PTA를 사용하여 Directory Server의 여러 인스턴스에 있는 사용자 및 구성 디렉토리를 관리할 수 있습니다.
주 한 개의 서버를 사용자 디렉토리 및 구성 디렉토리에 모두 사용하는 경우에는 Directory Server 콘솔에 PTA 플러그 인이 표시되지 않지만 새로 작성하여 PTA를 사용할 수 있습니다.
이 장의 다음 절에서는 PTA 플러그 인에 대해 설명합니다.
Directory Server의 PTA 사용 방법
Directory Server의 각 인스턴스에 구성 디렉토리와 사용자 디렉토리를 따로 설치하면 설치 프로그램이 자동으로 PTA를 설정하여 구성 관리자 사용자(일반적으로 admin)가 관리 업무를 수행할 수 있도록 허용합니다.
이 경우 admin 사용자 항목이 구성 디렉토리의 o=NetscapeRoot에 저장되기 때문에 PTA가 필요하며 admin으로 사용자 디렉토리에 바인드를 시도하면 일반적으로 실패하게 됩니다. PTA를 통해 사용자 디렉토리는 자격 증명을 구성 디렉토리로 전송하여 확인 받을 수 있으며, 이 확인 결과에 따라 admin 사용자의 바인드를 허용합니다.
이 예제에서 사용자 디렉토리는 PTA 서버, 즉 바인드 요청을 다른 디렉토리 서버로 전달하는 서버 역할을 합니다. 구성 디렉토리는 인증 서버, 즉 항목이 포함되어 있으며 요청하는 클라이언트의 바인드 자격 증명을 확인하는 서버 역할을 합니다.
이 장에서는 PTA 하위 트리란 용어도 사용합니다. PTA 하위 트리는 PTA 서버에 존재하지 않는 하위 트리입니다. 사용자의 바인드 DN에 이 하위 트리가 포함되어 있으면 사용자 자격 증명은 인증 디렉토리로 전달됩니다.
아래의 단계 시퀀스는 PTA가 어떻게 작동하는지 보여줍니다.
- PTA 하위 트리 o=NetscapeRoot가 포함된 구성 디렉토리 서버(인증 디렉토리)를 configdir.example.com 호스트에 설치합니다.
- dc=example,dc=com 접미사의 데이터가 포함된 사용자 디렉토리 서버(PTA 디렉토리)를 userdir.example.com 호스트에 설치합니다.
- 사용자 디렉토리 설치 중에 구성 디렉토리 서버를 가리키는 LDAP URL을 지정하라는 메시지가 표시됩니다. 예를 들면 다음과 같습니다.
ldap://configdir.example.com/o=NetscapeRoot
- 설치 프로그램이 지정된 LDAP URL을 사용하여 사용자 디렉토리에 PTA 플러그 인을 구성 및 활성화합니다.
이제 사용자 디렉토리가 PTA 디렉토리로 구성되어 o=NetscapeRoot가 포함된 DN을 가진 항목에 대한 모든 바인드 요청을 구성 디렉토리 configdir.example.com으로 보냅니다.
- 설치가 완료되면 admin 사용자는 사용자 디렉토리에 바인드를 시도하여 사용자 데이터를 작성하기 시작합니다.
admin 항목은 구성 디렉토리에 uid=admin, ou=Administrators,
ou=TopologyManagement,o=NetscapeRoot로 저장되므로, PTA 플러그 인 구성에 정의된 것처럼 사용자 디렉토리는 이 바인드 요청을 구성 디렉토리로 전달합니다.
- 구성 디렉토리는 암호를 포함한 바인드 자격 증명을 인증하여 다시 사용자 디렉토리로 확인을 보냅니다.
- 이 확인 결과에 따라 admin 사용자의 바인드를 허용합니다.
PTA 플러그 인 구성
PTA 플러그 인 구성 정보는 PTA 서버의 cn=Pass Through Authentication,
cn=plugins,cn=config 항목에 지정됩니다.사용자 디렉토리와 구성 디렉토리를 별개의 서버 인스턴스에 설치하면 사용자 디렉토리의 구성에 PTA 플러그 인 항목이 자동으로 추가됩니다. 두 디렉토리를 한 개의 인스턴스에 설치한 경우 다른 디렉토리와 PTA를 수행하려면 먼저 플러그 인 구성 항목을 작성해야 합니다.
플러그 인 구성 항목 작성
- 아래 명령을 실행하여 플러그 인 구성 항목을 작성합니다.
ldapmodify -a -h PTAhost -p port -D "cn=Directory Manager" -w password
dn: cn=Pass Through Authentication,cn=plugins,cn=config
objectClass: top
objectClass: nsSlapdPlugin
objectClass: extensibleObject
cn: Pass Through Authentication
nsslapd-pluginPath: serverRoot/lib/passthru-plugin.extension
nsslapd-pluginInitfunc: passthruauth_init
nsslapd-pluginType: preoperation
nsslapd-plugin-depends-on-type: database
nsslapd-pluginId: passthruauth
nsslapd-pluginVersion: 5.2
nsslapd-pluginVendor: Sun Microsystems, Inc.
nsslapd-pluginDescription: pass through authentication plugin
nsslapd-pluginEnabled: on or off
nsslapd-pluginarg0: ldap[s]://authenticatingHost[:port]/PTAsubtree options
여기서 serverRoot는 설치에 따라 결정되며 extension은 HP-UX의 경우 .sl, 다른 모든 UNIX 플랫폼의 경우 .so, Windows의 경우 .dll이 됩니다.
플러그 인 인수는 인증 디렉토리 서버의 호스트 이름을 식별하는 LDAP URL, 선택 사항 포트 및 PTA 하위 트리를 지정합니다. 포트를 지정하지 않으면 389(LDAP)와 636(LDAPS)이 기본 포트가 됩니다. 다음 절에 설명된 연결 매개 변수를 선택 사항으로 설정할 수도 있습니다. PTAsubtree가 PTAhost에 있으면 플러그 인이 바인드 요청을 authenticatingHost로 전달하지 않으므로 바인드는 PTA 없이 로컬로 처리됩니다.
- "Directory Server 시작 및 중지"에 설명된 것처럼 서버를 다시 시작합니다.
보안 연결을 사용하도록 PTA 구성
PTA 플러그 인은 암호를 포함한 바인드 자격 증명을 인증 디렉토리로 보내야 하므로 보안 연결을 사용하는 것이 좋습니다. PTA 디렉토리가 SSL을 통해 인증 디렉토리와 통신하도록 구성하려면 다음을 수행합니다.
- 11장 "보안 구현에 설명된 것처럼 PTA 디렉토리와 인증 디렉토리에서 모두 SSL을 구성 및 활성화합니다.
- LDAP URL에 LDAPS 및 보안 포트를 사용하도록 PTA 플러그 인 구성을 새로 작성하거나 수정합니다. 예를 들면 다음과 같습니다.
ldaps://configdir.example.com:636/o=NetscapeRoot
연결 매개 변수(선택 사항) 설정
PTA 플러그 인 인수는 LDAP URL 뒤에 오는 연결 매개 변수 집합을 선택 사항으로 허용합니다. 예를 들면 다음과 같습니다.
ldap[s]://host[:port]/subtree [maxconns,maxops,timeout,ldapver,connlife]
매개 변수는 표시된 순서대로 지정해야 합니다. 이러한 매개 변수는 선택 사항이지만 한 개만 개별적으로 지정할 수는 없습니다. 한 개의 매개 변수를 지정하려면 모두 지정해야 합니다. 일부 매개 변수만 사용자 정의하려면 아래에 제공된 기본값을 지정하십시오. subtree 매개 변수와 선택 사항 매개 변수 사이에는 공백이 있어야 합니다.
각각의 LDAP URL에 대해 다음과 같은 선택 사항 매개 변수를 구성할 수 있습니다.
- maxconns - PTA 서버에서 인증 서버에 대해 동시에 열 수 있는 최대 연결 수. 이 매개 변수는 인증 서버로 전달할 수 있는 동시 바인드 수를 제한합니다. 기본값은 3개입니다.
- maxops - PTA 디렉토리 서버에서 단일 연결 내에 인증 디렉토리 서버로 동시에 보낼 수 있는 최대 바인드 요청 수. 이 매개 변수는 동시 PTA 수를 추가로 제한합니다. 기본값은 5개입니다.
- timeout - PTA 서버에서 인증 서버의 응답을 기다리는 최대 지연(초). 기본값은 300초(5분)입니다.
- ldapver - PTA 서버에서 인증 서버에 연결할 때 사용할 LDAP 프로토콜 버전. 허용되는 값은 LDAPv2의 경우 2, LDAPv3의 경우 3입니다. 기본값은 3입니다.
- connlife - PTA 서버에서 인증 서버에 대한 연결을 다시 사용할 시간 제한(초). 이 시간이
만료된 후 클라이언트에서 PTA 하위 트리의 바인드를 요청하면 서버는 PTA 연결을 닫고 새 연결을 엽니다. 바인드 요청이 시작되어 서버에서 시간 제한이 초과되었다는 것을 확인한 경우에만 연결이 닫힙니다. 이 옵션을 지정하지 않거나 LDAP URL에 한 개의 인증 서버만 열거되어 있으면 시간 제한은 실행되지 않습니다. 두 개 이상의 호스트가 열거되어 있으면 기본값은 300초(5분)입니다.PTA 플러그 인 인수에 대한 아래 예제에서는 연결 수를 10개로 늘리고 시간 제한을 1분(60초)으로 줄입니다. 다른 모든 매개 변수에 대해서는 기본값이 지정됩니다.
ldaps://configdir.example.com:636/o=NetscapeRoot 10,5,60,3,300
여러 개의 서버 및 하위 트리 지정
PTA 플러그 인에 여러 개의 인수를 구성하여 다수의 인증 서버, 다수의 PTA 하위 트리 또는 둘 모두를 지정할 수 있습니다. 각 인수에는 한 개의 LDAP URL이 포함되며 자체 연결 옵션 집합을 가질 수 있습니다.
한 개의 PTA 하위 트리에 여러 개의 인증 서버가 있는 경우 이러한 인증 서버는 페일오버 서버 역할을 합니다. PTA 연결이 시간 제한에 도달하면 플러그 인은 열거된 순서대로 인증 서버에 연결하며, 모든 연결이 시간 초과되면 인증이 실패합니다.
여러 개의 PTA 하위 트리가 정의되어 있으면 플러그 인은 바인드 DN에 따라 해당 서버로 인증 요청을 전달합니다. 아래 예제에서는 두 개의 PTA 하위 트리를 정의하는 PTA 플러그 인 인수 네 개를 보여줍니다. 각 하위 트리에는 인증용 페일오버 서버와 서버별 연결 매개 변수가 있습니다.
nsslapd-pluginarg0: ldaps://configdir.example.com/o=NetscapeRoot
10,10,60,3,300
nsslapd-pluginarg1: ldaps://configbak.example.com/o=NetscapeRoot
3,5,300,3,300
nsslapd-pluginarg2: ldaps://east.example.com/ou=East,ou=People,
dc=example,dc=com 10,10,300,3,300
nsslapd-pluginarg3: ldaps://eastbak.example.com/ou=East,ou=People,
dc=example,dc=com 3.5,300,3,300PTA 플러그 인 구성 수정
언제든지 PTA 플러그 인을 다시 구성하여 활성화 또는 비활성화하거나 인증 호스트나 PTA 하위 트리를 변경할 수 있습니다.
- PTA 플러그 인 구성 항목(cn=Pass Through Authentication,
cn=plugins,cn=config)을 편집하여 nsslapd-pluginenabled 속성과 nsslapd-pluginargN 속성을 수정합니다. 콘솔이나 ldapmodify 유틸리티 중 하나를 사용하여 구성을 편집할 수 있습니다.
예를 들어, 아래 명령은 위에 열거된 연결 매개 변수와 SSL을 사용하여 PTA 플러그 인을 활성화합니다.
dn: cn=Pass Through Authentication,cn=plugins,cn=config
changetype: modify
replace: nsslapd-pluginenabled
nsslapd-pluginenabled: on
-
replace: nsslapd-pluginarg0
nsslapd-pluginarg0: ldaps://configdir.example.com:636/
o=NetscapeRoot 10,10,60,3,300
-
replace: nsslapd-pluginarg1
nsslapd-pluginarg1: ldaps://configbak.example.com:636/
o=NetscapeRoot 3,5,300,3,300
^D
- "Directory Server 시작 및 중지"에 설명된 것처럼 서버를 다시 시작합니다.