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

  1. Создайте файл конфигурации группы пользователей в формате LDIF и укажите следующие параметры:

    dn: отличительное_имя_группы_пользователей
    objectClass: posixGroup
    cn: имя_группы_пользователей
    gidNumber: идентификатор_группы_пользователей
    memberUid: идентификатор_пользователя

    Где:

    • dn: отличительное имя (distinguished name) группы пользователей.

      Вы можете указать следующие атрибуты:

      • cn: уникальное имя группы пользователей.

      • ou: организационная единица, в которую будет помещена группа пользователей.

      • dc: компоненты домена, который будет связан с группой пользователей. Например, example.com.

    • cn: уникальное имя группы пользователей.

    • gidNumber: уникальный идентификатор группы пользователей.

    • memberUid: уникальные идентификаторы пользователей, которые будут добавлены в группу.

  2. Создайте группу пользователей в OpenLDAP:

    ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f example-group.ldif

    Где:

    • -D: отличительное имя администратора OpenLDAP.

    • -W: запрос пароля.

    • -f: имя файла конфигурации группы пользователей.

  3. Убедитесь, что группа пользователей успешно создана:

    ldapsearch -x -b "ou=groups,dc=example,dc=com" "(cn=examplegroup)"

Создайте группу пользователей в Active Directory с помощью ADUC

  1. В графическом интерфейсе Active Directory перейдите к организационной единице (organizational unit, OU), в которую будет помещена группа пользователей.

  2. Нажмите СоздатьГруппа.

  3. В открывшемся окне укажите параметры группы пользователей.

  4. Нажмите OK.

  5. Добавьте пользователей в группу:

    1. Перейдите к свойствам группы пользователей, дважды щёлкнув по ней.

    2. Выберите Члены групп и добавьте пользователей в группу.

Создайте группу пользователей в Active Directory с помощью PowerShell

  1. Создайте группу пользователей:

    New-ADGroup -Path "OU=Groups,OU=Example,DC=example,DC=com" -Name "GROUPMSAD" -GroupScope Global -GroupCategory Distribution

    Где:

    • -Path: отличительное имя группы пользователей.

      Вы можете указать следующие атрибуты:

      • OU: организационная единица, в которую будет помещена группа пользователей.

      • DC: компоненты домена, который будет связан с группой пользователей.

    • -Name: уникальное имя группы пользователей.

  2. Добавьте пользователей в группу:

    Add -ADGroupMember GROUPMSAD -Members user1,user2,user3

    Где:

    • -ADGroupMember: уникальное имя группы, в которую будут добавлены пользователи.

    • -Members: уникальные идентификаторы пользователей, которые будут добавлены в группу.

Настройте интеграцию со службой каталогов

  1. В файле конфигурации менеджера 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: тип службы каталогов.

      Возможные значения:

      • openldap

      • ms_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: название атрибута учётной записи (логина) пользователя.

      Значение по умолчанию: для OpenLDAPcn, для Active DirectorysAMAccountName.

      Необязательный параметр для 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: указывает, следует ли пропустить проверку сертификата сервера службы каталога.

      Возможные значения:

      • true

      • false

      Необязательный параметр.

    • ssl_root_ca: путь к файлу в формате PEM с корневым сертификатом (CA certificate) на сервере службы каталогов.

      Необязательный параметр.

  2. Перезагрузите службу PPEM:

    systemctl restart ppem.service

Настройте авторизацию в PPEM

  1. Войдите в веб-приложение, используя учётную запись пользователя с ролью System administrator role.

    За подробной информацией о ролях, обратитесь к Пользовательские роли и права.

  2. Создайте группу пользователей.

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

    Роли, назначенные группе пользователей при её создании, будут автоматически назначены пользователям из указанной LDAP-группы при входе в веб-приложение.

Проверьте аутентификацию и авторизацию в PPEM

  1. Войдите в веб-приложение, используя учётную запись пользователя службы каталогов. Пользователь должен состоять в LDAP-группе, указанной при настройке авторизации в PPEM.

    Формат логина зависит от службы каталогов:

    • Для OpenLDAP обычно необходимо указать короткий логин пользователя, например i.ivanov.

    • Для Active Directory обычно необходимо указать логин в формате имя_пользователя@домен, например i.ivanov@example.com.

  2. Если аутентификация прошла успешно, проверьте авторизацию одним из следующих способов:

    • В правом верхнем углу страницы нажмите на имя пользователя.

      Откроется личный кабинет, в котором отображаются адрес электронной почты и должность пользователя, а также назначенные пользователю роли.

    • Если вы вошли в веб-приложение от имени пользователя с ролью System administrator, в навигационной панели перейдите в Пользователи.

      Отобразится таблица пользователей. Отличительные имена LDAP-пользователей отображаются в столбце Логин.

Устраните проблемы с аутентификацией

Для устранения проблем с аутентификацией используйте журнал менеджера.

Параметры журналирования можно указать в файле конфигурации менеджера ppem-manager.yml. Журналирование может выполняться в отдельном файле или системном журнале (journalctl).

Чтобы устранить проблемы с аутентификацией:

  1. Подключитесь к серверу, на котором установлен менеджер.

  2. Просмотрите журнал менеджера:

    • Если журналирование выполняется в отдельном файле:

      -- Вывести недавние ошибки PPEM --
      tail -n 1000 "path_to_the_PPEM_log_file" | grep ERROR
    • Если журналирование выполняется в системном журнале:

      -- Вывести ошибки PPEM за последние 5 минут --
      journalctl --since "5m ago" -u ppem.service -g ERROR
  3. Выполните необходимые действия по устранению проблем с аутентификацией.