Das OpenLDAP memberOf-Attribut wird nach der Gruppenaktualisierung nicht aktualisiert


8

Ich habe ein OpenLDAP-Setup unter Debian 7.1 (OpenLDAP 2.4.31) und versuche, das Memberof-Overlay einzurichten. Meine Konfiguration ist so, wie ich sie an vielen Stellen im Internet gelesen habe, funktioniert jedoch bei mir immer noch nicht.

Das Problem ist, dass die memberOf-Attribute der Entitäten nur aktualisiert werden, wenn ich eine Gruppe erstelle, aber nicht aktualisiert werden, wenn ich eine Gruppe ändere oder lösche. Eigentlich wurde das gleiche Problem schon einmal hier gestellt: Wie konfiguriere ich die Reverse Group Membership Maintenance auf einem Openldap-Server? (memberOf) , aber selbst wenn es als beantwortet markiert ist, konnte ich in den Antworten keine brauchbaren Informationen finden. (Auch das Originalplakat konnte laut Kommentaren nichts mit den Antworten anfangen ...)

Meine Konfiguration lautet wie folgt: 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 besteht also nicht darin, wie das Attribut abgefragt werden soll, sondern dass sich das Ergebnis der Suche nach dem Ändern oder Entfernen der Gruppe nicht ändert ...

Update : Was Brians Antwort betrifft, habe ich auch das 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 das Overlay-Mitglied wurde behoben, noch funktionierte es an sich. Wenn ich den Namen eines Mitglieds einer Gruppe geändert habe, wurde das Mitgliedsattribut der Gruppe nicht aktualisiert. Könnten diese beiden Probleme zusammenhängen?


Haben Sie dieses Problem herausgefunden? Mir geht es genauso.
Ethan Xu

@ YangXu - nein, ich konnte dieses Problem zu diesem Zeitpunkt nicht lösen und bin einfach einen anderen Weg gegangen, ohne das memberOf-Plugin einzubeziehen. Dann, vor ein paar Monaten, musste ich etwas Ähnliches auf einem anderen Server einrichten, und dort funktionierte es zum ersten Mal. Jetzt habe ich die Konfiguration des neuen Servers mit der hier angegebenen Konfiguration verglichen, und der einzige Unterschied, den ich feststellen konnte, ist, dass auf dem neuen Server die Backend-Datenbank mdb ist, während es in diesem alten Fall hdb ist. Welches benutzt du? Wenn hdb, könnten Sie versuchen, auf mdb zu migrieren? Wenn das das Problem löst, könnten Sie diese Frage damit beantworten? Vielen Dank!
Peter B

Antworten:


0

Möglicherweise müssen Sie das Refint-Overlay konfigurieren, um die referenzielle Integrität eines Verzeichnisses in Situationen wie der von Ihnen beschriebenen aufrechtzuerhalten. Unter http://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrity gibt es eine Seite, die beim Einrichten dieses Overlays hilfreich sein kann.


Eigentlich habe ich das Refint-Overlay schon vorher ausprobiert, da sie an einigen Stellen zusammen erwähnt wurden. Aber es hat nicht geholfen. :( Und tatsächlich funktioniert refint auch nicht, als ob ich einen Benutzer umbenenne, das "member" -Attribut der groupOfNames wird nicht aktualisiert. Vielleicht hängen diese beiden Probleme zusammen?
Peter B

Verwenden Sie zur Bestätigung den DN eines Mitgliedseintrags, um anzuzeigen, dass er Mitglied Ihrer Gruppe ist?
Brian Showalter

Ja, wie member: cn=testuser,ou=users,dc=x,dc=y.
Peter B

0

Wir hatten das gleiche Problem (die gleichen Symptome wie Sie beschreiben). Es stellte sich heraus, dass wir olcRootDNin unserem dn: olcDatabase={1}hdb,cn=configSo add (zum Beispiel) olcRootDN: cn=admin,cn=configdort fehlten .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.