OpenLDAP는 로컬 데이터베이스가 아닌 프록시 캐시로만 작동합니다.

OpenLDAP는 로컬 데이터베이스가 아닌 프록시 캐시로만 작동합니다.

로컬 LDAP 프록시 캐시를 실행하려고 합니다. 아이디어는 다음과 같습니다.

  • 현재 컴퓨터가 (A)모든 LDAP 요청을 원격 LDAP 서버로 보내고 있습니다.(L)
  • 대신 과 사이의 중개자 A역할을 하는 실행 중인 프록시 캐시 "서버"가 있어야 합니다 . 캐시는 모든 쿼리와 해당 속성을 모두 저장합니다(가득 차서 "재활용"을 시작할 때까지).AL

OpenLDAP용 프록시 캐싱 엔진보기에는 좋지만 설정 방법에 대한 정보가 많지 않습니다. 샘플 구성 파일이 있지만 작동하게 할 수 없습니다.

이는 프록시 캐싱 전용이므로 로컬 데이터베이스를 설정할 필요가 없습니다. 따라서 구성 파일은 다음과 같습니다.

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

moduleload pcache.la

database        ldap
suffix          "dc=int,dc=somedomain,dc=com"
rootdn          "dc=int,dc=somedomain,dc=com"
uri             ldap://dc-04.int.somedomain.com:389

overlay pcache
pcache         hdb 100000 1 1000 100
pcacheAttrset  0 *
pcacheTemplate (sn=) 0 3600

cachesize 20
directory /var/lib/ldap
index       objectClass eq
index       cn eq,sub

이제 ldap://localhost에 대한 요청이 원격 LDAP(캐시가 아닌 경우)에 미러링되기를 원합니다.

이 명령을 사용하여 원격 서버에서 인증을 테스트합니다.

ldapwhoami -vvv -h dc-04.int.somedomain.com -p 389 -D [email protected] -x -w <passwd>

그것은 훌륭하게 작동했고 나는 힘을 얻었습니다.

그러나 localhost에서 동일한 명령을 실행하려고 하면 다음과 같습니다.

ldapwhoami -vvv -h localhost -p 389 -D [email protected] -x -w <passwd>

실패했다, 말하자면

ldap_initialize( ldap://localhost:389 )
ldap_bind: Invalid DN syntax (34)
    additional info: invalid DN

Slapd는 localhost를 수신하고 있으며 netstat에는 다음 줄이 포함되어 있습니다.

tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      10352/slapd

내가 놓친 것이 있나요? 감사해요

답변1

ldap_bind: 잘못된 DN 구문(34) 추가 정보: 잘못된 DN

이는 잘못된 고유 이름이 사용되었음을 의미합니다. [email protected]단순 바인드 요청에서 바인드 DN과 같은 것을 사용하는 것은 MS Active Directory에서만 작동하며 다른 LDAP 서버에서는 작동하지 않습니다. 따라서 로컬 LDAP 프록시는 요청을 거부하고 다른 조치를 취하지 않습니다.

관련 정보