Интеграция с LDAP

Важно

Количество необходимых ТУЗ зависит от выбранного варианта управления паролями: с автоматической ротацией или без неё. Оба варианта описаны в разделе Ротация учётных записей LDAP.

Интеграция OpenStack с LDAP

Для интеграции OpenStack с каталогом пользователей по протоколу LDAP выполните следующие шаги:

  1. Создайте домен. Для этого перейдите в OpenStack CLI и выполните команду создания домена openstack domain create <домен ldap>, указав имя добавляемого домена.

  2. Добавьте параметры в файл globals.d/REGION.yml соответствующего региона, указав имя добавляемого домена (в интерфейсе Horizon в выпадающем списке домены будут отображаться в той последовательности, в которой они указаны в этом файле):

    Предупреждение

    При использовании ОС SberLinux параметры horizon_keystone_multidomain и horizon_keystone_domain_choices не указывайте — для SberLinux Horizon в KeyStack недоступен.

    keystone_ldap_url: "ldaps://<имя сервера LDAP>:<порт LDAP>"
    horizon_keystone_multidomain: "True"
    horizon_keystone_domain_choices:
      Default: default
      Ldap: <домен LDAP>
    
  3. Добавьте параметры в файл /config/keystone/domains/keystone.ldap.conf соответствующего региона:

    [identity]
    driver = ldap
    
    [ldap]
    group_allow_create = False
    group_allow_delete = False
    group_allow_update = False
    group_desc_attribute = description
    group_id_attribute = cn
    group_member_attribute = member
    group_name_attribute = cn
    group_objectclass = group
    group_filter = "<фильтр групп LDAP>"
    password = "{{ ldap_password }}"
    query_scope = sub
    suffix = "<DN-суффикс LDAP>"
    user_tree_dn = "<DN-tree пользователей>"
    url = "{{ keystone_ldap_url }}"
    user = <DN служебного пользователя>
    user_filter = "<фильтр пользователей LDAP>"
    user_allow_create = False
    user_allow_delete = False
    user_allow_update = False
    user_enabled_attribute = userAccountControl
    user_enabled_default = 512
    user_enabled_mask = 2
    user_id_attribute = cn
    user_mail_attribute = mail
    user_name_attribute = sAMAccountName
    user_objectclass = person
    user_pass_attribute = userPassword
    group_tree_dn = "<DN-tree групп>"
    page_size = 0
    
  4. При интеграции по протоколу LDAPS добавьте цепочку из корневых и промежуточных сертификатов в файл certificates/ca/ldap.crt и соответствующую строку в файл конфигурации keystone.ldap.conf:

    [ldap]
    tls_cacertfile = "{{ openstack_cacert }}"
    
  5. Поместите пароль пользователя <DN служебного пользователя> в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml в поле ldap_password.

  6. Выполните развёртывание региона с указанием тегов keystone и horizon.

    Предупреждение

    При использовании ОС SberLinux не указывайте в параметрах тег horizon — из-за недоступности Horizon пайплайн завершится с ошибкой. Используйте только тег keystone.

  7. Подключитесь к OpenStack CLI (см. Использование OpenStack CLI) и проверьте, что пользователи и группы LDAP видны в KeyStack:

    # openstack user list --domain <домен LDAP>
    +------------------------------------------------------------------+----------------+
    | ID                                                               | Name           |
    +------------------------------------------------------------------+----------------+
    | f82090b43940df5f7b8e77fb5e4ddaf04e60cecebc5e94dd63a5e0f53f219fe5 | user1          |
    +------------------------------------------------------------------+----------------+
    
    # openstack group list --domain <домен LDAP>
    +------------------------------------------------------------------+--------+
    | ID                                                               | Name   |
    +------------------------------------------------------------------+--------+
    | ec6d01371e3160ab417c404fa07828a2e4c2d2e3147b762f9cf6f3555a601280 | group1 |
    +------------------------------------------------------------------+--------+
    
  8. Создайте проект в OpenStack CLI, а при использовании Ubuntu — также с помощью интерфейса Horizon:

    # openstack project create <проект> --domain <домен ldap>
    
  9. Добавьте пользователей или группы в проект и дайте им права в них в OpenStack CLI:

    # openstack role add --project <проект> --user user1 --user-domain <домен ldap> member
    # openstack role add --project <проект> --group group1 --group-domain <домен ldap> member
    

Проверка корректности настройки интеграции с LDAP

Выполните проверки работы ролевой модели:

  • Войдите в Портал администратора пользователем с ролью admin. Убедитесь, что доступна кнопка Создать ВМ, корректно отображаются данные мониторинга и доступен переход в OpenSearch и Grafana.

  • Войдите в Портал администратора пользователем с ролью security_auditor или reader. Убедитесь, что доступны просмотр ресурсов, данные мониторинга и логирования, но недоступны операции создания, изменения и удаления ресурсов.

  • Войдите в Портал администратора пользователем с ролью member, operator_vm, app_operator или os_operator. Убедитесь, что доступ ограничен разрешёнными разделами, а переходы в GitLab, NetBox, OpenSearch и Grafana недоступны.

  • Войдите в GitLab пользователями с ролями admin, security_auditor и reader. Убедитесь, что доступ к репозиториям соответствует назначенной роли, прямые коммиты в master запрещены, а изменения выполняются через Merge Request.

  • Войдите в NetBox пользователями с ролями admin, security_auditor и reader. Убедитесь, что пользователь с ролью admin может создавать, изменять и удалять объекты, а пользователи с ролями security_auditor и reader имеют доступ только на чтение.