인증서 매핑에 따라 서버가 LDAP 디렉토리에서 사용자 항목을 찾는 방법이 결정됩니다. certmap.conf 파일을 사용하여 이름으로 명시된 인증서를 LDAP 항목에 매핑하는 방법을 구성할 수 있습니다. 이 파일을 편집하고 항목을 추가하여 LDAP 디렉토리의 조직과 일치시키고 사용자에게 부여할 인증서 목록을 표시할 수 있습니다. 사용자는 사용자 아이디, 전자 메일 주소 또는 subjectDN에 사용되는 다른 모든 값을 기반으로 인증될 수 있습니다. 특히, 매핑 파일에는 다음의 정보가 정의됩니다.
서버가 검색을 시작하는 LDAP 트리 내의 위치
LDAP 디렉토리에서 항목을 검색할 때 서버가 검색 범주로 사용할 인증서 속성
서버가 추가적인 검증 과정을 수행할 것인지 여부
server-root/userdb/certmap.conf
파일에는 하나 이상의 이름 매핑이 있으며, 각각의 매핑은 서로 다른 CA에 적용됩니다. 매핑의 구문은 다음과 같습니다.
certmap name issuerDNname :property [ value]
첫 번째 줄은 항목의 이름과 CA 인증서에 있는 고유 이름을 구성하는 속성을 지정합니다. name은 임의이며 원하는 값으로 정의할 수 있습니다. 그러나 issuerDN은 클라이언트 인증서를 발행한 CA의 발행자 DN과 정확하게 일치해야 합니다. 예를 들어, 아래의 발행자 DN 행의 차이는 단지 속성을 구분하는 공백이지만 서버는 이 두 항목을 서로 다른 것으로 처리합니다.
certmap sun1 ou=Sun Certificate Authority,o=Sun,c=UScertmap sun2 ou=Sun Certificate Authority, o=Sun, c=US
Sun Java System Directory Server를 사용하고 발행자 DN을 일치시키는 데 문제가 발생하는 경우에는 디렉토리 서버 오류 로그에 유용한 정보가 있는지 확인하십시오.
이름 매핑의 두 번째 및 이후 줄은 등록 정보를 값과 매핑합니다. certmap.conf 파일에는 6개의 기본 등록 정보가 있습니다. 인증서 API를 사용하여 자체 등록 정보를 직접 사용자 정의할 수도 있습니다. 기본 등록 정보는 다음과 같습니다.
DNComps는 쉼표로 분리된 속성 목록으로, LDAP 디렉토리에서 사용자의 정보(즉, 클라이언트 인증서의 소유자)와 일치하는 항목 검색을 시작할 위치를 결정하는 데 사용합니다. 서버는 클라이언트 인증서에서 이들 속성 값을 수집하고 값을 사용하여 LDAP DN을 구성합니다. 그런 후 LDAP 디렉토리에서 서버가 검색을 시작할 위치를 결정합니다. 예를 들어, DNComps가 DN의 o 및 c 속성을 사용하도록 설정된 경우 서버는 LDAP 디렉토리의 o=org, c= country 항목부터 검색을 시작합니다. 여기서 org 및 country는 인증서의 DN에 있는 값으로 대체됩니다.
다음 상황에 유의하십시오.
매핑에 DNComps 항목이 없는 경우 서버는 CmapLdapAttr 설정을 사용하거나 클라이언트 인증서에 있는 전체 대상 DN(즉, 최종 사용자의 정보)을 사용합니다.
DNComps 항목은 있으나 값이 없는 경우, 서버는 전체 LDAP 트리에서 필터와 일치하는 항목을 검색합니다.
FilterComps는 쉼표로 분리된 속성 목록으로 클라이언트 인증서에 있는 사용자의 DN에서 정보를 수집하여 필터를 만드는 데 사용합니다. 서버는 이들 속성용 값을 사용하여 LDAP 디렉토리에서 항목을 비교하는데 사용할 검색 범주를 구성합니다. LDAP에서 인증서에서 수집한 사용자의 정보와 일치하는 항목이 하나 이상 검색되는 경우 검색은 성공적이며 서버는 선택적으로 검증을 수행합니다.
예를 들어, FilterComps를 전자 메일과 사용자 아이디 속성을 사용하도록 설정하는 경우(FilterComps=e,uid), 서버는 디렉토리에서 전자 메일과 사용자 아이디 값이 클라이언트 인증서에서 수집한 사용자 정보와 일치하는 항목을 검색합니다. 전자 메일 주소와 사용자 아이디는 일반적으로 디렉토리에서 고유한 항목이므로 좋은 필터가 될 수 있습니다. LDAP 데이터베이스에서 오직 하나의 항목만 검색하려면 필터가 구체적이어야 합니다.
필터용 속성 이름은 LDAP 디렉토리가 아닌 인증서의 속성 이름이어야 합니다. 예를 들어, 일부 인증서에는 사용자의 전자 메일 주소용 속성으로 e가 있는 반면 LDAP에서 이 속성의 이름은 mail 입니다.
x509v3 인증서 속성의 목록은 다음 표와 같습니다.
속성 |
설명 |
---|---|
국가 |
|
조직 |
|
공통 이름 |
|
위치 |
|
상태 |
|
조직 단위 |
|
UNIX/Linux 사용자 아이디 |
|
전자 메일 주소 |
서버는 verifycert에 따라 클라이언트의 인증서를 LDAP 디렉토리에서 발견된 인증서와 비교할지 여부를 결정합니다. 등록 정보는두 가지 값(on 및 off)을 사용합니다. 이 등록 정보는 LDAP 디렉토리에 인증서가 있는 경우에만 사용합니다. 이 기능은 최종 사용자의 인증서가 유효하며 취소되지 않았는지 확인하는 데 유용합니다.
CmapLdapAttr은 LDAP 디렉토리에 있는 속성 이름으로 사용자에게 속한 모든 인증서의 대상 DN을 포함합니다. 이 등록 정보의 기본값은 certSubjectDN입니다. 이 속성은 표준 LDAP 속성이 아니므로 이 등록 정보를 사용하려면 반드시 LDAP 스키마를 확장해야 합니다. 자세한 내용은 SSL 개요를 참조하십시오.
certmap.conf 파일에 이 등록 정보가 있으면 서버는 전체 LDAP 디렉토리에서 속성이 대상의 전체 DN(인증서에서 가져온 DN)과 일치하는 항목을 검색합니다. 발견된 항목이 없으면 서버는 DNComps 및 FilterComps 매핑을 사용하여 검색을 재시도합니다.
인증서를 LDAP 항목과 일치시키는 이러한 방식의 접근은 DNComps 및 FilterComps를 사용하여 항목을 일치시키기 어려운 경우에 유용합니다.
Library는 공유 라이브러리 또는 DLL에 대한 경로 이름입니다. 이 등록 정보는 인증서 API를 사용하여 자체 등록 정보를 만든 경우에만 사용합니다.
InitFn은 사용자 정의 라이브러리의 init 함수의 이름입니다. 이 등록 정보는 인증서 API를 사용하여 자체 등록 정보를 만든 경우에만 사용합니다.
이러한 등록 정보에 대한 자세한 내용은 매핑 예제에 설명된 예를 참조하십시오.
클라이언트 인증서 API는 자체 등록 정보를 만드는 데 사용할 수 있습니다. 사용자 정의 매핑이 있는 경우 매핑은 다음과 같이 참조합니다.
name:library path_to_shared_libraryname :InitFN name_of_ init_function
예:
certmap default1 o=Sun Microsystems, c=US default1:library /usr/sun/userdb/plugin.so default1:InitFn plugin_init_fn default1:DNComps ou o c default1:FilterComps l default1:verifycert on
certmap.conf 파일에는 항목이 한 개 이상 있어야 합니다. 다음 예는 certmap.conf를 사용할 수 있는 다양한 방법을 보여줍니다.
certmap default defaultdefault:DNComps ou, o, cdefault:FilterComps e, uiddefault:verifycert on
이 예제를 사용하면 서버는 ou=orgunit, o=org, c=country 항목을 포함하는 LDAP 분기점에서 검색을 시작하며, 여기서 기울임체로 표시된 텍스트는 클라이언트 인증서에 있는 대상 DN의 값으로 대체됩니다.
이후, 서버는 인증서에 있는 전자 메일 주소와 사용자 아이디 값을 사용하여 LDAP 디렉토리에 일치하는 항목이 있는지 검색합니다. 항목이 검색되면 서버는 클라이언트가 전송한 인증서와 디렉토리에 있는 인증서를 비교하여 인증서를 검증합니다.
다음 예제 파일에는기본값 및 미국 우편 서비스에 대한 두 가지 매핑이 있습니다.
certmap default defaultdefault:DNCompsdefault:FilterComps e, uid
certmap usps ou=United States Postal Service, o=usps, c=USusps:DNComps ou,o,cusps:FilterComps eusps:verifycert on
서버에 미국 우편 서비스가 아닌 다른 인증서가 수신되면 기본 매핑을 사용합니다. 이 경우 LDAP 트리의 상단에서 시작하여 클라이언트의 전자 메일 및 사용자 아이디와 일치하는 항목을 검색합니다. 미국 우편 서비스의 인증서인 경우 서버는 조직 단위를 포함하는 LDAP 분기에서 검색을 시작하며 일치하는 전자 메일 주소를 검색합니다. 또한 서버는 인증서를 확인합니다. 다른 인증서는 확인되지 않습니다.
인증서의 발행자 DN(즉, CA 정보)은 반드시 매핑의 첫 번째 행 목록에 있는 발행자 DN과 동일해야 합니다. 앞의 예제에서 o=United States Postal Service,c=US인 발행자 DN의 인증서는 o와 c 속성 사이에 공백이 없으므로 일치되지 않습니다.
다음 예제에서는 CmapLdapAttr 등록 정보를 사용하여 LDAP 데이터베이스에서 certSubjectDN이라는 속성을 검색합니다. 이 속성의 값은 클라이언트 인증서에서 가져온 전체 대상 DN과 정확하게 일치합니다. 이 예제에서는 LDAP 디렉토리에 certSubjectDN 속성이 있는 항목이 포함된 것으로 가정합니다.
certmap myco ou=My Company Inc, o=myco, c=USmyco:CmapLdapAttr certSubjectDNmyco:DNComps o, c myco:FilterComps mail, uid myco:verifycert on
클라이언트 인증서 대상이 다음인 경우,
uid=Walt Whitman, o=LeavesOfGrass Inc, c=US
서버는 우선 다음 정보를 포함한 항목을 검색합니다.
certSubjectDN=uid=Walt Whitman, o=LeavesOfGrass Inc, c=US
일치하는 항목이 하나 이상인 경우에는 서버가 항목을 검증합니다. 일치 항목이 없는 경우 서버는 DNComps 및 FilterComps를 사용하여 일치하는 항목을 검색합니다. 이 예제에서 서버는 o=LeavesOfGrass Inc, c=US의 모든 항목에서 uid=Walt Whitman을 검색합니다.