Download PDF
Download page Синхронизация с каталогом LDAP.
Синхронизация с каталогом LDAP
LDAP (Lightweight Directory Access Protocol) — это протокол прикладного уровня для доступа к службе каталогов.
Служба каталогов (каталоги LDAP) — это система с иерархической структурой для хранения данных в формате "ключ-значение". Обычно службы каталогов используют для хранения информации об организации, её активах и пользователях. Существуют различные реализации каталогов LDAP. Например, ALD Pro, OpenLDAP и FreeIPA для Linux, Microsoft Active Directory для Windows и т.д.
Вы можете настроить синхронизацию платформы c каталогом LDAP. Тогда учётные записи пользователей из каталога будут автоматически создаваться в платформе.
Логика работы
Платформа запускает синхронизацию с каталогом LDAP с периодичностью, заданной в настройках. При синхронизации платформа подключается с заданными параметрами к каталогу LDAP и получает список пользователей. Информация о пользователях из каталога LDAP является более приоритетной по сравнению с информацией в платформе.
Общие правила синхронизации:
- Если у пользователя в каталоге LDAP не указан email, его учётная запись не будет использована при синхронизации.
- Если пользователя из каталога LDAP нет в платформе, платформа создаст учётную запись с данными из LDAP.
- Если пользователь из каталога LDAP уже создан в платформе, то платформа изменит источник учётной записи пользователя с локального на LDAP. После этого пользователь сможет авторизоваться в платформе с email и паролем из LDAP. Пароль пользователя будет храниться в LDAP и не запишется в БД платформы.
Пример: В платформе создана учётная запись с именем admin@example.com и паролем secret1. В LDAP есть учётная запись с именем admin@example.com и паролем secret2. После синхронизации пользователь admin@example.com сможет авторизоваться в платформе только с паролем secret2. - Если пользователь из каталога LDAP уже создан в платформе, то платформа изменит уровень учётной записи на данные из LDAP.
Пример: В платформе создана учётная запись с именем admin@example.com уровня "Администратор". В LDAP есть учётная запись с именем admin@example.com в группе "Пользователи". После синхронизации уровень учётной записи изменится на "Пользователь". Если пользователь является владельцем серверов или ВМ, операции с этими объектами останутся ему доступны. - Если администратор удалит из платформы пользователя, созданного при синхронизации с LDAP, платформа создаст этого пользователя при следующей синхронизации.
- Если пользователь будет удалён из каталога LDAP, платформа удалит его учётную запись при следующей синхронизации.
- Если пользователь будет заблокирован в каталоге LDAP, платформа установит для него статус "Заблокирован в LDAP". Такой пользователь не сможет авторизоваться в платформе.
Если удалить настроенную синхронизацию, пользователи из каталога LDAP не смогут авторизоваться в платформе.
Подготовка
Если на сервере с LDAP самоподписанный SSL-сертификат
Ошибка отображения макрокоманды «excerpt-include»
No link could be created for 'VMMAN:Если на сервере с LDAP самоподписанный SSL-сертификат'.
Настройка синхронизации
Чтобы настроить синхронизацию, перейдите в → Синхронизация с LDAP:
- Выберите реализацию каталога LDAP:
- LDAP — стандартная реализация службы каталогов;
- Active Directory;
- FreeIPA;
ALD Pro.
Для синхронизации с ALD Pro:
- в DCImanager 6 — выберите ALD Pro;
- в VMmanager — выберите FreeIPA.
- Укажите настройки подключения:
- Base DN — объект каталога, с которого начинается поиск. Например, для каталога example.com укажите "dc=example,dc=com".
- Если нужно, включите опцию Использовать SSL для подключения.
- Адрес основного сервера.
- Порт подключения.
- Bind DN — уникальное имя для аутентификации. Вы можете указать имя в формате name@example.com или "cn=name,ou=group,dc=example,dc=com".
- Пароль.
- Для стандартной реализации LDAP укажите:
- Users DN — параметр для поиска и загрузки пользователей. Например, "ou=users".
- Groups DN — параметр для поиска и загрузки групп пользователей. Например, "ou=groups".
- Groupname attribute — атрибут для загрузки имени группы. Например, CN или memberof.
- E-mail attribute — атрибут для загрузки адреса электронной почты пользователя. Например, mail.
- Users DN — параметр для поиска и загрузки пользователей. Например, "ou=users".
- Нажмите Далее. Платформа проверит подключение к каталогу LDAP с указанными параметрами.
- Выберите DN группы для всех ролей, используемых в платформе.
- Чтобы платформа выполняла синхронизацию по расписанию:
- Включите опцию Синхронизировать пользователей автоматически.
- Выберите параметры расписания:
- Каждый час;
- Ежедневно → выберите время;
- Еженедельно → выберите день недели → выберите время;
- произвольное время в формате cron → укажите Команду для cron. Например, 15 10 * * 0 — синхронизировать по воскресеньям в 10:15 или 00 12 1,16 * * — синхронизировать по 1-м и 16-м числам месяца в 12:00.
- Вы можете Загрузить список пользователей для синхронизации. Список содержит имена пользователей, их роли и информацию о наличии аналогичных пользователей в платформе.
- Нажмите Начать синхронизацию. Платформа запустит процесс синхронизации. Синхронизация может занять несколько минут.
Вы можете изменить сохранённые настройки в разделе → Синхронизация с LDAP.
Чтобы выполнить синхронизацию вручную, перейдите в → Синхронизация с LDAP → Синхронизировать сейчас или Пользователи → Синхронизировать с LDAP → Начать синхронизацию.
Синхронизация через API
Для настройки синхронизации используйте API сервиса LDAP.
Пример настройки подключения
Проверьте подключение и получите список групп:
curl -ks -X 'POST' \ 'https://domain.com/ldap/v4/connect' \ -H 'Cookie: ses6=<auth_token>' \ -H 'x-xsrf-token: <auth_token>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "type": "ldap", "base_dn": "dc=example,dc=com", "address": "192.168.0.5", "port": 389, "is_ssl": false, "bind_dn": "cn=admin,dc=example,dc=com", "password": "secret", "users_dn": "cn=users", "groups_dn": "cn=groups", "groupname_attr": "memberOf", "email_attr": "mail" }'
BASHdomain.com — IP-адрес или доменное имя сервера с платформой
<auth_token> — токен авторизации
type — реализация каталога LDAP
base_dn — объект каталога, с которого начинается поиск
address — IP-адрес основного сервера
port — порт подключения
is_ssl — опция "Использовать SSL для подключения"
bind_dn — уникальное имя для аутентификации
password — пароль администратора LDAP
users_dn — параметр для поиска и загрузки пользователей
groups_dn — параметр для поиска и загрузки групп пользователей
groupname_attr — атрибут для загрузки имени группы
email_attr — атрибут для загрузки адреса электронной почты пользователя
Завершите создание подключения:
curl -ks -X 'POST' \ 'https://domain.com/ldap/v4/setting' \ -H 'Cookie: ses6=<auth_token>' \ -H 'x-xsrf-token: <auth_token>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "type": "ldap", "base_dn": "dc=example,dc=com", "address": "192.168.0.5", "port": 389, "is_ssl": false, "bind_dn": "cn=admin,dc=example,dc=com", "password": "secret", "groups_bind": { "@admin": [ "cn=admins,cn=groups,cn=accounts,dc=example,dc=com", "cn=devops,cn=groups,cn=accounts,dc=example,dc=com" ], "@user": [ "cn=support,cn=groups,cn=accounts,dc=example,dc=com", "cn=developer,cn=groups,cn=accounts,dc=example,dc=com" ] }, "auto_sync": "0 * * * *" }'
BASHdomain.com — IP-адрес или доменное имя сервера с платформой
<auth_token> — токен авторизации
type — реализация каталога LDAP
base_dn — объект каталога, с которого начинается поиск
address — IP-адрес основного сервера
port — порт подключения
is_ssl — опция "Использовать SSL для подключения"
bind_dn — уникальное имя для аутентификации
password — пароль администратора LDAP
groups_bind — DN-группы для каждой роли пользователя в платформе
auto_sync — время в формате cron для синхронизации с каталогом
Диагностика
Лог-файлы синхронизации хранятся на сервере с платформой:
- DCImanager 6 — файл /var/log/isp_ldap.log в контейнере dci_ldap_1;
- VMmanager — файл /var/log/isp_ldap.log в контейнере vm_ldap_1.
Может быть полезно
Связанные статьи: