Я необходимо выполнить один запрос LDAP, который будет выполнять поиск по двум конкретным организационным единицам (OU) в корневом запросе, однако мне это нелегко. Я пробовал следующие запросы ниже, и ни один из них не увенчался успехом:
(|(OU=Staff,DC=my,DC=super,DC=org)(OU=Vendors,DC=my,DC=super,DC=org))
((OU=Staff,DC=my,DC=super,DC=org) | (OU=Vendors,DC=my,DC=super,DC=org))
My вопрос в том, можно ли запросить более одного OU в одном запросе? Предполагая, что это правильный синтаксис для этого типа выражения в корневом запросе LDAP.
Я не думаю, что это возможно с нашей эры. Единственное, что я знаю, - это отличительный атрибут, который содержит фрагмент OU, в котором вы пытаетесь выполнить поиск, поэтому вам понадобится подстановочный знак, чтобы получить результаты для объектов в этих подразделениях. К сожалению, подстановочный знак не поддерживается в DN.
Если это вообще возможно, я бы действительно посмотрел на это в двух запросах, используя OU = Staff ... и OU = Vendors ... в качестве базовых DN.
Ответ НЕТ, ты не можешь. Почему?
Поскольку стандарт LDAP описывает LDAP-SEARCH как вид функции с 4 параметрами:
Вы заинтересованы в фильтре. У вас есть резюме здесь (оно предоставлено Microsoft для Active Directory, оно стандартно). Фильтр логическим образом состоит из выражения типа Attribute Operator Value
.
Так что фильтр, который вы даете, ничего не значит.
С теоретической точки зрения существует ExtensibleMatch , который позволяет создавать фильтры buildind на пути DN, но он не поддерживается Active Directory.
Насколько я знаю, вы должны использовать атрибут в AD, чтобы различать пользователей в двух подразделениях.
Это может быть любой существующий атрибут дискриминатора или, например, атрибут с именем OU, который унаследован от класса organizationalPerson
. Вы можете установить его (оно не является автоматическим и не будет поддерживаться при перемещении пользователей) с помощью «персонала» для одних пользователей и «поставщиков» для других, и они используют фильтр:
(&(objectCategory=person)(|(ou=staff)(ou=vendors)))