Перейти к содержанию

LDAP интеграция с MS AD

Функциональные требования

Для целей интеграции системы Оптимакрос с существующей инфраструктурой AD для учета пользователей и разграничения доступа, требуется:

  1. Подключение ПО Оптимакрос к существующему серверу Microsoft Active Directory, используя заранее выданную информацию: сетевой адрес сервера, логин и пароль1. Эти данные должны использоваться только для осуществления подключения системы Оптимакрос к серверу Active Directory и не должны быть привязаны к пользователю Оптимакрос и использоваться для проверки его уровня доступа.
  2. Проверка пользовательских учетных записей, хранящихся в AD, на момент входа пользователя в систему Оптимакрос. Для идентификации пользователя и проверки его учетной записи, используется имя учетной записи пользователя в AD в формате email и пароль пользователя, при этом пароль пользователя не должен сохраняться во внутренних БД Оптимакрос.
  3. К работе с системой Оптимакрос должны допускаться только пользователи, отвечающие следующим требованиям:
    • Пользователь должен ввести верное имя своей учетной записи AD и пароль от неё.
    • Учетная запись пользователя в AD не должна быть удалена или заблокирована.
    • Учетная запись пользователя в AD должна быть членом заранее указанной группы AD.
  4. Одной учетной записи пользователя AD должна соответствовать одна учетная запись пользователя Оптимакрос.
  5. Наряду и одновременно с проверкой пользовательских учетных записей на сервере AD, система Оптимакрос должна обеспечивать доступ к этим же или другим учетным записям пользователей Оптимакрос, используя встроенный в неё механизм проверки логинов и паролей, не связанный с AD.
  6. Управление правами и доступом пользователя в системе Оптимакрос должно выполняться средствами самой системы Оптимакрос, не используя данные учетных записей, хранящиеся в Active Directory.
  7. Администратор системы Оптимакрос должен иметь возможность добавлять, удалять или редактировать связь учетных записей AD и учетных записей Оптимакрос вручную в Логин-Центре Оптимакрос.

Порядок действий при интеграции с MS AD

  1. Запросить у заказчика данные для подключения к существующему серверу Microsoft Active Directory (сетевой адрес сервера, логин и пароль) Необходимые данные для интеграции с MS AD.
  2. Установить подключение к контроллеру (контроллерам) AD, используя предоставленные заказчиком данные.
  3. Настроить внешний вид стартовой страницы ЛЦ, добавить дополнительный способ аутентификации.
  4. Перезагрузить ЛЦ Оптимакрос кнопкой Restart Login Center в разделе System.
  5. Создать аккаунты пользователей в ЛЦ Оптимакрос.
  6. Привязать аккаунты AD к аккаунтам ЛЦ Оптимакрос.
  7. Выполнить аутентификацию и тестирование подключения.
  8. Определить и устранить ошибки (при необходимости).

Подключение ЛЦ Оптимакрос к существующему серверу Microsoft Active Directory настраивается в профиле администратора в разделе настроек authentication на странице admin/config/authentication.

В настройках authentication на странице admin/config/authentication в разделе MS ACTIVE DIRECTORY/ LDAP DRIVERS вводятся предоставленные данные: сетевой адрес сервера, логин и пароль, а также другие параметры.

Настройки Config

Формат значений и соответствие полей приведены в разделе Настройка подключения к контроллеру (контроллерам) AD

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

Настройка подключения к нескольким контроллерам

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

ldap_3

При конфигурировании интеграции с Active Directory (или другим серверам каталогов) по протоколу LDAP или LDAPS, допустимые форматы адреса для подключения, следующие:

  • ldap://<адрес или доменное имя>
  • ldap://<адрес или доменное имя>:<порт>
  • ldaps://<адрес или доменное имя>
  • ldaps://<адрес или доменное имя>:<порт>

Info

При пропущенном значении <порт> используются значения по умолчанию: 389 для LDAP и 636 для LDAPS.

Подключение производится только по протоколу TCP, протокол UDP не поддерживается.

Допустимые значения для <адрес или доменное имя>:

  1. Числовой IPv4 адрес вида: хх.хх.хх.хх.
  2. Текстовое доменное имя (вида server.company.com), при этом доменное имя должно разрешаться на IPv4 адрес доступным с сервера установки Логин Центра контроллером DNS. Разрешение адреса путём локальной конфигурации через файл /etc/hosts или др. не поддерживается.

    1. Допустимо разрешать доменное имя на список из нескольких IPv4 адресов с произвольными весами, при этом по каждому из адресов на указанном порту должен быть доступен сервер LDAP/LDAPS (контроллер Active Directory или другое ПО), предоставляющий доступ к одному и тому же дереву каталогов (т.н. балансировка нагрузки)
    2. Доменное имя должно разрешаться на IPv4 адрес посредством A или CNAME записи в домене, поиск серверов LDAP/LDAPS по SRV записям не поддерживается.

Настройка страницы входа

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

ldap_4

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

ldap_5

Название параметра на форме Значение параметра Описание параметра
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 способ входа.

ldap_6

При наличии нескольких драйверов, попадающих в выборку по регулярному выражению, заданному для страницы входа, они будут доступны к выбору через выпадающий список.

Установка способа входа по умолчанию

Стартовую страницу Оптимакрос можно настроить на любой имеющийся способ входа. Чтобы изменить существующие настройки достаточно в Config/ Urls заменить значение параметра Default driver (значение по умолчанию usernamePassword) на необходимый способ входа.

Например, если большинство пользователей пользуется входом через AD, установите соответствующее значение параметра Default driver.

Значение параметра Default driver должно соответствовать имени одного из драйверов аутентификации (usernamePassword, saml-имя, activedirectory-имя, oauth-имя и т. д., где "имя" - это установленное Unique name в Config / Authentication).

Создание аккаунтов в системе Оптимакрос

Управление всеми аккаунтами Оптимакрос осуществляется в веб-приложении ЛЦ Оптимакрос, которое предоставляет информацию об аккаунтах приложению (приложениям) Воркспейс, предоставляющее функционал моделей пользователям. Аккаунт обладает набором полей, в том числе полем email (уникальное значение по всей системе Оптимакрос, используется для идентификации пользователей), полями Имя/ Фамилия, Роль, Аутентификация, История сессий.

Есть четыре способа создания аккаунтов в системе Оптимакрос:

  1. создание аккаунта с отправкой приглашения пользователю на email через административный интерфейс ЛЦ Оптимакрос;
  2. создание аккаунта через Воркспейс в отчете Users / Пользователи непосредственно в модели;
  3. создание пустого аккаунта через административный интерфейс ЛЦ Оптимакрос2;
  4. автоматическая регистрация при входе через корпоративную систему учета (MS Active Directory).

Способ создания аккаунта при входе через 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 возможны следующие ситуации:

  1. Логин UserPrincipalName и поле mail в AD совпадают – в данном случае будет создан аккаунт в ЛЦ с аналогичным электронным адресом (email);
  2. Логин UserPrincipalName и поле mail в AD не совпадают, mail является уникальным, такого email в Оптимакрос не существует – в данном случае будет создан аккаунт в ЛЦ Оптимакрос с email=mail;
  3. Логин UserPrincipalName и поле mail в AD не совпадают, mail не является уникальным, такой email уже есть в Оптимакрос – в данном случае аккаунт создан не будет, будет выдано сообщение об ошибке. Решить данную проблему можно через удаление аккаунта и создание нового в Оптимакрос, либо изменение mail в AD;
  4. Логин UserPrincipalName и поле mail в AD не совпадают, mail – пустой, в данном случае аккаунт создан не будет, будет выдано сообщение об ошибке. Решить данную проблему можно через добавление mail в AD.

После прохождения авторизации новый пользователь переходит на страницу своего профиля в ЛЦ Оптимакрос, где нужно указать FIRST NAME и LAST NAME пользователя.

Профиль пользователя в ЛЦ Оптимакрос

После создания аккаунта Администратору ЛЦ требуется добавить пользователя на необходимый Воркспейс, а Администратору Воркспейса – предоставить пользователю доступ к модели.

Привязка аккаунта AD к аккаунту Оптимакрос производится двумя способами:

  1. вручную через административный интерфейс ЛЦ Оптимакрос,
  2. автоматически при аутентификации через AD.

Для установки связи между аккаунтом AD и аккаунтом Оптимакрос вручную через административный интерфейс в профиле пользователя необходимо добавить новый способ аутентификации в разделе Authentication, по значку "+"

Добавление нового способа аутентификации

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

Привязка аккаунта 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:

  1. При первом входе через учетную запись AD ЛЦ Оптимакрос получает email от контроллера домена, если аккаунта с таким email в системе отсутствует, то он создается автоматически и используется для входа. Доступ к воркспейсам для данного аккаунта необходимо предоставить вручную.
  2. Если аккаунт с таким email существует, но он не связан ни с одной учетной записью AD для этого контроллера домена, то происходит привязка, и аккаунт используется для входа.
  3. Если аккаунт с таким email существует, и он связан с другой учетной записью AD на том же контроллере домена, пользователю сообщается ошибка, и доступ не предоставляется.

В случае возникновения проблем с авторизацией через AD, есть возможность искать пользователей, используя язык запросов AD (cn=..., ou=... и т.п.) в поле логина. Аккаунт привязывается при этом по email, как и раньше. Включается добавлением значения raw в список accountValidation в настройках AD. Если не указано поле accountValidation, по умолчанию ищет пользователя по порядку email, sAMAccountName, userPrincipalName, raw.

Функционал тестирования и диагностики подключения

Функционал тестирования и диагностики подключения к AD при возникновении ошибок входа находится по адресу admin /system /ActiveDirectory and LDAP Diagnostics.

Кнопка перехода к функционалу тестирования и диагностики подключения к AD

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

Форма диагностики

Код ошибки передается из AD. Здесь приведены возможные варианты ошибок при авторизации.

Инструмент LDAP/AD Diagnostics в новых версиях не отправляет запросы при редактировании поля ввода для уменьшения вероятности блокировки аккаунтов. После ввода запроса необходимо нажать на кнопку Run.

В некоторых случаях может потребоваться добавить в запрос свойства с таймаутами для каждого из тестов. Если эти свойства не указаны, то действует дефолтный таймаут.

Добавление таймаута в запрос в форме диагностики

Учетная запись для подключения к LDAP должна состоять из пары логин+пароль. Логин может быть записан в виде домен\имя_пользователя или имя_пользователя@домен.

Info

Если для проверки используется утилита ldapsearch, то нужно учитывать, что ldapsearch поддерживает авторизацию в LDAP по паре email+пароль или логин+пароль, а ЛЦ – только логин+пароль.

Warning

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

Смена домена MS AD

Порядок действий при смене домена MS AD включает в себя следующие шаги:

  1. В случае смены UserPrincipalName в AD для действующих аккаунтов Оптимакрос (при условии, что поле mail в AD не меняется, иначе см. шаг 2) в административном интерфейсе Оптимакрос требуется выполнить следующие действия:

    1. найти аккаунт Оптимакрос, к которому привязан аккаунт AD со старым UserPrincipalName (Users → Accounts → Поиск);
    2. удалить привязку старого UserPrincipalName в профиле найденного пользователя (Authentication → TEST AD SERVER→ Удалить/Корзина);
    3. добавить новый UserPrincipalName в профиле найденного пользователя (Authentication → TEST AD SERVER→ Добавить/Плюс).

  2. Порядок действий при смене email (поле mail в AD) для действующих аккаунтов Оптимакрос (при одновременном изменении UserPrincipalName или без него). Добавить в модель пользователя с новым email, настроить его права идентично правам пользователя со старым email. В административном интерфейсе ЛЦ требуется выполнить следующие шаги:

    1. удалить привязку UserPrincipalName в профиле пользователя со старым email;
    2. добавить привязку UserPrincipalName в профиле пользователя с новым email;
    3. убедиться, что у пользователя с новым email есть доступ к воркспейсам;
    4. желательно, но необязательно, удалить пользователя со старым email во избежание путаницы.
  3. Порядок действий при добавлении нового контроллера AD (второй AD-сервер - мультидоменная авторизация), содержащего информацию о пользователях с UserPrincipalName с другим доменным именем. Если привязанный к Оптимакрос контроллер AD отвечает за лес доменов, и новый контроллер находится в этом лесу, то см. шаг 1. Если привязанный к Оптимакрос контроллер AD не отвечает от имени нового контроллера / леса не совпадают, в административном интерфейсе ЛЦ требуется выполнить следующие шаги:

    1. в конфигурации Логин Центра в части интеграции с AD (Config → Authentication) добавить данные нового контроллера, дать ему понятное пользователям имя (пользователям будет предоставляться выбор контроллера из списка на странице входа);
    2. в профилях пользователей добавить привязку новых UserPrincipalName (Authentication → TEST AD SERVER→ Добавить/Плюс), привязку старых UserPrincipalName можно не удалять.

Необходимые данные для интеграции с MS AD

  1. Сетевой адрес для подключения к Active Directory

    Форматы адреса для подключения4:

    - ldap://<адрес или доменное имя>
    - ldap://<адрес или доменное имя>:<порт>
    - ldaps://<адрес или доменное имя>
    - ldaps://<адрес или доменное имя>:<порт>
    

    Пример:

    - ldaps://ad.example.com
    - ldap://10.10.10.11:389
    
  2. Метод запроса LDAP или LDAPS

  3. Данные для авторизации

    • Логин: ХХХ@EXAMPLE.COM
    • Пароль: YYY

    (Логин может быть записан в виде домен\имя_пользователя или имя_пользователя@домен)

  4. Базовый OU (Organizational Unit / Подразделение), в котором хранятся все учетные данные пользователей и группы

    Пример: OU=EXAMPLE,DC=example,DC=com

  5. Для протокола LDAPS необходимо иметь файл с SSL сертификатом, который будет использоваться для подключения

  6. Список групп, в которые должны быть добавлены пользователи для разрешения доступа (во все группы или в одну из групп)

    Пример:

    • CN=Оптимакрос_Users,OU=Оптимакрос,OU=Groups,DC=example,DC=com
    • CN=Оптимакрос_Users_2,OU=Оптимакрос,OU=Groups,DC=example,DC=com
  7. Аккаунты тестовых пользователей для проверки подключения:

    1. Состоящий в группе
    2. Не состоящий в группе

    Данные учетной записи:

    • Логин (userPrincipalName): YYYY или YYYY@example.com
    • Пароль: XXXX

    ! Обязательные атрибуты аккаунта для авторизации через AD:

    1. mail: E-mail
    2. 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 Неправильно введен пароль Введите корректный пароль

  1. Необходимые данные для интеграции с MS AD 

  2. Данный способ доступен только для технических специалистов с ролью Service Admin. 

  3. Возможные варианты ошибок при авторизации

  4. При пропущенном значении <порт> используются значения по умолчанию: 389 для LDAP и 636 для LDAPS 

  5. Список ошибок включает в себя самые распространенные ошибки при подключении и обновляется по мере их выявления.