Настройка LDAP
Система Accelera поддерживает только один протокол внешней системы авторизации – LDAP.
Также доступны локальные УЗ, которые создаются и управляются в системе.
Есть возможность настроить оба механизма авторизации, в таком случае логин через LDAP будет иметь наивысший приоритет.
Система Accelera поддерживает интеграцию с внешними провайдерами авторизации по протоколу LDAP.
Логическая схема подключения
Настройка LDAP-сервера:
- Предполагается, что на стороне клиента установлена OpenLDAP или Microsoft Active Directory.
- Создайте структуру каталога, содержащую информацию о пользователях и их учетных данных.
Настройка Accelera:
- В настройках контейнера Accelera укажите параметры подключения к LDAP-серверу, такие как адрес сервера, порт, протокол (обычно LDAP или LDAPS).
- Установите настройки для поиска и фильтрации пользователей в каталоге LDAP.
Инициирование авторизации:
- Пользователь вводит свои учетные данные (имя пользователя и пароль) в интерфейсе авторизации Accelera.
Запрос к LDAP-серверу:
- Accelera создает запрос к LDAP-серверу, используя указанные параметры подключения и учетные данные пользователя.
Поиск и проверка:
- LDAP-сервер выполняет поиск в своей базе данных, используя указанный фильтр (например, по имени пользователя).
- Если запись пользователя найдена, сервер проверяет введенный пароль с хэшированным паролем в базе данных. Если пароли совпадают, сервер возвращает успешный статус авторизации.
Результат авторизации:
Accelera получает ответ от LDAP-сервера. В случае успешной авторизации, пользователь получает доступ к платформе и модулям, управляемыми Accelera, с учетом прав доступа (администратор, бизнес пользователь или режим чтения)
LDAPS
Поддерживается SSL-подключение к LDAP основанное на протоколе OpenSSL с 2048-битным RSA ключом (необходима настройка CERTIFICATE_PATH)
Настройка подключения
Интеграция настраивается только для модуля flows_backoffice. Укажите соответствующие переменные среды:
| Переменная | Описание |
|---|---|
| USE_LDAP | Флаг использования LDAP авторизации. Установите значение true, чтобы Accelera использовала внешний провайдер авторизации. |
| LDAP_URL | Адрес сервера LDAP, например ldap://localhost:389, обязательный параметр |
| BIND_DN | Доменное имя для выполнения поиска в LDAP, опционально, например cn='root’ |
| BIND_CREDITENTIALS_PASS | Пароль для BIND_DN, если используется BIND_DN. |
| SEARCH_BASE | Определение зоны поиска учетных записей, например o=users,o=example.com, обязательный |
| SEARCH_FILTER | Фильтр поиска, например (uid={{username}}), обязательный. Обратите внимание, что формат {{ }} используется в docker как шаблон для некоторых функций, поэтому такую конструкцию необходимо экранировать в {{ ` ` }} Пример {{`(sAMAccountName={{username}})`}} |
| SEARCH_ATTRIBUTES | Атрибуты поиска, разделенные запятыми, например displayName,mail, опционально. |
| LDAP_CERT_PATH | Путь к сертификату для запросов (должен быть смонтирован в контейнере, либо передан через Docker Secret), пример /etc/certs/root_ca_cert.crt, опционально. |
| LDAP_ADMIN_ROLE | Название админской роли в AD |
| LDAP_USER_ROLE | Название роли пользователя в AD |
| LDAP_READONLY_ROLE | Название роли read-only в AD |
| LDAP_LOG_LEVEL | (Не обязательно) Уровень логирования LDAP соединения. Установите trace для максимально подробного логирования. |
Пример настройки сервиса flows_backoffice с поиском пользователей в категории person:
version: '3'
services:
flows_backoffice:
image: accelera/flows_backoffice:2.0.0
container_name: flows_backoffice
network_mode: "host"
restart: unless-stopped
environment:
- NODE_ENV=production
...
- PORT=3002
- LDAP_URL=ldaps://my.company.host:636
- BIND_DN=cn=non-person,ou=system,dc=corp,dc=corporate,dc=com
- BIND_CREDITENTIALS=secret
- SEARCH_BASE=dc=corp,dc=corporate,dc=com
- SEARCH_FILTER=(&(objectcategory=person)(objectclass=user)(|(samaccountname={{username}})(mail={{username}})))
- SEARCH_ATTRIBUTES=displayName,mail
- CERTIFICATE_PATH=/etc/certs/root_ca_cert.crt
- LDAP_ADMIN_ROLE=ADMIN_role
- LDAP_USER_ROLE=USER_role
- LDAP_READONLY_ROLE=READONLY_role
volumes:
- /path/to/cert/cert.crt:/etc/certs/root_ca_cert.crt