L'attribut OpenLDAP memberOf n'est pas mis à jour après la mise à jour du groupe

8

J'ai une configuration OpenLDAP sur Debian 7.1, (OpenLDAP 2.4.31), et j'essaie de configurer la superposition memberof. Ma configuration est identique à celle que j'ai lue sur de nombreux sites sur Internet, mais elle ne fonctionne toujours pas pour moi.

Le problème est que les attributs memberOf des entités ne sont mis à jour que lorsque je crée un groupe, mais ne sont pas mis à jour lorsque je modifie ou supprime un groupe. En fait, ce même problème a déjà été posé ici: comment configurer la maintenance inversée de l'appartenance à un groupe sur un serveur openldap? (memberOf) , mais même si la réponse est cochée, je n'ai trouvé aucune information utilisable dans les réponses. (Même l'affiche originale n'a rien pu faire avec les réponses selon les commentaires ...)

Ma configuration est la suivante: 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

Et pour le module: 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

Le groupe que j'ajoute:

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

La requête que j'exécute:

$ 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

Le problème n'est donc pas de savoir comment interroger l'attribut, mais qu'après avoir modifié ou supprimé le groupe, le résultat de la recherche ne change pas ...

Mise à jour : Quant à la réponse de Brian, j'ai également mis en place une superposition de refint, avec la configuration suivante:

$ 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

Mais ni elle n'a fixé le membre de la superposition, ni elle n'a fonctionné en soi. Lorsque j'ai modifié le nom d'un membre d'un groupe, l'attribut membre du groupe n'a pas été mis à jour. Ces deux problèmes pourraient-ils être liés?

Peter B
la source
Avez-vous compris ce problème? J'obtiens la même chose.
Ethan Xu
@YangXu - non, je n'ai pas pu résoudre ce problème à ce moment-là, et j'ai simplement pris un chemin différent, n'impliquant pas le plugin memberOf. Il y a quelques mois, j'ai dû configurer quelque chose de similaire sur un autre serveur, et là, cela a fonctionné pour la première fois. Maintenant, j'ai comparé la configuration du nouveau serveur avec la configuration que je mets ici, et la seule différence que j'ai pu remarquer est que sur le nouveau serveur, la base de données principale est mdb, alors que dans ce vieux cas, c'est hdb. Lequel utilisez-vous? Si hdb, pourriez-vous essayer de migrer vers mdb? Si cela résout le problème, pourriez-vous répondre à cette question avec cela? Merci!
Peter B

Réponses:

0

Il semble que vous ayez besoin de configurer la superposition de réimpression, ce qui aide à maintenir l'intégrité référentielle d'un répertoire dans des situations telles que celle que vous avez décrite. Il existe une page sur http://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrity qui peut être utile pour configurer cette superposition.

Brian Showalter
la source
En fait, j'ai déjà essayé la superposition de refint avant, car à certains endroits, ils étaient mentionnés ensemble. Mais cela n'a pas aidé. :( Et en fait, refint ne fonctionne pas non plus, comme si je renommais un utilisateur, l'attribut "member" du groupOfNames ne se mettait pas à jour. Peut-être que ces deux problèmes sont liés?
Peter B
Pour confirmer, utilisez-vous le nom distinctif d'une entrée de membre pour indiquer qu'il s'agit d'un membre de votre groupe?
Brian Showalter
Oui, comme member: cn=testuser,ou=users,dc=x,dc=y.
Peter B
0

Nous avons eu le même problème (mêmes symptômes que vous décrivez). Il s'est avéré que nous manquions olcRootDNdans notre dn: olcDatabase={1}hdb,cn=configSo add (par exemple) olcRootDN: cn=admin,cn=config.

Stevko
la source