Назад | Перейти на главную страницу

Атрибут memberOf OpenLDAP не обновляется после обновления группы

У меня есть установка OpenLDAP в Debian 7.1 (OpenLDAP 2.4.31), и я пытаюсь настроить оверлей memberof. Моя конфигурация такая же, как я читал на многих сайтах в Интернете, однако она по-прежнему не работает для меня.

Проблема в том, что атрибуты memberOf сущностей обновляются только при создании группы, но не обновляются при изменении или удалении группы. На самом деле эту же проблему когда-то задавали здесь: Как настроить обратное обслуживание членства в группе на сервере openldap? (член), но даже если он будет отмечен как отвеченный, я не смог найти в ответах никакой полезной информации. (Даже оригинальный плакат ничего не мог поделать с ответами согласно комментариям ...)

Моя конфигурация такая: 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

А для модуля: 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

Группа, которую я добавляю:

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

Запрос, который я выполняю:

$ 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

Таким образом, проблема не в том, как запросить атрибут, а в том, что после изменения или удаления группы результат поиска не меняется ...

Обновить: Что касается ответа Брайана, я также установил наложение уточнения со следующей конфигурацией:

$ 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

Но ни он не фиксировал memberof overlay, ни работал сам по себе. Когда я изменил имя члена группы, атрибут члена группы не обновился. Могут ли эти две проблемы быть связаны?

У нас была такая же проблема (те же симптомы, что и вы описываете). Оказалось, нас не хватало olcRootDN в нашем dn: olcDatabase={1}hdb,cn=config Так что добавьте (например) olcRootDN: cn=admin,cn=config там.

Похоже, вам может потребоваться настроить наложение уточнения, которое помогает поддерживать ссылочную целостность каталога в таких ситуациях, как описанная вами. Есть страница по адресу http://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrity что может быть полезно при настройке этого оверлея.