O atributo memberOf do OpenLDAP não é atualizado após a atualização do grupo

8

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 é exatamente como eu li em muitos sites na Internet, no entanto, ainda não funciona para mim.

O problema é que os atributos memberOf das entidades são atualizados apenas quando crio um grupo, mas não são atualizados quando modifico ou excluo um grupo. Na verdade, esse mesmo problema já foi perguntado antes aqui: Como configurar a manutenção de associação reversa de grupo em um servidor openldap? (memberOf) , mas mesmo que esteja marcado como respondido, não foi possível encontrar nenhuma informação utilizável nas respostas. (Mesmo o pôster original não poderia 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 é como consultar o atributo, mas depois de modificar ou remover o grupo, o resultado da pesquisa não muda ...

Atualização : 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 ele fixou o membro da sobreposição, nem funcionou por si só. Quando modifiquei o nome de um membro de um grupo, o atributo de membro do grupo não foi atualizado. Esses dois problemas poderiam estar relacionados?

Peter B
fonte
Você já descobriu esse problema? Estou conseguindo o mesmo.
Ethan Xu
@YangXu - não, não consegui resolver esse problema naquele momento e apenas segui um caminho diferente, sem envolver o plugin memberOf. Então, há alguns meses, tive que configurar algo semelhante em outro servidor e lá funcionou pela primeira vez. Agora comparei a configuração do novo servidor com a configuração que coloquei aqui, e a única diferença que pude detectar é que, no novo servidor, o banco de dados de back-end é mdb, enquanto que, nesse caso antigo, é hdb. Qual deles você usa? Se hdb, você poderia tentar migrar para mdb? Se isso resolver o problema, você poderia responder a essa pergunta com isso? Obrigado!
Peter B

Respostas:

0

Parece que você pode precisar configurar a sobreposição de 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 em http://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrity que pode ser útil para configurar essa sobreposição.

Brian Showalter
fonte
Na verdade, eu já tentei a sobreposição de refin antes, pois em alguns lugares eles foram mencionados juntos. Mas isso não ajudou. . :( E, na verdade, refint não quer trabalhar, como se eu mudar o nome de um usuário, o atributo "membro" dos groupOfNames não atualiza Talvez estas duas questões estão relacionadas?
Peter B
Apenas para confirmar, você está usando o DN de uma entrada de membro para indicar que é um membro do seu grupo?
Brian Showalter
Sim sim member: cn=testuser,ou=users,dc=x,dc=y.
Peter B
0

Tivemos o mesmo problema (mesmos sintomas que você descreve). Aconteceu que estávamos faltando olcRootDNno nosso dn: olcDatabase={1}hdb,cn=configSo add (por exemplo) olcRootDN: cn=admin,cn=configlá.

Stevko
fonte