Каталог доступа
В этой статье:
Общее описание
Статья описывает интеграцию с Active Directory через создание LDAP-подключения в разделе "Каталог доступа".
Взаимодействие с Active Directory (AD) связывает учетные записи пользователей Windows с пользователями Юниверс MDM. Позволяет авторизоваться через учетную запись Windows и получать права доступа в Юниверс MDM.
Примечание
Раздел "Каталог доступа" доступен для работы, если пользователю назначена роль с правом Каталог доступа
Протокол LDAP используется в Юниверс MDM для взаимодействия с Active Directory (и другими способами аутентификации).
Для интеграции создается LDAP-сервер и подключается к Active Directory. Active Directory имеет собственную структуру объектов, которая настраивается под требуемую IT-инфраструктуру.
Также разные версии Active Directory могут использовать разные фильтры. Для проверки настройки фильтров используйте кнопку "Проверить подключение".
Структура запроса для LDAP может быть создана администратором Active Directory.
При возникновении сложностей с настройкой интеграции воспользуйтесь поиском в интернете. Полезные ссылки:
Создание LDAP-подключения
Чтобы создать подключение:
- Убедитесь, что открыт раздел "Каталог доступа". 
- Заполните основные параметры во вкладке "LDAP-подключения" (Рисунок 1): - URL сервера. Обязательный. 
- Порт. Обязательный. Значения по умолчанию: с ssl сертификатом - 636, без сертификата - 389. 
- Логин. Обязательный. Указывается значение атрибута AD "distinguishedName" (например, "CN=mdmADTest,CN=Users,DC=achrf,DC=ru"). 
- Пароль. При обновлении не требуется указание пароля, если он не был изменен. 
- Использовать SSL сертификат. Включение флага подразумевает, что в java на сервере mdm установлен сертификат. 
- Участники. Имя атрибута, в котором указан список групп, где участвует пользователь. Заполняется на основании настроек AD. Если поле пустое или некорректно заполненное - пользователь не будет привязан к своим группам. Проверьте, что поле "Участники" заполнено. Значение должно соответствовать настройкам AD, чаще всего это memberOf или members. Пользователи должны входить в группы AD. 
- Максимальное количество пользователей. По умолчанию, количество записей в AD - не более 1000. Пагинация отсутствует. Если настройки сервера AD изменены в большую сторону, то параметр можно отредактировать, но не более, чем указано в настройках сервера (подробности см. в официальной документации). 
 
- При необходимости нажмите кнопку  "Проверить подключение", чтобы осуществить проверку корректности подключения. "Проверить подключение", чтобы осуществить проверку корректности подключения.
- Принудительный запуск операции синхронизации доступен при нажатии кнопки "Синхронизировать". 
- Перейдите во вкладку "Домены безопасности". 
- Заполните основные параметры домена (Рисунок 2): - Домен безопасности. Обязательный. Имя домена безопасности. 
- Базовый поиск пользователей. База для поиска. Например, при "distinguishedName" выглядит как "CN=mdmADTest,CN=Users,DC=achrf,DC=ru", в поле "Базовый поиск пользователей" нужно указать "CN=Users,DC=achrf,DC=ru". 
- Фильтр пользователей. Дополнительный фильтр пользователей. Чтобы отфильтровать только пользователей с именем "mdmADTest", необходимо указать фильтр (&(objectcategory=user)(CN=mdmADTest)). Фильтр поддерживает поиск по маске. Чтобы найти нескольких пользователей "mdmADTest_1", "mdmADTest_2", "mdmADTest", необходимо указать фильтр (&(objectcategory=user)(CN=mdmADTes*)). 
- Базовый поиск групп. Заполняется аналогично параметру "Базовый поиск пользователей" - только для групп. 
- Фильтр групп. Заполняется аналогично параметру "Фильтр пользователей" - только для групп. Например, указав в поле "Фильтр пользователей" (&(objectCategory=group)|(CN=Администратор*)), будут доступны только группы, начинающиеся с "Администратор" (Администраторы, Администратор ролей и т.д) 
 
- Нажмите кнопку  "Предварительный просмотр", чтобы убедиться, что параметры верны и производится выборка необходимых групп/пользователей. В результате действия будут получены и отображены пользователи и группы согласно фильтрам в настройках домена с сервера AD. "Предварительный просмотр", чтобы убедиться, что параметры верны и производится выборка необходимых групп/пользователей. В результате действия будут получены и отображены пользователи и группы согласно фильтрам в настройках домена с сервера AD.
- Чтобы настроить регулярность синхронизации - перейдите во вкладку "Расписание". 
- В поле CRON выражение задайте периодичность запуска синхронизации. При наведении курсора на значок  в конце строки отобразится всплывающая подсказка с возможными вариантами расписания. в конце строки отобразится всплывающая подсказка с возможными вариантами расписания.
- После внесения всех необходимых изменений - нажмите  "Сохранить" в верхнем правом углу экрана. "Сохранить" в верхнем правом углу экрана.
 
Рисунок 1 – Вкладка "LDAP-подключения"
 
Рисунок 2 – Вкладка "Домены безопасности"
Сохранение данных атрибутов из AD
Чтобы сохранять данные атрибутов Active Directory в данные пользователя системы Юниверс MDM, необходимо создать дополнительные параметры пользователя.
Поле "Имя" - имя параметра - должно совпадать со значением имени атрибута AD.
После синхронизации дополнительные параметры будут заполнены значениями из атрибутов пользователя AD.
Если изменить значения доп.параметров через интерфейс Юниверс MDM - при следующей синхронизации они будут перезаписаны значениями из AD.
 
Рисунок 3 – Создание дополнительного параметра учетной записи
 
Рисунок 4 – Загрузка учетной записи вместе с дополнительным параметром
Выбор формата импорта ФИО из AD
При настройке интеграции с Active Directory есть возможность выбирать формат для разбора атрибута из учетной записи пользователя на сервере AD name.
В качестве значения по умолчанию выставлен формат "Фамилия / Имя / Отчество".
Пример:
Учетная запись на сервере AD содержит поля "Имя" и "Фамилия".
Создано 2 пользователя: либо в разных доменах (порядок имени и отчества различается); либо оба пользователя в одном домене, но имя и фамилия одного перепутаны местами:
- Имя "Петр", фамилия "Александров", 
- Имя "Петров", фамилия "Александр". 
Настройка:
В настройках раздела "Каталог доступа" во вкладке "Домены безопасности" необходимо создать 2 домена с разными фильтрами:
Первый:
- Базовый поиск пользователей: - CN=Users,DC=achrf,DC=ru
- Фильтр пользователей: - (&(objectcategory=user)(CN=Петр Александров))(формат имени "Имя/Фамилия")
Второй:
- Базовый поиск пользователей: - CN=Users,DC=achrf,DC=ru
- Фильтр пользователей - (&(objectcategory=user)(CN=Петров Александр))(формат имени "Фамилия/Имя")
В результате в процессе выполнения операции синхронизации в системе сохраняются два пользователя с корректным заполнением имени и фамилии.
Авторизация через AD
Авторизация через AD происходит без применения дополнительных настроек. Пользователь будет загружен, сохранен и добавлен в группы, которые уже существуют в системе Юниверс MDM. Для авторизации используется логин от учетной записи Windows.
Синхронизация с AD
- Конфигурация Active Directory читается из БД. 
- По всем доменам загружаются группы, далее сохраняются или обновляются в Юниверс MDM. Группы, неудовлетворяющие фильтрам, удаляются из системы. 
- Далее загружаются пользователи (по всем доменам), сохраняются или обновляются в системе. Если пользователь уже существует (например, создан через интерфейс), то он не будет сохранен или обновлен информацией из AD. 
- Пользователям, имеющим доступы к ресурсам безопасности: "Роли" и "Пользователи", будет доступен отчет в Уведомлениях системы. При этом учитываются только персональные роли - роли из групп игнорируются. Детализация отчета доступна по одноименной кнопке. 
Примечание
Если в системе настроена синхронизация по LDAP, в группу вручную добавляется пользователь, после чего происходит синхронизация, то группа обновится именно так как в LDAP.
Отображение дополнительных параметров учетной записи Active Directory в Windows (Рисунок 5/6):
 
 
Рисунок 5/6 – Отображение дополнительного параметра
Вопросы и ответы
Сокращения:
- AD - active directory 
- Система - платформа Юниверс 
Как мне загрузить больше 1000 пользователей?
Выставить необходимое число в поле "Максимальное количество пользователей". Это количество пользователей, которое будет выгружено из каждого домена.
Когда система получает свежие данные о пользователе AD?
Данные пользователя в системе обновляются только в процессе операции синхронизации или после успешной авторизации.
Я изменил данные пользователя в Системе. После синхронизации поля изменились на поля из учетной записи AD
Информация из AD считается приоритетной, каждый раз после синхронизации/успешной авторизации пользователя в Системе, его данные будут обновлены на актуальные из AD.
Я заблокировал учетную запись в Системе, но пользователь может продолжать работу после синхронизации с AD
Информация из AD считается приоритетной, каждый раз после синхронизации/успешной авторизации пользователя в Системе, его учетная запись будет деактивирована/активирована согласно AD.
Я заблокировал пользователя в AD, но он продолжил работать в Системе
Система обновляет учетные записи пользователей только при синхронизации/авторизации в Системе. После синхронизации учетная запись пользователя станет неактивной, пользовательская сессия будет завершена.
У меня не выгрузился пользователь
userPrincipalName используется в Системе как логин пользователя. Пользователь без заполненного атрибута userPrincipalName не будет сохранен в Системе. Если login пользователя содержит недопустимые символы, пользователь  не будет сохранен в Системе. Допустимые символы: латинские буквы, цифры, символы тире, подчеркивания ( _  ) и точки (.). Логин может начинаться с цифры, знак @ в логине недопустим, пробел в логине недопустим.
У меня выгрузился пользователь без фамилии/имени/отчества или ФИО перепутано местами
Имя пользователя читается из атрибута givenName, фамилия из sn, отчество из initials, т.к. многие компании указывают отчество работника в поле "Инициалы". Система при считывании пользователя формирует строку givenName sn initials , что соответствует паттерну разбора "имя / фамилия / отчество". Если в AD в поле "Имя" записывается Имя Отчество, поле "Инициалы" не заполняется, то необходимо изменить паттерн разбора ФИО на "имя / отчество / фамилия".
Я изменил "userPrincipalName" у пользователя в AD, в Системе теперь 2 пользователя
userPrincipalName используется в Системе как логин пользователя. Если userPrincipalName изменен, в системе будет создан новый пользователь.
В конфигурации домена я указал фильтр на группы, но пользователи в них не добавились
Фильтр групп отвечает только за выгрузку групп, если фильтр пользователей не задан, пользователи не будут выгружены.
Я указал фильтр пользователей и фильтр групп, но пользователи не добавились в группы
Проверьте, что поле "Участники" заполнено. Значение должно соответствовать настройкам AD, чаще всего это memberOf или members. Пользователи должны входить в группы AD.
Я хочу выгрузить только активных пользователей
В большинстве случаев достаточно добавить в фильтр пользователей выражение (!(userAccountControl:1.2.840.113556.1.4.803:=2)). Если фильтр работает некорректно, обратитесь к документации AD.
Я хочу выгрузить всех пользователей с именем, начинающимся на букву П
Используйте в фильтре *. Добавьте в фильтр пользователей выражение (SN=П*).
При неуспешной авторизации по SSO в Журнале аудита не отображается логин пользователя
На этапе авторизации через SSO система не имеет данных о логине доступа, в лог записывается пустое значение.
При синхронизации у меня возникает ошибка LDAP: error code 3 - Timelimit Exceeded
Увеличьте значение переменной com.universe.mdm.ldap.integration.ldap.connection.time.limit.
При блокировке учетной записи непосредственно в Системе (в интерфейсе пользователя) сессия пользователя закрывается
Это корректное поведение. Так как учетная запись заблокирована, то и текущая сессия должна быть немедленно завершена.
Что если пользователь не попал по фильтрам ни в одну из групп?
Если внешний пользователь не попал по фильтрам ни в одну из групп, полученных из AD, то пользователь зайти в Систему сможет, но объекты в Системе не увидит.

