Ich habe ein OpenLDAP-Setup unter Debian 7.1 (OpenLDAP 2.4.31) und versuche, das Memberof-Overlay einzurichten. Meine Konfiguration ist genau so, wie ich es auf vielen Websites im Internet gelesen habe, aber sie funktioniert bei mir trotzdem nicht.
Das Problem besteht darin, dass die memberOf-Attribute der Entitäten nur aktualisiert werden, wenn ich eine Gruppe erstelle, aber nicht, wenn ich eine Gruppe ändere oder lösche. Tatsächlich wurde dieses gleiche Problem hier schon einmal gestellt:Wie konfiguriere ich die umgekehrte Gruppenmitgliedschaftsverwaltung auf einem OpenLDAP-Server? (memberOf), aber auch wenn es als beantwortet markiert ist, konnte ich in den Antworten keine verwertbaren Informationen finden. (Auch der ursprüngliche Poster konnte den Kommentaren zufolge mit den Antworten nichts anfangen...)
Meine Konfiguration sieht folgendermaßen aus: cn=config/cn=module{0}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof
structuralObjectClass: olcModuleList
Und für das Modul: cn=config/olcDatabase={1}hdb/olcOverlay={0}memberof.ldif
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
olcMemberOfRefInt: TRUE
Die Gruppe, die ich hinzufüge:
dn: cn=test,ou=services,dc=x,dc=y
cn: test
objectClass: groupOfNames
objectClass: top
description: test group
member: cn=Almafa Teszt,ou=users,dc=x,dc=y
Die Abfrage, die ich ausführe:
$ ldapsearch -LLL -h localhost -x -D cn=admin,dc=x,dc=y -b u=users,dc=x,dc=y -W '(memberOf=cn=test,ou=services,dc=x,dc=y)' memberOf
Das Problem liegt also nicht darin, wie das Attribut abgefragt wird, sondern darin, dass sich nach dem Ändern oder Entfernen der Gruppe das Suchergebnis nicht ändert …
Aktualisieren: Was Brians Antwort betrifft, habe ich auch Refint Overlay mit der folgenden Konfiguration eingerichtet:
$ ldapsearch -LLL -b cn=module{0},cn=config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
olcModuleLoad: {2}refint
$ ldapsearch -LLL -b olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner
Aber weder wurde das Memberof-Overlay behoben, noch funktionierte es von selbst. Als ich den Namen eines Gruppenmitglieds änderte, wurde das Mitgliedsattribut der Gruppe nicht aktualisiert. Könnten diese beiden Probleme zusammenhängen?
Antwort1
Es klingt, als müssten Sie das Refint-Overlay konfigurieren, das dabei hilft, die referenzielle Integrität eines Verzeichnisses in Situationen wie der von Ihnen beschriebenen aufrechtzuerhalten. Es gibt eine Seite unterhttp://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integritywas beim Einrichten dieses Overlays hilfreich sein kann.
Antwort2
olcRootDN
Wir hatten das gleiche Problem (dieselben Symptome wie von dir beschrieben). Es stellte sich heraus, dass uns in unserem dn: olcDatabase={1}hdb,cn=config
So-Add (zum Beispiel) olcRootDN: cn=admin,cn=config
dort etwas fehlte .