Active Directory
Общие положения
Интеграция и синхронизация системы мониторинга с Active Directory посредством протокола LDAP предоставляет расширенные возможности управления пользователями и группами через внешнюю службу.
- Синхронизация пользователей и групп AD с Monq происходит через каталоги пользователей
 - Пользователи и группы в AD сопоставляются с группами пользователей и автоматически клонируются в Monq. Любые изменения этих объектов в AD отражаются в платформе.
 - Все синхронизируемые с AD объекты могут быть отредактированы только через службу каталогов Active Directory. Изменения в интерфейсе Monq возможны только при выключенной синхронизации.
 - Пользователи могут авторизоваться в Monq с помощью учетной записи AD без необходимости использования отдельного окна для ввода данных. Аутентификация выполняется сначала через AD, а затем через локальный сервис Monq, если это необходимо.
 
Администратору доступны следующие действия:
- Изменять конфигурацию подключения
 - Включать и выключать синхронизацию
 - Определять интервал автоматической синхронизации
 - Запускать синхронизацию вручную
 - Выполнять валидацию настроек
 
Синхронизация
По умолчанию синхронизация с Active Directory запускается 1 раз в минуту. Администратор пространства может изменить этот интервал.
Алгоритм синхронизации пользователей
| в AD | в Monq | результат | 
|---|---|---|
| создается пользователь | пользователь не существует | пользователь создается в Monq | 
| создается пользователь | пользователь существует | пользователь синхронизируется по email, имени и набору групп, приводится в соответствие с данными AD | 
| редактируется пользователь | пользователь существует | в Monq обновляются имя и набор групп пользователя | 
| почта пользователя меняется с А на Б | существует пользователь с почтой А | в Monq почта А меняется на Б | 
| почта пользователя меняется с А на Б | существует пользователь с почтой Б | 1. пользователь AD привязывается к пользователю Monq с почтой Б  2. пользователь Monq с почтой А удаляется  | 
| блокируется пользователь | пользователь не существует | ничего не происходит | 
| блокируется пользователь | пользователь активен | пользователь блокируется в Monq | 
| удаляется пользователь | пользователь существует | пользователь удаляется в Monq | 
| пользователь не существует | создается пользователь | в AD никаких изменений не происходит | 
| пользователь существует | создается пользователь | создание пользователя в Monq невозможно | 
| пользователь существует | редактируется пользователь | редактирование пользователя запрещено, все изменения определяются данными AD | 
| пользователь существует | блокируется пользователь | при следующей синхронизации статус пользователя обновляется в соответствии с AD | 
Алгоритм синхронизации групп
| в AD | в Monq | результат | 
|---|---|---|
| создается группа | группа не существует | группа создается в Monq | 
| создается группа | группа существует | в Monq обновляются название и состав группы в соответствии с AD | 
| редактируется группа | группа существует | в Monq обновляются название и состав группы в соответствии с AD | 
| удаляется группа | группа существует | группа удаляется из Monq | 
| группа не существует | создается группа | в AD никаких изменений не происходит | 
| группа существует | создается группа | создание группы в Monq невозможно | 
| группа существует | редактируется группа | редактирование группы запрещено, все изменения определяются данными AD | 
Настройка синхронизации
Чтобы настроить синхронизацию с Active Directory, выполните следующие действия:
- Перейдите в Администрирование → Настройки пространства → LDAP
 - В блоке «Конфигурация интеграции с LDAP» укажите:
- Периодичность
 - Хост — адрес сервера Active Directory
 - Порт — номер порта для подключения
 - Использовать SSL — флаг, определяющий использование защищенного соединения
 - Имя пользователя — учетная запись с доступом к Active Directory
 - Пароль — пароль от учетной записи
 - Базовое DN
Например:DC=int,DC=loc - Дополнительное DN пользователей
Например:OU=Organization_6703 - Дополнительное DN групп
Например:OU=Organization_6703 - Разбивать запросы на пакеты — опция дробления запросов на более мелкие
 - Фильтр пользователей / групп
В отличие от Дополнительных DN, которые ограничивают область поиска в ветви каталога, фильтры LDAP позволяют более точно отобрать нужные записи внутри этой области, используя заданные условия.
Например:(memberOf=cn=MonqAccess,OU=Organization_6703,DC=int,DC=loc)- для получения пользователей указанной группы
Например:(groupType:1.2.840.113556.1.4.803:=2147483648)- для получения групп только с типомsecurity 
 - Нажмите «Сохранить»
 - Включите синхронизацию
 

Перед началом синхронизации выполняется проверка доступности сервера Active Directory:
- При успешном подключении вокруг блока «Последняя синхронизация» появляется зеленый индикатор
 - При ошибке подключения загорается красный индикатор и указывается причина ошибки синхронизации:

 
Синтаксис фильтра LDAP позволяет выполнять фильтрацию с учетом вложенности.
Для этого используется фильтр в следующем формате:
(memberOf:1.2.840.113556.1.4.1941:= cn=Test,ou=East,dc=Domain,dc=com)
Например, у нас есть объекты со следующей вложенностью:
OU=Organization  
└─ Group_Level2 (группа)  
        └─Worker2 (пользователь)  
        └─ Group_Level3 (группа)  
                └─ Worker3 (пользователь)
И нам необходимо создать пользователей из группы Group_Level2, при этом рекурсивно по всем подуровням.
Тогда в «Фильтр пользователей» мы укажем:
(memberOf:1.2.840.113556.1.4.1941:=CN=Group_Level2,OU=Organization,DC=int,DC=loc)
Почти аналогичная ситуация и с фильтром групп. Разница только в том, что нужно добавить условие "ИЛИ", чтобы помимо вложенных групп, создалась и указанная:
(|(cn=Group_Level2_6703)(memberOf:1.2.840.113556.1.4.1941:=CN=Group_Level2_6703,OU=Organization_6703,DC=int,DC=loc))
Полное описание синтаксиса и возможных вариантов фильтрации можно найти на странице документации Microsoft Active Directory: LDAP Syntax Filters
Тест соединения
Перед сохранением и началом синхронизации администратор может выполнить предварительную валидацию настроек с помощью кнопки Тест соединения
Это позволяет убедиться в корректности введенных данных и устранить возможные ошибки до запуска синхронизации.
Результат проверки отображается в виде уведомления с одним из статусов:
- Соединено — подключение успешно, данные заполнены корректно
 - Ошибка соединения — подключение не удалось, требуется проверить и скорректировать введенные параметры
 

Дробление запросов
Опция «Разбивать запросы синхронизации на пакеты» используется для обхода ограничений LDAP-службы на количество записей в одном ответе (в Active Directory по умолчанию — 1000).
При включении запрос делится на части, каждая из которых содержит указанное количество записей. Запросы выполняются последовательно до получения всех данных.
Если указано значение выше лимита AD — часть данных не будет получена.
Авторизация
Возможность авторизации пользователя определяется администратором пространства выбранными способами аутентификации в профиле пользователя.
Для пользователей, изначально созданных внутри Monq, установлен способ аутентификации «Local».
Если включена синхронизация с LDAP и пользователь в AD уже существует, в настройках его профиля активируется способ аутентификации «Active Directory».
Для новых пользователей, созданных в результате синхронизации с AD, по умолчанию разрешается только способ аутентификации через Active Directory, а на почту направляется соответствующее письмо с уведомлением.
