Особенности работы с LDAP фильтрами
Для того, чтобы в платформу Yva.ai загрузились только необходимые вам пользователи, необходимо правильно задать фильтр LDAP параметра AdfsUserSearchPattern в конфигурационном файле Exchange.
Конфигурационный файл находится в рабочем каталоге коннектора и называется ConnectorService.exe.config.
Чтобы корректно составить LDAP фильтр для указания прямых членов группы, рекомендуем скопировать из AD значение поля distinguishedName.
Для этого включите опцию Attribute Editor:
Перейдите в View,
Активируйте Advanced Features,
После этого нажмите на интересующую группу в AD,
Свойства → Attribute Editor,
Скопируйте поле distinguishedName.
Общий вид фильтра
В конфигурационном файле коннектора значение LDAP фильтра заносится в параметр AdfsUserSearchPattern. Фильтр определяет необходимые условия для включения объекта в результат запроса. LDAP-фильтр может содержать одно или более условий.
Результат условия — «Истина» или «Ложь». Общий вид фильтра:
<Фильтр>=(<Атрибут><оператор сравнения><значение>)
Условия фильтра могут быть объединены следующими операторами:
Оператор | Значение | Определение |
& | И | Все условия должны быть выполнены |
! | НЕТ | Условие внутри скобки не должно быть выполнено |
| | ИЛИ | Любое количество условий может быть соблюдено |
Фильтрация по атрибутам objectCategory и objectClass
В зависимости от атрибутов вашей AD, вы можете оперировать следующими комбинациями obectCategory и objectClass для фильтрации необходимых пользователей и/или групп, а также их контактов.
(samAccountType=805306368) - используется для обозначения всех пользователей. Данное значение равно значению (&(objectCategory=person)(objectClass=user)). Данный атрибут вы можете использовать, чтобы сразу выбрать всех пользователей или отсечь необходимое множество, добавив к значению другие операторы.
Таблица комбинаций objectCategory и objectClass.
objectCategory | objectClass | Результат |
---|---|---|
person | user | Пользователи |
person |
| Пользователи и контакты |
person | contact | Контакты |
| user | Пользователи и компьютеры |
computer |
| Компьютеры |
user |
| Пользователи и контакты |
| contact | Контакты |
| computer | Компьютеры |
| person | Пользователи, компьютеры и контакты |
contact |
| Пользователи и контакты |
group |
| Группы |
| group | Группы |
person | organizationalPerson | Пользователи и контакты |
| organizationalPerson | Пользователи, компьютеры и контакты |
organizationalPerson |
| Пользователи и контакты |
Ниже представлены основные атрибуты, используемые при составлении LDAP фильтров:
(mail=*) - выводит всех пользователей, у которых заполнен атрибут mail
memberOf - прямые члены группы
CN - общее имя
OU - группа
DC - компонент домена
Настройка фильтра параметра AdfsUserSearchPattern
Значение по умолчанию
В конфигурационном файле коннектора Exchange в параметре AdfsUserSearchPattern используется следующее значение по умолчанию:
<add key="AdfsUserSearchPattern" value="(&(samAccountType=805306368)(mail=*))" />
При данном значении параметра, коннектор заберёт из AD всех пользователей, у которых заполнен атрибут mail.
Измененный фильр параметра AdfsUserSearchPattern
Разберём более сложный LDAP фильтр для выделения прямых членов группы:
(&(samAccountType=805306368)(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(MemberOf=CN=worked,OU=Users,DC=ds,DC=local))
Данный фильтр отображает пользователей, находящихся в домене ds.local (DC=ds,DC=local)
, в группе Users (OU=Users)
, а также являющиеся прямыми членами группы c общим именем worked (MemberOf=CN=worked)
и исключает отключенных пользователей (!(userAccountControl:1.2.840.113556.1.4.803:=2)
. Также отображает всех пользователей с атрибутами person и user, у которых указан email (samAccountType=805306368)(mail=*)
.
(samAccountType=805306368) - используется для обозначения всех пользователей. Данное значение равно значению (&(objectCategory=person)(objectClass=user)).
Примеры LDAP фильтров
Ниже указаны примеры LDAP фильтров:
<add key="AdfsUserSearchPattern" value="(&(samAccountType=805306368)(mail=*)(memberOf=CN=yva_users,OU=Security Groups,OU=Management Group,OU=Moscow,OU=Branches,DC=company,DC=com))" />
<add key="AdfsUserSearchPattern" value="(&(samAccountType=805306368)(mail=*)(memberOf=CN=MyBusiness,OU=Users,OU=IngoMedRus,DC=company,DC=local)(memberOf=CN=MyBusiness,OU=Users,OU=IngoMedRus,DC=company,DC=local)(memberOf=CN=MyBusiness,OU=Users,OU=IT Users,DC=company,DC=local)(memberOf=CN=MyBusiness,OU=Users,OU=Regional Users,DC=company,DC=local)(memberOf=CN=MyBusiness,OU=Users,OU=SBSUsers,DC=company,DC=local))" />
<add key="AdfsUserSearchPattern" value="(&(samAccountType=805306368)(mail=*)(memberOf=CN=yva_users,OU=Security Groups,OU=Management Group,OU=Moscow,OU=Branches,DC=mos,DC=company,DC=com))" />
<add key="AdfsUserSearchPattern" value="(memberOf=CN=yvaDATAsync,CN=Users,DC=company,DC=local)" />
“AdfsUserSearchPattern” value=”(&(samAccountType=805306368)(mail=)(ObjectClass=User)(extensionAttribute8=YVA)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))(proxyAddresses=))”