LDAP интеграция с MS AD¶
Функциональные требования¶
Для целей интеграции системы Оптимакрос с существующей инфраструктурой AD для учета пользователей и разграничения доступа, требуется:
- Подключение ПО Оптимакрос к существующему серверу Microsoft Active Directory, используя заранее выданную информацию: сетевой адрес сервера, логин и пароль1. Эти данные должны использоваться только для осуществления подключения системы Оптимакрос к серверу Active Directory и не должны быть привязаны к пользователю Оптимакрос и использоваться для проверки его уровня доступа.
- Проверка пользовательских учетных записей, хранящихся в AD, на момент входа пользователя в систему Оптимакрос. Для идентификации пользователя и проверки его учетной записи, используется имя учетной записи пользователя в AD в формате email и пароль пользователя, при этом пароль пользователя не должен сохраняться во внутренних БД Оптимакрос.
- К работе с системой Оптимакрос должны допускаться только пользователи,
отвечающие следующим требованиям:
- Пользователь должен ввести верное имя своей учетной записи AD и пароль от неё.
- Учетная запись пользователя в AD не должна быть удалена или заблокирована.
- Учетная запись пользователя в AD должна быть членом заранее указанной группы AD.
- Одной учетной записи пользователя AD должна соответствовать одна учетная запись пользователя Оптимакрос.
- Наряду и одновременно с проверкой пользовательских учетных записей на сервере AD, система Оптимакрос должна обеспечивать доступ к этим же или другим учетным записям пользователей Оптимакрос, используя встроенный в неё механизм проверки логинов и паролей, не связанный с AD.
- Управление правами и доступом пользователя в системе Оптимакрос должно выполняться средствами самой системы Оптимакрос, не используя данные учетных записей, хранящиеся в Active Directory.
- Администратор системы Оптимакрос должен иметь возможность добавлять, удалять или редактировать связь учетных записей AD и учетных записей Оптимакрос вручную в Логин-Центре Оптимакрос.
Порядок действий при интеграции с MS AD¶
- Запросить у заказчика данные для подключения к существующему серверу Microsoft Active Directory (сетевой адрес сервера, логин и пароль) Необходимые данные для интеграции с MS AD.
- Установить подключение к контроллеру (контроллерам) AD, используя предоставленные заказчиком данные.
- Настроить внешний вид стартовой страницы ЛЦ, добавить дополнительный способ аутентификации.
- Перезагрузить ЛЦ Оптимакрос кнопкой Restart Login Center в разделе System.
- Создать аккаунты пользователей в ЛЦ Оптимакрос.
- Привязать аккаунты AD к аккаунтам ЛЦ Оптимакрос.
- Выполнить аутентификацию и тестирование подключения.
- Определить и устранить ошибки (при необходимости).
Подключение к контроллеру AD¶
Подключение ЛЦ Оптимакрос к существующему серверу Microsoft Active Directory
настраивается в профиле администратора в разделе настроек authentication на
странице admin/config/authentication.
Порядок подключения к контроллеру AD¶
В настройках authentication на странице admin/config/authentication в
разделе MS ACTIVE DIRECTORY/ LDAP DRIVERS вводятся предоставленные данные:
сетевой адрес сервера, логин и пароль, а также другие параметры.

Формат значений и соответствие полей приведены в разделе Настройка подключения к контроллеру (контроллерам) AD
Логин и пароль необходимо предварительно добавить в менеджере секретов. При наличии нескольких контроллеров AD, указываются параметры для подключения ко всем контроллерам.

При наличии в AD нескольких папок, в которых находятся пользователи, может потребоваться настроить отдельные подключения к этим папкам. На странице входа через корпоративную учетную запись (Sign in with Active Directory) отразится список всех интеграций.

При конфигурировании интеграции с Active Directory (или другим серверам каталогов) по протоколу LDAP или LDAPS, допустимые форматы адреса для подключения, следующие:
- ldap://<адрес или доменное имя>
- ldap://<адрес или доменное имя>:<порт>
- ldaps://<адрес или доменное имя>
- ldaps://<адрес или доменное имя>:<порт>
Info
При пропущенном значении <порт> используются значения по умолчанию: 389 для LDAP и 636 для LDAPS.
Подключение производится только по протоколу TCP, протокол UDP не поддерживается.
Допустимые значения для <адрес или доменное имя>:
- Числовой IPv4 адрес вида: хх.хх.хх.хх.
-
Текстовое доменное имя (вида server.company.com), при этом доменное имя должно разрешаться на IPv4 адрес доступным с сервера установки Логин Центра контроллером DNS. Разрешение адреса путём локальной конфигурации через файл
/etc/hostsили др. не поддерживается.- Допустимо разрешать доменное имя на список из нескольких IPv4 адресов с произвольными весами, при этом по каждому из адресов на указанном порту должен быть доступен сервер LDAP/LDAPS (контроллер Active Directory или другое ПО), предоставляющий доступ к одному и тому же дереву каталогов (т.н. балансировка нагрузки)
- Доменное имя должно разрешаться на IPv4 адрес посредством A или CNAME записи в домене, поиск серверов LDAP/LDAPS по SRV записям не поддерживается.
Настройка страницы входа¶
По умолчанию вход в систему Оптимакрос осуществляется через логин и пароль
аккаунта, созданного и зарегистрированного в Оптимакрос. На стартовой странице
доступен вход по умолчанию, другие возможные типы аутентификации доступны при
переходе по ссылке Other ways to sign in.

Добавить вход через AD, который будет доступен со стартовой страницы по ссылке
Other ways to sign in, можно прописав соответствующие ключи и значения в
разделе Config/ Urls. Сделать это может пользователь с ролью Admin или
Service Admin. При необходимости стартовую страницу Оптимакрос можно настроить
на определенный способ входа (см.
Установка способа входа по умолчанию).

| Название параметра на форме | Значение параметра | Описание параметра |
|---|---|---|
| Title | Active Directory | Название, которое отображается в окне выбора способа входа |
| Matching drivers | ^activedirectory- | Регулярное выражение для поиска драйверов аутентификации для показа на странице входа |
| User selectable | true | true = показывать пользователям в списке доступных форм входа. false = не показывать. При любом значении страница входа доступна при вводе URL (см. параметр URL) |
| Form template | activedirectory | Шаблон страницы входа (всегда «activedirectory») |
| URL | ##1=ad,##2=activedirectory |
Один или несколько путей страницы входа в URL относительно корня сайта (/) |
После внесения изменений в Config/ Urls, сохраните их, нажав кнопку Submit
и затем, в окне ответа системы, – ОК.
Warning
После завершения настроек, связанных с изменениями способов входа для ЛЦ ОМ
версии ниже 1.4.2 — необходимо выполнить перезагрузку ЛЦ ОМ для их
применения, кнопкой Restart Login Center в System.
После применения настроек на странице входа появится прописанный в
Config/ Urls способ входа.

При наличии нескольких драйверов, попадающих в выборку по регулярному выражению, заданному для страницы входа, они будут доступны к выбору через выпадающий список.
Установка способа входа по умолчанию¶
Стартовую страницу Оптимакрос можно настроить на любой имеющийся способ входа.
Чтобы изменить существующие настройки достаточно в Config/ Urls заменить
значение параметра Default driver (значение по умолчанию usernamePassword)
на необходимый способ входа.
Например, если большинство пользователей пользуется входом через AD, установите
соответствующее значение параметра Default driver.
Значение параметра Default driver должно соответствовать имени одного из
драйверов аутентификации (usernamePassword, saml-имя,
activedirectory-имя, oauth-имя и т. д., где "имя" - это установленное
Unique name в Config / Authentication).
Создание аккаунтов в системе Оптимакрос¶
Управление всеми аккаунтами Оптимакрос осуществляется в веб-приложении ЛЦ
Оптимакрос, которое предоставляет информацию об аккаунтах приложению
(приложениям) Воркспейс, предоставляющее функционал моделей пользователям.
Аккаунт обладает набором полей, в том числе полем email (уникальное значение
по всей системе Оптимакрос, используется для идентификации пользователей),
полями Имя/ Фамилия, Роль, Аутентификация, История сессий.
Есть четыре способа создания аккаунтов в системе Оптимакрос:
- создание аккаунта с отправкой приглашения пользователю на email через административный интерфейс ЛЦ Оптимакрос;
- создание аккаунта через Воркспейс в отчете
Users / Пользователинепосредственно в модели; - создание пустого аккаунта через административный интерфейс ЛЦ Оптимакрос2;
- автоматическая регистрация при входе через корпоративную систему учета (MS Active Directory).
Способ создания аккаунта при входе через AD подробно описан ниже.
Создание аккаунта при входе через AD¶
При входе через корпоративную систему учета (AD) происходит автоматическая регистрация нового пользователя. В момент первого входа пользователя при использовании корпоративной учетной записи создается аккаунт Оптимакрос и привязывается к этой учетной записи.
Совпадение аккаунтов проверяется по полям:
- OM: activeDirectory.accountName = AD: UserPrincipalName.
Связывание с аккаунтом AD происходит по UserPrincipalName.
Из AD в Оптимакрос в момент первого входа через корпоративную учетную запись AD
копируются в одну сторону (не синхронизируются) поля: mail, firstName,
lastName. В случае, если привязка аккаунта AD к аккаунту Оптимакрос делалась
вручную через административный интерфейс ЛЦ Оптимакрос, то копирование полей
mail, firstName, lastName не происходит.
Копирование данных аккаунта из AD происходит в момент его добавления в ЛЦ Оптимакрос, синхронизация данных аккаунта в дальнейшем не происходит, за исключением блокировки или удаления аккаунта из AD, в этом случае аккаунт в ЛЦ Оптимакрос остается без изменений, но войти в него через AD становится невозможно.
UserPrincipalName является уникальным в AD, но он не всегда совпадает с
mail пользователя. В системе Оптимакрос email пользователя является
уникальным. Поле mail в AD должно совпадать с email аккаунта Оптимакрос,
выбранного администратором для привязки.
При создании аккаунта через AD возможны следующие ситуации:
- Логин
UserPrincipalNameи полеmailв AD совпадают – в данном случае будет создан аккаунт в ЛЦ с аналогичным электронным адресом (email); - Логин
UserPrincipalNameи полеmailв AD не совпадают,mailявляется уникальным, такого email в Оптимакрос не существует – в данном случае будет создан аккаунт в ЛЦ Оптимакрос с email=mail; - Логин
UserPrincipalNameи полеmailв AD не совпадают,mailне является уникальным, такой email уже есть в Оптимакрос – в данном случае аккаунт создан не будет, будет выдано сообщение об ошибке. Решить данную проблему можно через удаление аккаунта и создание нового в Оптимакрос, либо изменениеmailв AD; - Логин
UserPrincipalNameи полеmailв AD не совпадают,mail– пустой, в данном случае аккаунт создан не будет, будет выдано сообщение об ошибке. Решить данную проблему можно через добавлениеmailв AD.
После прохождения авторизации новый пользователь переходит на страницу своего
профиля в ЛЦ Оптимакрос, где нужно указать FIRST NAME и LAST NAME
пользователя.

После создания аккаунта Администратору ЛЦ требуется добавить пользователя на необходимый Воркспейс, а Администратору Воркспейса – предоставить пользователю доступ к модели.
Привязка аккаунта AD к аккаунту Оптимакрос¶
Привязка аккаунта AD к аккаунту Оптимакрос производится двумя способами:
- вручную через административный интерфейс ЛЦ Оптимакрос,
- автоматически при аутентификации через AD.
Для установки связи между аккаунтом AD и аккаунтом Оптимакрос вручную через
административный интерфейс в профиле пользователя необходимо добавить новый
способ аутентификации в разделе Authentication, по значку "+"

В открывшемся модальном окне необходимо выбрать сервер AD, подключение к которому предварительно было настроено, и ввести логин пользователя.

Совпадение аккаунтов проверяется по полю:
OM: activeDirectory.accountName = AD: UserPrincipalName.
Связывание с аккаунтом AD происходит по UserPrincipalName.
В момент первого входа пользователя при использовании корпоративной учетной записи (AD), происходит автоматическая регистрация нового пользователя, создание аккаунта Оптимакрос и привязка к этой учетной записи аккаунта AD. В случае, если аккаунт с таким email в Оптимакрос уже существует, происходит автоматическая связка аккаунтов.
Таким образом, для установки связи аккаунтов Оптимакрос и аккаунтов AD для всех пользователей необходимо установить форму входа через AD по умолчанию и произвести вход в систему Оптимакрос.
Warning
При пересоздании пользователя все настроенные права для данного пользователя будут утеряны.
Аутентификация пользователя¶
Существует три способа аутентификации пользователя при входе в систему Оптимакрос используя:
- индивидуальную ссылку-приглашение;
- логин/пароль при входе через отдельную форму входа;
- корпоративную учетную запись MS AD или др. способом SSO.
Корпоративная учетная запись MS AD¶
Администратором ЛЦ Оптимакрос настраивается связь с одним или несколькими контроллерами AD заранее. Аккаунту пользователя привязываются учетные записи AD (не более одной на контроллер), которые используются для входа в аккаунт через отдельную форму входа.
Вход через AD осуществляется по ссылке https://login.company.com/ad.

Функционал ЛЦ Оптимакрос позволяет
настроить способ авторизации по умолчанию. На практике,
подключая AD, страницей авторизации по умолчанию устанавливается /ad. Переход
по ссылке Other ways to sign in со стартового окна с установленным на нем по
умолчанию способом входа, открывает другие способы аутентификации.

Имя пользователя в системе AD в формате username или username@domain.ru и пароль от учетной записи AD вводятся на странице ЛЦ Оптимакрос, который подключается к контроллеру AD и запрашивает проверку: валидность пары Имя_пользователя+Пароль, блокировку/отключение учетной записи AD, вхождение учетной записи AD в одну или в одну из нескольких заранее выбранных групп AD. В случае, если проверка не пройдена, доступ не предоставляется. При аутентификации через AD возможны следующие ситуации3:
- При первом входе через учетную запись AD ЛЦ Оптимакрос получает
emailот контроллера домена, если аккаунта с такимemailв системе отсутствует, то он создается автоматически и используется для входа. Доступ к воркспейсам для данного аккаунта необходимо предоставить вручную. - Если аккаунт с таким
emailсуществует, но он не связан ни с одной учетной записью AD для этого контроллера домена, то происходит привязка, и аккаунт используется для входа. - Если аккаунт с таким
emailсуществует, и он связан с другой учетной записью AD на том же контроллере домена, пользователю сообщается ошибка, и доступ не предоставляется.
В случае возникновения проблем с авторизацией через AD, есть возможность искать
пользователей, используя язык запросов AD (cn=..., ou=... и т.п.) в поле
логина. Аккаунт привязывается при этом по email, как и раньше. Включается
добавлением значения raw в список accountValidation в настройках AD. Если
не указано поле accountValidation, по умолчанию ищет пользователя по порядку
email, sAMAccountName, userPrincipalName, raw.
Функционал тестирования и диагностики подключения¶
Функционал тестирования и диагностики подключения к AD при возникновении
ошибок входа находится по адресу
admin /system /ActiveDirectory and LDAP Diagnostics.

В левую часть формы необходимо скопировать настройки подключения из формы
admin/config/authentication, справа будет отображаться статус подключения и
сообщения об ошибках, которые возникают во время подключения.

Код ошибки передается из AD. Здесь приведены возможные варианты ошибок при авторизации.
Инструмент LDAP/AD Diagnostics в новых версиях не отправляет запросы при редактировании поля ввода для уменьшения вероятности блокировки аккаунтов. После ввода запроса необходимо нажать на кнопку Run.
В некоторых случаях может потребоваться добавить в запрос свойства с таймаутами для каждого из тестов. Если эти свойства не указаны, то действует дефолтный таймаут.

Учетная запись для подключения к LDAP должна состоять из пары логин+пароль. Логин
может быть записан в виде домен\имя_пользователя или имя_пользователя@домен.
Info
Если для проверки используется утилита ldapsearch, то нужно учитывать, что ldapsearch поддерживает авторизацию в LDAP по паре email+пароль или логин+пароль, а ЛЦ – только логин+пароль.
Warning
Диагностический инструмент не зависит от других инструментов для уменьшения количества точек отказа, поэтому инструмент диагностики AD не работает с секретами.
Смена домена MS AD¶
Порядок действий при смене домена MS AD включает в себя следующие шаги:
-
В случае смены
UserPrincipalNameв AD для действующих аккаунтов Оптимакрос (при условии, что полеmailв AD не меняется, иначе см. шаг 2) в административном интерфейсе Оптимакрос требуется выполнить следующие действия:- найти аккаунт Оптимакрос, к которому привязан аккаунт AD со старым
UserPrincipalName(Users → Accounts → Поиск); - удалить привязку старого
UserPrincipalNameв профиле найденного пользователя(Authentication → TEST AD SERVER→ Удалить/Корзина); - добавить новый
UserPrincipalNameв профиле найденного пользователя (Authentication → TEST AD SERVER→ Добавить/Плюс).

- найти аккаунт Оптимакрос, к которому привязан аккаунт AD со старым
-
Порядок действий при смене email (поле mail в AD) для действующих аккаунтов Оптимакрос (при одновременном изменении
UserPrincipalNameили без него). Добавить в модель пользователя с новым email, настроить его права идентично правам пользователя со старым email. В административном интерфейсе ЛЦ требуется выполнить следующие шаги:- удалить привязку
UserPrincipalNameв профиле пользователя со старым email; - добавить привязку
UserPrincipalNameв профиле пользователя с новым email; - убедиться, что у пользователя с новым email есть доступ к воркспейсам;
- желательно, но необязательно, удалить пользователя со старым email во избежание путаницы.
- удалить привязку
-
Порядок действий при добавлении нового контроллера AD (второй AD-сервер - мультидоменная авторизация), содержащего информацию о пользователях с
UserPrincipalNameс другим доменным именем. Если привязанный к Оптимакрос контроллер AD отвечает за лес доменов, и новый контроллер находится в этом лесу, то см. шаг 1. Если привязанный к Оптимакрос контроллер AD не отвечает от имени нового контроллера / леса не совпадают, в административном интерфейсе ЛЦ требуется выполнить следующие шаги:- в конфигурации Логин Центра в части интеграции с AD
(
Config → Authentication) добавить данные нового контроллера, дать ему понятное пользователям имя (пользователям будет предоставляться выбор контроллера из списка на странице входа); - в профилях пользователей добавить привязку новых
UserPrincipalName(Authentication → TEST AD SERVER→ Добавить/Плюс), привязку старыхUserPrincipalNameможно не удалять.
- в конфигурации Логин Центра в части интеграции с AD
(
Необходимые данные для интеграции с MS AD¶
-
Сетевой адрес для подключения к Active Directory
Форматы адреса для подключения4:
- ldap://<адрес или доменное имя> - ldap://<адрес или доменное имя>:<порт> - ldaps://<адрес или доменное имя> - ldaps://<адрес или доменное имя>:<порт>Пример:
- ldaps://ad.example.com - ldap://10.10.10.11:389 -
Метод запроса LDAP или LDAPS
-
Данные для авторизации
- Логин: ХХХ@EXAMPLE.COM
- Пароль: YYY
(Логин может быть записан в виде
домен\имя_пользователяилиимя_пользователя@домен) -
Базовый OU (
Organizational Unit/Подразделение), в котором хранятся все учетные данные пользователей и группыПример: OU=EXAMPLE,DC=example,DC=com
-
Для протокола
LDAPSнеобходимо иметь файл с SSL сертификатом, который будет использоваться для подключения -
Список групп, в которые должны быть добавлены пользователи для разрешения доступа (во все группы или в одну из групп)
Пример:
- CN=Оптимакрос_Users,OU=Оптимакрос,OU=Groups,DC=example,DC=com
- CN=Оптимакрос_Users_2,OU=Оптимакрос,OU=Groups,DC=example,DC=com
-
Аккаунты тестовых пользователей для проверки подключения:
- Состоящий в группе
- Не состоящий в группе
Данные учетной записи:
- Логин (userPrincipalName): YYYY или YYYY@example.com
- Пароль: XXXX
! Обязательные атрибуты аккаунта для авторизации через AD:
- mail: E-mail
- memberOf: Member Of (если есть проверка по принадлежности к группе)
Настройка подключения к контроллеру (контроллерам) AD¶
Настройка подключения контроллера AD выполняется в интерфейсе администратора ЛЦ
в разделе настроек authentication на странице admin/config/authentication
на основе данных, предоставленных в карточке от заказчика.
Настройки интеграции с контроллером AD заполняются в форме на основе данных из анкеты. Логин и пароль необходимо предварительно добавить в менеджере секретов.
При необходимости подключить несколько контролеров необходимо добавить отдельную форму через инструмент "+". Форма для ввода настроек представлена на рисунке выше.
| Поле ввода | Комментарий | Параметр из карточки |
|---|---|---|
| Unique name | System-unique driver name for internal identification (Уникальное системное имя драйвера для внутренней идентификации) | название |
| User-friendly name | Driver name as shown in sign in form (Имя контроллера, которое будет отражаться в форме входа) | Понятное для пользователей название |
| URL | Server address, e.g. ldaps://server:port (Сетевой адрес для подключения) | сетевой адрес |
| Base DN for LDAP searches | Базовый OU (Organizational Unit (Подразделение)) | базовый OU OU=EXAMPLE,DC=example,DC=com |
| Connection username | Usage of secrets is strongly suggested (Настоятельно рекомендуется использовать секреты) | {secret.AD_USER} (запись из менеджера секретов, соответствующая логину) |
| Connection password | Usage of secrets is strongly suggested (Настоятельно рекомендуется использовать секреты) | {secret.AD_PASSWORD} (запись из менеджера секретов, соответствующая паролю) |
| TLS connection options | Reject non-TLS connections (Отклонить подключения без TLS) | false/true (если сертификата нет, то этот параметр не используется) |
| Account formats | Account (login) formats in order they are used Форматы учетной записи (логина) в порядке их использования | Email UserPrincipalName SAMAccountName Raw |
| Check for account groups | Only allow user account that are members of these groups (do not check groups if list is empty) Разрешить только учетные записи пользователей, которые являются членами этих групп (не отмечайте группы, если список пуст) | CN=Оптимакрос_Users, OU=Оптимакрос, OU=Groups, DC=example,DC=com |
| Account group membership logic | User accounts have to be members of EVERY or AT LEAST ONE group from the list Учетные записи пользователей должны входить в КАЖДУЮ или хотя бы ОДНУ группу из списка. | AND/OR (пользователь должен входить во все указанные группы/ пользователь входит в одну из указанных групп) |
Возможные ошибки при подключении к AD¶
При подключении к AD могут возникать ошибки, решение которых может быть как на стороне настроек ЛЦ Оптимакрос, так и на стороне настроек AD5.
| Ошибка | Возможная причина | Решение |
|---|---|---|
| Access Denied: Not a Group Member | 1. Пользователь не включен в группу в AD при наличии проверки на принадлежность к группе 2. Некорректно введен логин 3. Ограничение на передачу атрибутов в AD |
1. Включить данный аккаунт в группу пользователей в AD 2. Ввести корректный логин 3. Снять ограничения в AD |
| Access Denied: Cannot read property 'userPrincipalName' of undefined | Ограничение на передачу атрибутов в AD | Снять ограничения в AD |
| Access Denied: Socket hang up | Некорректно указан метод подключения или сертификат SSL (Ошибка исправлена, не должна возникать) | Проверить метод подключения и ввести корректные настройки в ЛЦ Оптимакрос |
| Access Denied: Active Directory Error: read ECONNRESET | Некорректно указан метод подключения | Проверить метод подключения и ввести корректные настройки в ЛЦ Оптимакрос |
| Access Denied: Property mail is empty | В аккаунте AD не заполнен атрибут mail | Заполнить атрибут mail аккаунта в AD |
| Access Denied: Invalid Credentials | 1. Неверно введены данные авторизации 2. Данный пользователь не существует в данном OU |
1. Введите корректный логин. 2. Попробуйте ввести логин без домена |
| Access Denied: Active Directory Error: connect EHOSTUNREACH 10.110.128.7.389 | Нет связи с сервером AD, неверный сетевой адрес | Проверьте настройки подключения к серверу |
| 8. Access Denied: Error.Ad.0x52e | Неправильно введен пароль | Введите корректный пароль |