이 인증 방법은 다음과 유사하게 작동합니다.비밀번호단, 비밀번호 확인 방법으로 LDAP를 사용한다는 점만 다릅니다. LDAP는 사용자 이름/비밀번호 쌍을 확인하는 데에만 사용됩니다. 따라서 인증에 LDAP를 사용하려면 먼저 사용자가 데이터베이스에 이미 존재해야 합니다.
LDAP 인증은 두 가지 모드로 작동할 수 있습니다. 단순 바인딩 모드라고 부르는 첫 번째 모드에서 서버는 다음과 같이 구성된 고유 이름에 바인딩됩니다.접두사 사용자 이름 접미사. 일반적으로,접두사매개변수는 지정하는 데 사용됩니다.cn=또는도메인\Active Directory 환경에서.접미사비Active Directory 환경에서 DN의 나머지 부분을 지정하는 데 사용됩니다.
검색+바인딩 모드라고 부르는 두 번째 모드에서 서버는 먼저 다음으로 지정된 고정된 사용자 이름과 비밀번호를 사용하여 LDAP 디렉토리에 바인딩합니다.토토binddn그리고토토bindpasswd, 데이터베이스에 로그인을 시도하는 사용자에 대한 검색을 수행합니다. 사용자 및 비밀번호가 구성되지 않은 경우 디렉토리에 대한 익명 바인딩이 시도됩니다. 검색은 다음 위치의 하위 트리에 대해 수행됩니다.토토basedn, 그리고에 지정된 속성과 정확히 일치하도록 시도합니다.토토search속성. 이 검색에서 사용자를 찾으면 서버는 연결을 끊고 클라이언트가 지정한 비밀번호를 사용하여 이 사용자로 디렉터리에 다시 바인딩하여 로그인이 올바른지 확인합니다. 이 모드는 Apache와 같은 다른 소프트웨어의 LDAP 인증 체계에서 사용되는 것과 동일합니다.mod_authnz_토토그리고pam_토토. 이 방법을 사용하면 디렉터리에서 사용자 개체가 위치하는 위치에 훨씬 더 많은 유연성이 허용되지만 토토 서버에 대한 두 개의 별도 연결이 생성됩니다.
다음 구성 옵션은 두 모드 모두에서 사용됩니다.
토토서버연결할 LDAP 서버의 이름 또는 IP 주소. 여러 서버를 공백으로 구분하여 지정할 수 있습니다.
토토port연결할 토토 서버의 포트 번호입니다. 포트가 지정되지 않으면 토토 라이브러리의 기본 포트 설정이 사용됩니다.
토토scheme다음으로 설정토토sLDAPS를 사용합니다. 이는 일부 LDAP 서버 구현에서 지원되는 SSL을 통한 LDAP를 사용하는 비표준 방법입니다. 또한 참조하십시오.토토tls대안을 위한 옵션.
토토tlsPostgreSQL과 LDAP 서버 간의 연결이 TLS 암호화를 사용하도록 하려면 1로 설정하세요. 이는 다음을 사용합니다.시작TLSRFC 4513에 따른 작업. 또한 참조토토scheme대안을 위한 옵션.
다음을 사용하는 것에 유의하세요토토scheme또는토토tlsPostgreSQL 서버와 토토 서버 간의 트래픽만 암호화합니다. PostgreSQL 서버와 PostgreSQL 클라이언트 간의 연결은 SSL이 사용되지 않는 한 여전히 암호화되지 않습니다.
다음 옵션은 단순 바인딩 모드에서만 사용됩니다:
토토prefix단순 바인딩 인증을 수행할 때 바인딩할 DN을 구성할 때 사용자 이름 앞에 추가할 문자열.
토토suffix단순 바인딩 인증을 수행할 때 바인딩할 DN을 구성할 때 사용자 이름에 추가할 문자열.
다음 옵션은 검색+바인딩 모드에서만 사용됩니다:
토토basedn검색+바인딩 인증을 수행할 때 사용자 검색을 시작하는 루트 DN.
토토binddn검색+바인딩 인증 시 검색을 수행하기 위해 디렉토리에 바인드할 사용자의 DN.
토토bindpasswd검색+바인딩 인증 시 검색을 수행하기 위해 사용자가 디렉토리에 바인드하기 위한 비밀번호입니다.
토토search속성검색+바인딩 인증을 수행할 때 검색에서 사용자 이름과 일치하는 속성입니다. 속성이 지정되지 않으면,UID속성이 사용됩니다.
토토searchfilter검색+바인딩 인증을 수행할 때 사용할 검색 필터입니다. 발생 횟수$username은 사용자 이름으로 대체됩니다. 이는 다음보다 더 유연한 검색 필터를 허용합니다.토토search속성.
토토urlRFC 4516 LDAP URL. 이는 다른 LDAP 옵션 중 일부를 보다 간결하고 표준적인 형식으로 작성하는 대체 방법입니다. 형식은 다음과 같습니다
토토[s]://호스트[:포트]/기반[?[속성][?[범위][?[필터]]]]
범위다음 중 하나여야 합니다베이스, 하나, 하위, 일반적으로 마지막입니다. (기본값은베이스, 일반적으로 이 애플리케이션에서는 유용하지 않습니다.)속성단일 속성을 지정할 수 있으며 이 경우 해당 속성은토토search속성. 만일속성그럼 비어있습니다필터다음 값으로 사용할 수 있습니다.토토searchfilter.
URL 구성표토토sSSL을 통해 토토 연결을 만들기 위해 토토S 방법을 선택합니다.토토scheme=토토s. 다음을 사용하여 암호화된 LDAP 연결을 사용하려면시작TLS작업, 일반 URL 구성표 사용토토그리고 다음을 지정하세요토토tls추가 옵션토토url.
비익명 바인드의 경우,토토binddn그리고토토bindpasswd별도의 옵션으로 지정해야 합니다.
LDAP URL은 현재 다음에서만 지원됩니다.오픈토토, Windows에서는 아님.
단순 바인딩 구성 옵션과 검색+바인딩 옵션을 혼합하는 것은 오류입니다.
검색+바인딩 모드를 사용할 때 다음으로 지정된 단일 속성을 사용하여 검색을 수행할 수 있습니다.토토search속성또는 다음으로 지정된 맞춤 검색 필터 사용토토searchfilter. 지정토토searchattribute=foo지정하는 것과 동일합니다토토searchfilter="(foo=$username)". 두 옵션 모두 지정되지 않은 경우 기본값은토토searchattribute=uid.
만약PostgreSQL다음으로 컴파일됨오픈토토토토 클라이언트 라이브러리로서토토서버설정은 생략될 수 있습니다. 이 경우 RFC 2782 DNS SRV 레코드를 통해 호스트 이름 및 포트 목록이 조회됩니다. 이름_토토._tcp.DOMAIN찾아보니 어디DOMAIN다음에서 추출됨토토basedn.
다음은 단순 바인딩 LDAP 구성의 예입니다.
호스트 ... 토토 토토server=토토.example.net 토토prefix="cn=" 토토suffix=", dc=example, dc=net"
데이터베이스 사용자로 데이터베이스 서버에 접속할 때someuser요청되면 PostgreSQL은 DN을 사용하여 LDAP 서버에 바인딩을 시도합니다.cn=someuser, dc=예, dc=net그리고 클라이언트가 제공한 비밀번호입니다. 해당 연결이 성공하면 데이터베이스 액세스 권한이 부여됩니다.
다음은 검색+바인딩 구성의 예입니다:
호스트 ... 토토 토토server=토토.example.net 토토basedn="dc=example, dc=net" 토토searchattribute=uid
데이터베이스 사용자로 데이터베이스 서버에 접속할 때someuser이 요청되면 PostgreSQL은 익명으로 바인딩을 시도합니다(이후토토binddn지정되지 않음)을 토토 서버로 검색하려면(uid=someuser)지정된 기본 DN 아래. 항목이 발견되면 발견된 정보와 클라이언트가 제공한 비밀번호를 사용하여 바인딩을 시도합니다. 두 번째 연결이 성공하면 데이터베이스 액세스가 허용됩니다.
다음은 URL로 작성된 동일한 검색+바인딩 구성입니다:
호스트 ... 토토 토토url="토토://토토.example.net/dc=example,dc=net?uid?sub"
LDAP에 대한 인증을 지원하는 일부 다른 소프트웨어는 동일한 URL 형식을 사용하므로 구성을 공유하기가 더 쉽습니다.
다음은 다음을 사용하는 검색+바인드 구성의 예입니다.토토searchfilter대신에토토search속성사용자 ID 또는 이메일 주소로 인증을 허용하려면:
호스트 ... 토토 토토server=토토.example.net 토토basedn="dc=example, dc=net" 토토searchfilter="(|(uid=$username)(mail=$username))"
다음은 DNS SRV 검색을 사용하여 도메인 이름에 대한 LDAP 서비스의 호스트 이름과 포트를 찾는 검색+바인드 구성의 예입니다.example.net:
호스트 ... 토토 토토basedn="dc=example,dc=net"
토토는 종종 쉼표와 공백을 사용하여 DN의 다른 부분을 구분하므로 예에 표시된 것처럼 토토 옵션을 구성할 때 큰따옴표로 묶인 매개변수 값을 사용해야 하는 경우가 많습니다.