Eu tenho uma configuração OpenLDAP no Debian 7.1 (OpenLDAP 2.4.31) e estou tentando configurar a sobreposição de memberof. Minha configuração é exatamente como li em vários sites da internet, porém ainda não funciona para mim.
O problema é que os atributos memberOf das entidades só são atualizados quando eu crio um grupo, mas não são atualizados quando eu modifico ou excluo um grupo. Na verdade, esse mesmo problema já foi perguntado antes aqui:Como configuro a manutenção reversa de membros de grupo em um servidor openldap? (membro de), mas mesmo que esteja marcado como respondido, não consegui encontrar nenhuma informação útil nas respostas. (Mesmo o postador original não pôde fazer nada com as respostas de acordo com os comentários...)
Minha configuração é assim: 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
E para o módulo: 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
O grupo que adiciono:
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
A consulta que executo:
$ 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
Então a questão não é como consultar o atributo, mas sim que após modificar ou remover o grupo o resultado da busca não muda...
Atualizar: Quanto à resposta de Brian, também configurei a sobreposição de refint, com a seguinte configuração:
$ 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
Mas nem fixou o membro da sobreposição, nem funcionou por si só. Quando modifiquei o nome de um membro de um grupo, o atributo membro do grupo não foi atualizado. Esses dois problemas poderiam estar relacionados?
Responder1
Parece que você pode precisar configurar a sobreposição refint, o que ajuda a manter a integridade referencial de um diretório em situações como a que você descreveu. Há uma página emhttp://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrityo que pode ser útil para configurar essa sobreposição.
Responder2
Tivemos o mesmo problema (mesmos sintomas que você descreve). Acontece que estávamos faltando olcRootDN
em nosso dn: olcDatabase={1}hdb,cn=config
Então adicione (por exemplo) olcRootDN: cn=admin,cn=config
lá.