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

OpenLDAP slapo-unique дает сбой с UID

У меня есть несколько веток в моем каталоге LDAP, которые все используют атрибут UID как часть DN. Недавно мне было поручено обеспечить уникальность атрибута UID по всем направлениям, чтобы UID не мог совпадать от одного поддерева к другому.

Использование slapo-unique действительно работает до определенной степени. Проблема возникает, когда я добавляю пользователя, но не определяю явно атрибут UID в LDIF или приложении, выполняющем импорт.

Сначала предположим, что у меня определено следующее правило:

olcUniqueURI: ldap:///dc=domain,dc=com?uid?sub?(objectClass=inetOrgPerson)

Теперь, в качестве примера, предположим, что у меня есть существующий пользователь с DN "uid = userj, ou = People, dc = domain, dc = com"

Затем я добавляю следующий ldif:

dn: uid=userj,ou=OtherPeople,dc=domain,dc=net
givenName: Joe
objectClass: inetOrgPerson
cn: Joe User
sn: User
uid: userj
mail: userj@domain.com

Как и следовало ожидать, я получаю сообщение об уникальности uid. Проблема возникает сейчас, когда я явно не включаю UID, но полагаюсь на то, что он будет установлен через slapd при импорте, потому что он определен как отличительное имя:

dn: uid=userj,ou=OtherPeople,dc=domain,dc=net
givenName: Joe
objectClass: inetOrgPerson
cn: Joe User
sn: User
mail: userj@domain.com

И это разрешено. После добавления этого запроса поиск с использованием фильтра поиска "(uid = userj) найдет два DN:

uid = userj, ou = People, dc = domain, dc = com и uid = userj, ou = OtherPeople, dc = domain, dc = net

И оба они покажут, что у них есть атрибут UID, установленный на «userj». Глядя на журналы отладки для slapd, когда я явно не устанавливаю UID в ldif (что не должно быть необходимым, поскольку это подразумевается из нового DN), журналы показывают, что он никогда не запрашивает LDAP для этого атрибута UID.

Итак, у кого-нибудь есть предложение, как я могу обойти эту проблему? Очевидно, я предлагал людям всегда и неявно определять атрибут UID, даже если он является частью DN, но некоторые люди упрямы и любят находить способы нарушить ограничения.

Заранее спасибо;