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

DSML 아이디 매핑

인증서 없이 기본 인증을 수행하는 경우 디렉토리 서버는 아이디 매핑이라는 메커니즘을 사용하여 DSML 요청을 승인할 때 사용할 바인드 DN을 지정합니다. 이 기법은 HTTP 요청의 인증 헤더에서 필요한 정보를 추출하여 바인드에 사용할 아이디를 확인합니다.

DSML/HTTP에 대한 기본 아이디 매핑은 다음과 같은 서버 구성 항목을 통해 지정됩니다.

dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people
dsSearchFilter: (uid=${Authorization})

이 구성에서 서버는 디렉토리 서버 접미어에 저장된 DN에 대한 uid 값으로 HTTP 사용자 아이디를 사용해야 합니다. 예를 들어 HTTP 사용자가 bjensen인 경우 서버는 uid=bjensen,ou=people DN을 사용하여 바인딩을 실행하려고 합니다.

매핑이 제대로 작동하려면 dsSearchBaseDN 값을 완료해야 합니다. 예를 들어 dsSearchBaseDN 값을 ou=people,dc=example,dc=com으로 변경할 수 있습니다. HTTP 사용자가 bjensen인 경우 서버는 uid=bjensen,ou=people,dc=example,dc=com DN을 사용하여 바인딩을 실행하려고 합니다.

dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people,dc=example,dc=com
dsSearchFilter: (uid=${Authorization})

dsSearchFilter 매핑 항목 속성에 ${header} 형식의 자리 표시자를 사용할 수도 있습니다. 여기서 header는 HTTP 헤더의 이름입니다.

DSML 매핑에 사용되는 가장 일반적인 헤더는 다음과 같습니다.

${Authorization}

이 문자열은 HTTP 인증 헤더에 포함된 사용자 이름으로 바뀝니다. 인증 헤더에는 사용자 이름과 비밀번호가 모두 포함되어 있지만 이 자리 표시자는 사용자 이름으로만 바뀝니다.

${From}

이 문자열은 HTTP From 헤더에 포함된 전자 메일 주소로 바뀝니다.

${host}

이 문자열은 DSML 요청의 URL에 포함된 서버의 호스트 이름 및 포트 번호로 바뀝니다.

DSML 요청에 다른 종류의 아이디 매핑을 사용하려면 다음과 같이 HTTP 헤더에 대한 새 아이디 매핑을 정의합니다.

ProcedureHTTP 헤더에 대해 새 아이디 매핑을 정의하려면

  1. 기본 DSML-over-HTTP 아이디 매핑을 편집하거나 이 프로토콜에 대한 사용자 정의 매핑을 작성합니다.

    매핑 항목은 cn=HTTP-BASIC,cn=identity mapping,cn=config 항목 아래에 있어야 합니다.

    ldapmodify를 사용한 항목 추가에 설명된 것처럼 ldapmodify 명령을 사용하여 명령줄에서 이 항목을 추가합니다.

  2. 디렉토리 서버를 다시 시작하여 새로운 매핑을 적용합니다.

    사용자 정의 매핑이 먼저 평가됩니다. 사용자 정의 매핑이 실패한 경우 기본 매핑이 평가됩니다. 모든 매핑을 평가한 후에도 DSML 요청에 대한 바인드 DN을 확인하지 못하면 이 DSML 요청은 금지되어 거부됩니다(오류 403).