Перейти к основному содержимому

LDAP-фильтр при поиске пользователей и групп в Active Directory

Если при поиске пользователей и групп нужно исключить дублирующие учетные записи Active Directory (AD) или нужно обращаться только к части каталога пользователей, а не ко всему каталогу, то можно настроить LDAP-фильтр.

Для этого нужно:

  1. На сервере Indeed AM открыть файл конфигурации сервера C:\inetpub\wwwroot\am\core\Web.config.
  2. Найти секцию adUserCatalogProvider и задать в ней атрибуты catalogFilter и dnFilter для фильтрации элементов пользовательского каталога:
    1. catalogFilter — строка LDAP-запрос для фильтрации элементов на этапе выполнения запроса к AD. Не поддерживает фильтрацию по частичному совпадению атрибутов distinguishedName и canonicalName (для этих целей добавлен dnFilter);
    2. dnFilter (фильтр distinguishedName) — регулярное выражение для фильтрации результатов после выполнения LDAP-запроса к AD.

Примеры использования фильтров

catalogFilter

  • исключение определенных пользователей &(!(name=AmUser1))(!(name=AmUser2)(!(name=AmUser3)))
  • исключение всех дочерних элементов первого уровня указанной OU
    !(msDS-parentdistname=OU=AmOrgUnit,OU=AmUserCatalog,DC=dom,DC=local)
  • исключение всех членов группы
    !(memberOf=CN=AmGroup,OU=AmUserCatalog,DC=dom,DC=local)

dnFilter

  • исключение OU и всех дочерних элементов (?!^.*OU=MyOULevel1,OU=AmUserCatalog,DC=dom,DC=local$)(^.*$)

  • использование только указанной OU
    (^.*OU=MyOULevel1,OU=AmUserCatalog,DC=dom,DC=local$)

  • комбинированный фильтр — использование только указанной OU без определенных дочерних элементов (?!.*OU=MyOULevel2-1,OU=MyOULevel1,OU=AmUserCatalog,DC=dom,DC=local$)(^.*OU=MyOULevel1,OU=AmUserCatalog,DC=dom,DC=local$)

  • конструкция с фильтрацией нескольких OU через оператор | (или) - любое количество условий может быть соблюдено, использование полных distinguishedName указанной OU

    ((^.*OU=Indeed3,OU=IndeedUnit,DC=indeed,DC=local$)|(^.*OU=Indeed4,OU=IndeedUnit,DC=indeed,DC=local$))