Настройка интеграции zVirt с Avanpost DS

Служба каталогов Avanpost DS может быть подключена к платформе виртуализации zVirt в качестве внешнего провайдера аутентификации по протоколу LDAP.

ВАЖНО! Инструкция предназначена для установки zVirt с расширением "AAA-JDBC".

1. Предварительные требования

  • Контроллер домена Avanpost DS доступен по протоколу LDAP. В примере это "avanpost.vlocal".

  • Создана учётная запись в Avanpost DS с правами на поиск (search) и вход (login) в каталоге. В примере это "cn=Administrator,ou=users,dc=avanpost,dc=vlocal".

  • Имя контроллера домена Avanpost DS разрешается через DNS из Менеджера управления.

  • Есть доступ по SSH к Менеджеру управления с правами root.

  • Есть доступ к Порталу администратора с правами администратора. Например, под пользователем "admin@internal".

  • Подготовлен CA-сертификат в формате PEM, если требуется защищённое соединение.

2. Настройка интеграции

Для настройки интеграции необходимо выполнить шаги:

Шаг 1. Создать профиль службы каталогов

Для этого требуется авторизоваться на сервере Менеджера управления по SSH и запустить утилиту "ovirt-engine-extension-aaa-ldap-setup".

Последовательно указать параметры по запросу утилиты:

Запрос утилитыЗначение
Please select (тип LDAP)11 — RFC-2307 Schema (Generic)
Use DNSYes (по умолчанию)
Please select (политика подключения)1 — Single server
Please enter host address

FQDN контроллера домена Avanpost DS

avanpost.vlocal
Please select protocol to use

Протокол для использования

plain
Enter search user DN

Учётная запись в Avanpost DS с правами на поиск (search) и вход (login) в каталоге

cn=Administrator,ou=users,dc=avanpost,dc=vlocal
Enter search user passwordПароль пользователя
Please enter base DN

Base DN каталога Avanpost DS

dc=avanpost,dc=vlocal
Are you going to use Single Sign-On for Virtual MachinesYes (по умолчанию)

Please specify profile name that will be visible to users

Имя профиля

avanpost.vlocal

Внимание! Если планируется использовать функцию Single Sign-On для виртуальных машин, имя профиля должно совпадать с именем домена.

Примечание. В примере использован протокол plain, который допустимо применять только в тестовых средах. Если сервер каталогов поддерживает протокол startTLS, следует выбрать его. Он предлагается утилитой по умолчанию.

Пример вывода утилиты
Available LDAP implementations:
 ...
 11 - RFC-2307 Schema (Generic)
 ...
Please select:11
Use DNS (Yes, No) [Yes]:
Please select:1
Please enter host address:avanpost.vlocal
Please select protocol to use (startTLS, ldaps, plain) [startTLS]:plain
[ INFO  ] Connecting to LDAP using 'ldap://avanpost.vlocal:389'
[ INFO  ] Connection succeeded
Enter search user DN (...):cn=Administrator,ou=users,dc=avanpost,dc=vlocal
Enter search user password:
[ INFO  ] Attempting to bind using 'cn=Administrator,ou=users,dc=avanpost,dc=vlocal'
Please enter base DN (dc=avanpost,dc=vlocal) [dc=avanpost,dc=vlocal]:
Are you going to use Single Sign-On for Virtual Machines (Yes, No) [Yes]:
Please specify profile name that will be visible to users [avanpost.vlocal]:

Шаг 2. Выполнить тестовую проверку входа

После ввода параметров утилита предложит выполнить тестовый вход. Требуется ввести любые имя и пароль пользователя. Например, "test":

Пример вывода утилиты
Enter user name:test
Enter user password:
[ INFO  ] Executing login sequence...
...
WARNING: [ovirt-engine-extension-aaa-ldap.authn::avanpost.vlocal-authn] Cannot initialize LDAP framework, deferring initialization. Error: operations error
SEVERE: operations error
[ ERROR ] Login sequence failed

Внимание! Ошибка "Login sequence failed" ожидаема, так как профиль ещё не содержит необходимых параметров для работы с Avanpost DS. 

На запрос выбора продолжения требуется указать "Done":

Пример вывода утилиты
Select test sequence to execute (Done, Abort, Login, Search) [Abort]:Done

Внимание! Значением по умолчанию является "Abort". Если оставить его, утилита завершит своё выполнение и конфигурационные файлы профиля созданы не будут.

После выбора "Done" будут созданы конфигурационные файлы:

Пример вывода утилиты
CONFIGURATION SUMMARY
Profile name is: avanpost.vlocal
The following files were created:
    /etc/ovirt-engine/aaa/avanpost.vlocal.properties
    /etc/ovirt-engine/extensions.d/avanpost.vlocal.properties
    /etc/ovirt-engine/extensions.d/avanpost.vlocal-authn.properties

Шаг 3. Добавить необходимые параметры для работы с Avanpost DS

Утилита создаёт профиль по схеме RFC-2307. Чтобы он корректно работал с Avanpost, в файл настроек профиля необходимо добавить дополнительные параметры.
Для этого требуется:

3.1. Перейти в каталог "/etc/ovirt-engine/aaa" с помощью команды:

cd /etc/ovirt-engine/aaa

3.2. Открыть файл "[имя_профиля].properties", где [имя_профиля] — это название, введённое на шаге 1. В примере название файла "avanpost.vlocal.properties":

nano /etc/ovirt-engine/aaa/avanpost.vlocal.properties

3.3. Добавить в конец файла строки и сохранить изменения:

pool.default.auth.type = simple
sequence-init.init.500-avanpost-init-vars = avanpost-init-vars
sequence.avanpost-init-vars.010.type = var-set
sequence.avanpost-init-vars.010.var-set.variable = rfc2307_attrsUniqueId
sequence.avanpost-init-vars.010.var-set.value = objectguid
sequence.avanpost-init-vars.020.type = var-set
sequence.avanpost-init-vars.020.var-set.variable = simple_attrsUserName
sequence.avanpost-init-vars.020.var-set.value = samaccountname
sequence.avanpost-init-vars.030.type = var-set
sequence.avanpost-init-vars.030.var-set.variable = simple_attrGroupMemberDN
sequence.avanpost-init-vars.030.var-set.value = member

Шаг 4. Примененить настройки

Для этого требуется перезапустить службу Менеджера управления с помощью команды:

systemctl restart ovirt-engine

Шаг 5. Добавить пользователей из Avanpost DS и назначениить права

После перезапуска службы ovirt-engine профиль появится в системе, но войти под пользователями из Avanpost DS пока нельзя, так как сначала их необходимо добавить в Менеджер управления и выдать соответствующие права.
Для этого требуется:

5.1. Авторизоваться в Портале администратора под локальным администратором.

5.2. В разделе "Управление"→"Пользователи" нажать "Добавить".

5.3. В поле "Поиск" выбрать созданный профиль. В примере "avanpost.vlocal".

5.4. Найти требуемого пользователя, отметить его и нажать "Добавить".

5.5. Выделить добавленного пользователя и назначить ему права. Например, роль "SuperUser".

Внимание! Без назначенных прав пользователь не сможет войти в Портал администратора, даже если он добавлен в список пользователей.

Шаг 6. Проверить интеграцию

Для проверки требуется:

6.1. Завершить сеанс и открыть страницу входа в Портал администратора.

6.2. В поле "Профиль" выбрать созданный профиль, например "avanpost.vlocal".

6.3. Ввести имя и пароль добавленного пользователя из Avanpost DS.

6.4. Проверить, что вход выполнен успешно и пользователю доступны функции согласно назначенной роли.

Обсуждение