4.6. Интеграция с OpenLDAP и Active Directory #
PPEM поддерживает аутентификацию с помощью служб каталогов OpenLDAP и Active Directory. В рамках интеграции роли назначаются LDAP-пользователям в веб-приложении с помощью групп из службы каталогов.
За подробной информацией об аутентификации и авторизации обратитесь к Схема работы аутентификации и авторизации.
Процесс интеграции состоит из следующих этапов:
Создайте группу пользователей в службе каталогов
Создайте группу пользователей в OpenLDAP или Active Directory. Для Active Directory поддерживаются два способа создания группы пользователей:
Важно
Пользователи, которых вы добавляете в группы, должны быть созданы в OpenLDAP или Active Directory со следующими обязательными для PPEM параметрами:
first_name: имя пользователя.last_name: фамилия пользователя.email: адрес электронной почты пользователя.login: логин пользователя.password: пароль пользователя.
Для каждого параметра необходимо указать значение в формате string.
За подробной информации о создании групп пользователей обратитесь к официальной документации OpenLDAP или к официальной документации Microsoft по Active Directory.
Создайте группу пользователей в OpenLDAP
Создайте файл конфигурации группы пользователей в формате LDIF и укажите следующие параметры:
dn:
отличительное_имя_группы_пользователейobjectClass: posixGroup cn:имя_группы_пользователейgidNumber:идентификатор_группы_пользователейmemberUid:идентификатор_пользователяГде:
dn: отличительное имя (distinguished name) группы пользователей.Вы можете указать следующие атрибуты:
cn: уникальное имя группы пользователей.ou: организационная единица, в которую будет помещена группа пользователей.dc: компоненты домена, который будет связан с группой пользователей. Например,example.com.
cn: уникальное имя группы пользователей.gidNumber: уникальный идентификатор группы пользователей.memberUid: уникальные идентификаторы пользователей, которые будут добавлены в группу.
Создайте группу пользователей в OpenLDAP:
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f example-group.ldif
Где:
-D: отличительное имя администратора OpenLDAP.-W: запрос пароля.-f: имя файла конфигурации группы пользователей.
Убедитесь, что группа пользователей успешно создана:
ldapsearch -x -b "ou=groups,dc=example,dc=com" "(cn=examplegroup)"
Создайте группу пользователей в Active Directory с помощью ADUC
В графическом интерфейсе Active Directory перейдите к организационной единице (organizational unit, OU), в которую будет помещена группа пользователей.
Нажмите Создать → Группа.
В открывшемся окне укажите параметры группы пользователей.
Нажмите OK.
Добавьте пользователей в группу:
Перейдите к свойствам группы пользователей, дважды щёлкнув по ней.
Выберите Члены групп и добавьте пользователей в группу.
Создайте группу пользователей в Active Directory с помощью PowerShell
Создайте группу пользователей:
New-ADGroup -Path "OU=Groups,OU=Example,DC=example,DC=com" -Name "GROUPMSAD" -GroupScope Global -GroupCategory Distribution
Где:
-Path: отличительное имя группы пользователей.Вы можете указать следующие атрибуты:
OU: организационная единица, в которую будет помещена группа пользователей.DC: компоненты домена, который будет связан с группой пользователей.
-Name: уникальное имя группы пользователей.
Добавьте пользователей в группу:
Add -ADGroupMember GROUPMSAD -Members user1,user2,user3
Где:
-ADGroupMember: уникальное имя группы, в которую будут добавлены пользователи.-Members: уникальные идентификаторы пользователей, которые будут добавлены в группу.
Настройте интеграцию со службой каталогов
В файле конфигурации менеджера
ppem-manager.ymlдобавьте разделldapи укажите параметры интеграции:OpenLDAP:
ldap: type:
тип_службы_каталоговurl:сетевой_адрес_службы_каталоговuse_ssl: trueилиfalse base_dn:корневое_отличительное_имя_службы_каталоговbind_username:имя_пользователя_службы_каталоговbind_password:пароль_пользователя_службы_каталоговgroup_class:класс_для_объекта_группы_пользователейgroup_members_attr:атрибут_члена_группы_пользователейgroup_name_attr:атрибут_имени_группы_пользователейprefix_group_dn:префикс_отличительного_имени_для_групп_пользователейprefix_user_dn:префикс_отличительного_имени_для_пользователейuser_class:класс_для_объекта_пользователяuser_display_name_attr:атрибут_отображаемого_имени_пользователяuser_email_attr:атрибут_электронной_почты_пользователяuser_name_attr:атрибут_учётной_записи_пользователяuser_first_name_attr:атрибут_имени_пользователяuser_last_name_attr:атрибут_фамилии_пользователяuser_job_title_attr:атрибут_должности_пользователяuser_membership_attr:атрибут_списка_групп_пользователяuser_phone_attr:атрибут_номера_телефона_пользователяuser_sync_interval:время_синхронизации_между_менеджером_и_службой_каталоговActive Directory:
ldap: type:
тип_службы_каталоговurl:сетевой_адрес_службы_каталоговbase_dn:корневое_отличительное_имя_службы_каталоговbind_username:имя_пользователя_службы_каталоговbind_password:пароль_пользователя_службы_каталоговuser_sync_interval:время_синхронизации_между_менеджером_и_службой_каталогов
Где:
type: тип службы каталогов.Возможные значения:
openldapms_active_directory
url: сетевой адрес службы каталогов.bind_username: имя пользователя службы каталогов для интеграции с PPEM.Формат значения зависит от службы каталогов:
Для OpenLDAP обычно необходимо полностью указать полное отличительное имя, например
cn=admin,ou=users,dc=example,dc=com.Для Active Directory обычно необходимо указать значение в формате
, напримеримя_пользователя@доменadmin@example.com.
bind_password: пароль пользователя службы каталогов для интеграции с PPEM.base_dn: корневое отличительное имя службы каталогов.prefix_user_dn: префикс отличительного имени для пользователей.Если этот параметр указан, поиск пользователей выполняется с помощью отличительного имени
. Чтобы выполнять поиск пользователей по всему каталогу, укажите значениепрефикс_отличительного_имени_для_пользователей,корневое_отличительное_имя"".Необязательный параметр.
prefix_group_dn: префикс отличительного имени для групп пользователей.Если этот параметр указан, поиск групп пользователей выполняется с помощью отличительного имени
. Чтобы выполнять поиск групп пользователей по всему каталогу, укажитепрефикс_отличительного_имени_для_групп_пользователей,корневое_отличительное_имя"".Необязательный параметр.
group_class: имя класса для объекта пользователя.Необязательный параметр для Active Directory.
user_name_attr: название атрибута учётной записи (логина) пользователя.Значение по умолчанию: для OpenLDAP —
cn, для Active Directory —sAMAccountName.Необязательный параметр для Active Directory.
user_first_name_attr: название атрибута имени пользователя.Значение по умолчанию:
givenName.Необязательный параметр.
user_last_name_attr: название атрибута фамилии пользователя.Значение по умолчанию:
sn.Необязательный параметр.
user_display_name_attr: название атрибута отображаемого имени пользователя.Значение по умолчанию:
displayName.Необязательный параметр.
user_email_attr: название атрибута адреса электронной почты пользователя.Значение по умолчанию:
mail.Необязательный параметр.
user_phone_attr: название атрибута номера телефона пользователя.Значение по умолчанию:
telephoneNumber.Необязательный параметр.
user_job_title_attr: название атрибута должности пользователя.Значение по умолчанию:
title.Необязательный параметр.
user_membership_attr: название атрибута списка групп пользователя.Значение по умолчанию для Active Directory:
memberOf.Необязательный параметр.
group_class: имя класса для объекта группы пользователей.Значение по умолчанию для Active Directory:
group.group_name_attr: название атрибута имени группы пользователей.Значение по умолчанию:
cn.Необязательный параметр.
group_members_attr: название атрибута списка пользователей группы.group_filter: фильтр для поиска групп пользователей. Например,(&(objectClass=group)(cn=*PPEM*)).Необязательный параметр.
group_membership_filter: фильтр для поиска групп, в которых состоит указанный пользователь. Например,(&(objectClass=group)(uniqueMember=%USER_DN%)).Необязательный параметр.
group_list_size_limit: максимальное количество групп пользователей, которые можно получить из службы каталогов.Необязательный параметр.
user_sync_interval: время синхронизации между менеджером и службой каталогов.Значение по умолчанию:
5m.Необязательный параметр.
ssl_cert_skip_verify: указывает, следует ли пропустить проверку сертификата сервера службы каталога.Возможные значения:
truefalse
Необязательный параметр.
ssl_root_ca: путь к файлу в формате PEM с корневым сертификатом (CA certificate) на сервере службы каталогов.Необязательный параметр.
Перезагрузите службу PPEM:
systemctl restart ppem.service
Настройте авторизацию в PPEM
Войдите в веб-приложение, используя учётную запись пользователя с ролью
System administrator role.За подробной информацией о ролях, обратитесь к Пользовательские роли и права.
Создайте группу пользователей.
При этом из выпадающего списка Группа LDAP выберите LDAP-группу, для которой необходимо настроить авторизацию. Если LDAP-группа не отображается, убедитесь, что вы правильно настроили интеграцию со службой каталогов.
Роли, назначенные группе пользователей при её создании, будут автоматически назначены пользователям из указанной LDAP-группы при входе в веб-приложение.
Проверьте аутентификацию и авторизацию в PPEM
Войдите в веб-приложение, используя учётную запись пользователя службы каталогов. Пользователь должен состоять в LDAP-группе, указанной при настройке авторизации в PPEM.
Формат логина зависит от службы каталогов:
Для OpenLDAP обычно необходимо указать короткий логин пользователя, например
i.ivanov.Для Active Directory обычно необходимо указать логин в формате
, напримеримя_пользователя@доменi.ivanov@example.com.
Если аутентификация прошла успешно, проверьте авторизацию одним из следующих способов:
В правом верхнем углу страницы нажмите на имя пользователя.
Откроется личный кабинет, в котором отображаются адрес электронной почты и должность пользователя, а также назначенные пользователю роли.
Если вы вошли в веб-приложение от имени пользователя с ролью
System administrator, в навигационной панели перейдите в Пользователи.Отобразится таблица пользователей. Отличительные имена LDAP-пользователей отображаются в столбце Логин.
Устраните проблемы с аутентификацией
Для устранения проблем с аутентификацией используйте журнал менеджера.
Параметры журналирования можно указать в файле конфигурации менеджера ppem-manager.yml. Журналирование может выполняться в отдельном файле или системном журнале (journalctl).
Чтобы устранить проблемы с аутентификацией:
Подключитесь к серверу, на котором установлен менеджер.
Просмотрите журнал менеджера:
Если журналирование выполняется в отдельном файле:
-- Вывести недавние ошибки PPEM -- tail -n 1000 "path_to_the_PPEM_log_file" | grep ERROR
Если журналирование выполняется в системном журнале:
-- Вывести ошибки PPEM за последние 5 минут -- journalctl --since "5m ago" -u ppem.service -g ERROR
Выполните необходимые действия по устранению проблем с аутентификацией.