Синтаксис фильтра поиска LDAP (ТОЛЬКО) для идентификации объектов в определенном подразделении (AD) - PullRequest
1 голос
/ 10 октября 2019

Многие из приложений, не относящихся к LDAP, которые взаимодействуют с AD (например, приложения, которые читают в объектах или используют AD для аутентификации), позволяют указывать только фильтр поиска LDAP. Однако проблема в том, что я не могу ограничить запрос чем-либо ниже уровня раздела домена по умолчанию (по крайней мере, AFAIK).

В попытке решить эту проблему я пробовал поисковые фильтры, например:

(&(objectClass=user)(objectCategory=person)(distinguishedname=*,OU=MyNamedOU,DC=*))

... однако, после того, как это не сработало, я начал искать статьи о том, как вы можете 't запрос, основанный на различающемся имени, поскольку это составной атрибут.

Независимо от того, есть ли способ ограничить запрос конкретным подразделением, основанным только на синтаксисе фильтра поиска?

TIA

1 Ответ

3 голосов
/ 10 октября 2019

Active Directory не позволяет вам искать частичное совпадение на distinguishedName. Если в запросе указано distinguishedName, это может быть только точное совпадение. Это справедливо для любого атрибута, который принимает distinguishedName, например manager, member и т. Д.

На самом деле нет способа ограничить запрос конкретным подразделением одной строкой запроса, посколькунет поискового атрибута, который имеет OU. Если вы хотите искать только определенные OU, вам нужно будет либо:

  1. Поиск одного OU, установив для него SearchRoot (иногда называемый «базой поиска»)OU, а не весь домен. Вы также можете установить SearchScope на SearchScope.OneLevel, чтобы не выполнять поиск в подразделениях, если хотите. Повторите поиск для каждого подразделения, которое вы хотите включить. Или
  2. Найдите в самой верхней OU те результаты, которые вам нужны, просматривайте результаты и отбрасывайте те в OU, которые вам не нужны, взглянув на distinguishedName. (поскольку у вас уже есть результаты на данный момент, distinguishedName - это просто строка, с которой вы можете делать все, что захотите, включая частичное совпадение)

Второй вариант обычно будет быстрее, так как онозначает один поиск по AD, а не по нескольким, но это зависит от того, сколько результатов вы получите и сколько отбрасываете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...