Skip to main content

“memberOf” in OpenLDAP unter Debian aktivieren

Da ich derzeit mit LDAP rumspiele und ein paar Probleme habe, wollte ich dieses hier für die Nachwelt dokumentieren.

Problem

In LDAP möchte ich Personen und Gruppen haben. Die Personen sollen Mitglieder der Gruppen sein. Für die Personen benutze ich objectClass=“inetOrgPerson” und für Gruppen objectClass=“groupOfNames”. Bei einer Suchabfrage möchte ich Personen filtern, die in einer bestimmten Gruppe sind. Der Teil dafür lautet “memberOf=cn=testgruppe,ou=groups,dc=example,dc=com”. Leider funktioniert dies out-of-the-box nicht.

Bei einer Suche habe ich immer Anleitungen für “/etc/ldap/slap.conf” gefunden. Leider benutzt Debian diese Config nicht (mehr).

Lösung

Zuerst benötigt man einen Adminuser für die Configs. Da reicht der am Anfang eingerichtete Admin nicht, sondern man braucht einen weiteren.

Hierzu ändern man die Datei /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif und fügt nach der Zeile:

olcRootDN: cn=admin,cn=config

die Zeile

olcRootPW: meinpasswort

ein. Das Passwort muss entsprechend geändert werden. Danach muss OpenLDAP neugestartet werden.

Dann eine Datei (irgendwo) mit dem Namen memberof_add.ldif anlegen:

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: memberof

sowie die Datei mit dem Namen memberof_config.ldif:

dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

Anschließend fügt man in LDAP diese configs hinzu:

ldapadd -D cn=admin,cn=config -W -h localhost -f memberof\_add.ldif
ldapadd -D cn=admin,cn=config -W -h localhost -f memberof\_config.ldif

Dort gibt man jeweils das gerade eben angelegte Passwort an.

Jetzt muss man noch wissen, dass der Filter erst bei neuen Gruppen funktioniert. Alte Gruppen müssen gelöscht und neuangelegt werden.

Quellen