Richten Sie einen OpenLDAP-Proxy für einen anderen LDAP-Server auf CentOS 6 ein

Richten Sie einen OpenLDAP-Proxy für einen anderen LDAP-Server auf CentOS 6 ein

Ich versuche, einen lokalen Server dazu zu bringen, sich bei seinem eigenen OpenLDAP-Server zu authentifizieren und dann einen Proxy zum LDAP des Unternehmens zu verwenden, wenn der Benutzer lokal nicht gefunden wird.

  1. Lokale Benutzer arbeiten
  2. Authentifizierung beim lokalen LDAP-Server funktioniert
  3. Die Authentifizierung bei Unternehmens-LDAP funktioniert NICHT
  4. Die LDAP-Suche in Unternehmen funktioniert bei Verwendung eines lokalen Servers (ack!?!)

Benutzer = LDAP-Unternehmenskonto, internes LDAP = Benutzer – internal.com, Unternehmens-LDAP = Personen – datacenter.corporate.com

Hinweis: Die anonyme Bindung ist im Unternehmen aktiviert.

oot@ sssd]# ldapsearch -h 127.0.0.1 -x -b "uid=user,ou=people,dc=datacenter,dc=corporate,dc=com"
# extended LDIF
#
# LDAPv3
# base <uid=user,ou=people,dc=datacenter,dc=corporate,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# user, People, datacenter.corporate.com
dn: uid=user,ou=People,dc=datacenter,dc=corporate,dc=com
uid: user
cn: 
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowMax: 
shadowWarning: 
loginShell: /bin/bash
uidNumber: 
gidNumber: 
homeDirectory: /home/users/user
gecos: user
shadowLastChange: 16461

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Richten Sie slap.d ein:

#######################################################################
# database definitions
#######################################################################

database bdb
suffix "dc=internal,dc=com"
checkpoint 1024 15
rootdn "cn=adm,dc=internal,dc=com"
rootpw {SSHA}aaaaa
directory /var/lib/ldap

# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub

# Replicas of this database
#replogfile /var/lib/ldap/openldap-master-replog
#replica host=ldap-1.example.com:389 starttls=critical
# bindmethod=sasl saslmech=GSSAPI
# authcId=host/[email protected]

#proxy ldap
database ldap
suffix "ou=People,dc=datacenter,dc=corp,dc=com"
uri "ldap://1.1.1.1:389/"

idassert-bind bindmethod=none

ldap.conf:

URI ldap://127.0.0.1
BASE dc=internal,dc=com

Antwort1

Update für alle, die diesen Thread finden: Die OpenLDAP-Dokumentation ist für die Proxy-Einrichtung äußerst mangelhaft. Das wurde im Grunde nach 48 Stunden Ausprobieren herausgefunden.

Hinweis: Ich bin zurück zu slapd.conf gewechselt, indem ich in /etc/sysconfig/ldap Folgendes hinzugefügt habe: SLAPD_OPTIONS="-f /etc/openldap/slapd.conf"

In der slapd-Datei finden Sie 4 Datenbanken: 1. lokale Datenbank für LDAP AUTH (test.com) 2. externer Datenbank-Connector für LDAP AUTH (external.local -> corp.com) 3. interner Datenbank-Connector für LDAP AUTH (internal.local -> test.com) 4. Metadatenbank, die die 2 Connectoren zu 1 Datenbank kombiniert

Überall anonyme Bindung; hat die Dinge einfacher gemacht.

Die Clients verweisen jetzt auf die lokale LDAP-Datenbank und können nahtlos eine Authentifizierung entweder beim lokalen LDAP oder beim Unternehmens-LDAP durchführen.

slapd.conf

#local database 
database        bdb
suffix  "dc=test,dc=com"
checkpoint      1024 15
rootdn  "cn=adm,dc=test,dc=com"
rootpw  {SSHA}aaa
directory       /var/lib/ldap


#Indices to maintain for this database
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

#database meta
database meta
suffix  "dc=local"
rootdn  "cn=adm,dc=local"
rootpw  {SSHA}aaa

#dir1
uri      "ldap://corporate-ldap.com/ou=external,dc=local"
lastmod       off
suffixmassage   "ou=external,dc=local" "dc=datacenter,dc=corp,dc=com"

#dir2
uri      "ldap://127.0.0.1/ou=internal,dc=local"
lastmod       off
suffixmassage   "ou=internal,dc=local" "dc=test,dc=com"

verwandte Informationen