Diese Anleitung beschreibt, wie man beim OpenLDAP Server (slapd) eines Debian/Jessie mit memberOf Overlay erweitert. Mein slapd ist in der Version 2.4.40 vorhanden. Dieser nutzt nicht mehr die Konfiguarion über die Datei /etc/slapd.conf
, sondern das cn\=config
Schema.
Zuerst erstellen wir und eine memberof.ldif Datei, mit folgenden Inhalt.
tux@earth:~$ vi memberof.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
objectclass: top
olcModuleLoad: memberof.la
olcModulePath: /usr/lib/ldap
dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
Nun erweitern wir unserer cn\=module,cn\=config Konfiguration des slapd mit folgenden Befehl.
tux@earth:~$ sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof.ldif
Dann erstellen wir und eine refint.ldif Datei, mit folgenden Inhalt.
tux@earth:~$ vi refint.ldif
dn: cn=module,cn=config
cn: module
objectclass: olcModuleList
objectclass: top
olcmoduleload: refint.la
olcmodulepath: /usr/lib/ldap
dn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner
Nun erweitern wir unserer cn\=module,cn\=config Konfiguration des slapd mit folgenden Befehl.
tux@earth:~$ sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint.ldif
Zum testen habe ich eine Gruppe flintstones-users erstellt, welche Fred Feuerstein und Barney Geröllheimer als member enthält. Nun testen wir, ob wir zum Benutzer fred einen Eintrag mit memberOf vorhanden ist.
tux@earth:~$ ldapsearch -x uid=fred memberOf
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> (default) with scope subtree
# filter: uid=fred
# requesting: memberOf
#
# Fred Feuerstein, Users, example.com
dn: cn=Fred Feuerstein,ou=Users,dc=example,dc=com
memberOf: cn=flintstones-users,ou=Groups,dc=example,dc=com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Hier sieht man, welche Mitglieder die Gruppe flintstones-users enthält.
tux@earth:~$ ldapsearch -x cn=flintstones-users
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> (default) with scope subtree
# filter: cn=flintstones-users
# requesting: ALL
#
# flintstones-users, Groups, example.com
dn: cn=flintstones-users,ou=Groups,dc=example,dc=com
cn: flintstones-users
objectClass: groupOfNames
objectClass: top
description: All member of the group flintstones-users
member: cn=Barney Geröllheimer,ou=Users,dc=example,dc=com
member: cn=Fred Feuerstein,ou=Users,dc=example,dc=com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1