Parece que você pode precisar configurar a sobreposição de refint, que ajuda a manter a integridade referencial de um diretório em situações como as descritas por você. Há uma página no link que pode ser útil para configurar essa sobreposição.
Eu tenho uma configuração do OpenLDAP no Debian 7.1, (OpenLDAP 2.4.31), e estou tentando configurar o membro da sobreposição. Minha configuração é como eu li em muitos sites pela internet, no entanto, 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 modifico ou excluo um grupo. Na verdade, esse mesmo problema já foi feito antes: Como configuro a manutenção de associação de grupo reversa em um servidor openldap? (memberOf) , mas mesmo que esteja marcado como respondido, não encontrei nenhuma informação utilizável nas respostas. (Mesmo o autor original não conseguiu 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 eu 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
Portanto, o problema não está em como consultar o atributo, mas depois de modificar ou remover o grupo, o resultado da pesquisa não muda ...
Atualizar : Quanto à resposta de Brian, também configuro 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 de sobreposição, nem trabalhou em si mesmo. Quando modifiquei o nome de um membro de um grupo, o atributo de membro do grupo não foi atualizado. Estas duas questões poderiam estar relacionadas?
Parece que você pode precisar configurar a sobreposição de refint, que ajuda a manter a integridade referencial de um diretório em situações como as descritas por você. Há uma página no link que pode ser útil para configurar essa sobreposição.
Tivemos o mesmo problema (mesmos sintomas que você descreve). Descobrimos que estávamos perdendo olcRootDN
em nosso dn: olcDatabase={1}hdb,cn=config
Então adicione (por exemplo) olcRootDN: cn=admin,cn=config
lá.