Мы наблюдаем странную проблему с запросами LDAP в Active Directory.
Ситуация такова: у нас есть группа безопасности в данной OU. Этой группе безопасности необходимо полностью перейти на разные ОУ.
У нас есть приложение, которое использует LDAP для аутентификации в AD и запрашивает с помощью Active Directory. LDAP_MATCHING_RULE_IN_CHAIN, так что он поддерживает встроенные группы:
(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=SA Users,OU=System Administrators,OU=Departments,DC=ds,DC=example,DC=com)
Пример запроса:
ldapsearch -LLL -x -W -H 'ldap://ny-dc02.ds.example.com:389' -D '[binding account details]' -b 'OU=Departments,DC=ds,DC=example,DC=com' '(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=SA Users,OU=System Administrators,OU=Departments,DC=ds,DC=example,DC=com)' dn
Как и ожидалось, он возвращает полный список пользователей, которые принадлежат запрошенному OU.
Однако, если мы переместим эту группу из Departments\System Administrators
и в Security Groups\System Administration
(и соответствующим образом обновите запрос):
(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com)
например:
ldapsearch -LLL -x -W -H 'ldap://ny-dc02.ds.example.com:389' -D '[binding account details]' -b 'OU=Security Groups,DC=ds,DC=example,DC=com' '(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com)' dn
Мы не получаем никаких результатов от поиска LDAP.
Наша первая мысль была: «Ой, наверное, что-то кеширует». Но мы оставили группу безопасности в ее новом подразделении на несколько часов и по-прежнему наблюдали те же результаты.
Кто-нибудь видел что-нибудь подобное раньше? Есть предложения по дальнейшему устранению неполадок?
Предполагается, что база поиска должна указывать на то, где находится ПОЛЬЗОВАТЕЛЬ, а не на то, где находится группа (расположение группы уже включено в опцию). Таким образом, независимо от того, где находится группа, ваша база поиска должна оставаться такой же (если пользователь не был перемещен).
Насчет разрешений. Есть ли у приложения разрешение на поиск в новом организационном подразделении? Я бы посмотрел на действующие права на старые и новые OU.
Кроме того, я хотел бы подтвердить, что новое место на самом деле является OU. в AD можно создавать объекты «Контейнер», так же как контейнер «Пользователи» не является подразделением. Таким образом, DN изменится с: CN = SystemAdministrators, OU = System Administration, OU = Security Groups, DC = ds, DC = example, DC = com на: CN = SystemAdministrators,CN = Системное администрирование, OU = группы безопасности, DC = ds, DC = example, DC = com