LDAP-фильтр при поиске пользователей и групп в службе каталогов
Если при поиске пользователей и групп нужно исключить дублирующие учетные записи или нужно обращаться только к части каталога пользователей, а не ко всему каталогу, настройте LDAP-фильтр:
- На сервере с модулем Core Server откройте файл конфигурации сервера am/core/app-settings.json.
- Найдите секцию
UserCatalogи в параметреProvidersдляLdapзадайте атрибутыCatalogFilterиDnFilterдля фильтрации элементов пользовательского каталога:CatalogFilter— строка LDAP-запроса для фильтрации элементов на этапе выполнения запроса к каталогу пользователей. Не поддерживает фильтрацию по частичному совпадению атрибутов distinguishedName и canonicalName (для этих целей добавлен dnFilter).DnFilter(фильтр distinguishedName) — регулярное выражение для фильтрации результатов после выполнения LDAP-запроса к каталогу пользователей.
Дополнительная настройка для FreeIPA
Если вы используете каталог FreeIPA, вы можете скрыть системные каталоги (контейнеры) при поиске пользователей в Management Console:
На сервере с модулем Core Server откройте файл конфигурации сервера am/core/app-settings.json.
Найдите секцию
UserCatalogи в параметреProvidersдляLdapдобавьте атрибутCatalogFilter.Возможные значения для
CatalogFilter:"|(objectClass=person)(objectClass=ipausergroup)"— значение, при котором в качестве объектов службы каталогов при поиске пользователей отображаются только пользователи и группы."|(objectClass=person)(objectClass=ipausergroup)(entrydn=cn=users,cn=accounts,*)"— значение, при котором добавляется корневой каталог.
Дополнительная настройка для ALD Pro
Если вы используете каталог ALD Pro, вы можете скрыть системные каталоги (контейнеры) при поиске пользователей в Management Console:
На сервере с модулем Core Server откройте файл конфигурации сервера am/core/app-settings.json.
Найдите секцию
UserCatalogи в параметреProvidersдляLdapдобавьте атрибутCatalogFilter.Для
CatalogFilterукажите следующее значение, при котором в качестве объектов службы каталогов при поиске пользователей отображаются все подразделения и пользователи, а системные контейнеры исключаются."|(objectClass=person)(objectClass=ipausergroup)(entrydn=cn=users,*)(entrydn=cn=orgunits,*)(entrydn=*,cn=orgunits,*)"При необходимости задать поиск по конкретным подразделениям, укажите имена этих подразделений вместо
*.Пример для подразделения NAME_OU"|(objectClass=person)(objectClass=ipausergroup)(entrydn=cn=users,*)(entrydn=cn=orgunits,*)(entrydn=NAME_OU,cn=orgunits,*)"
Примеры использования фильтров для Active Directory, Samba DC, РЕД АДМ
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$))