Настройка менеджера управления для аутентификации с помощью SSO через LDAP и Kerberos на веб-портале zVirt

SSO позволяет пользователям входить на портал администрирования и пользовательский портал без ввода пароля. Учетные данные получаются с сервера Kerberos.

Если используется SSO для входа на веб-портал, аутентификация на ВМ с помощью SSO невозможна.

1. Шаг 1. Перейдите на контроллер домена

  1. Создайте сервисную учётную запись (далее-УЗ).

    • В поле Имя укажите имя для УЗ (в примере используется zvirt);

    • В поле Имя входа пользователя укажите HTTP/srv.domain.local; где srv - имя сервера менеджера управления виртуализацией, domain.local - имя домена.

  2. Откройте свойства УЗ и перейдите на вкладку Учетная запись в Параметры учетной записи:

    • Выключите Требовать смены пароля при следующем входе в систему;

    • Включите Срок действия пароля не ограничен (опционально);

    • Включите Данная учетная запись поддерживает 128-разрядное шифрование и Данная учетная запись поддерживает 256-разрядное шифрование;

    • Сохраните изменения.

  3. Откройте интерпретатор командной строки (cmd) с правами администратора и создайте файл keytab для службы Apache:

    ktpass /out C:\Temp\http.keytab /princ HTTP/srv.domain.local@DOMAIN.LOCAL /pass PASSWORD /mapuser $ZVIRT_USER_DN /ptype KRB5_NT_PRINCIPAL /crypto ALL

    Вместо $ZVIRT_USER_DN введите Distinguished Name пользователя, который был создан на первом шаге

  4. Перейдите в директорию Temp:

    cd C:\Temp
  5. Скопируйте полученный ключ на менеджер управления среды виртуализации:

    scp http.keytab root@srv.domain.local:/etc/httpd

2. Шаг 2. Перейдите в консоль менеджера управления виртуализации

  1. Установите права доступа на файл keytab:

    chown apache /etc/httpd/http.keytab
    chmod 400 /etc/httpd/http.keytab
  2. Установите контекст Selinux для keytab файла:

    semanage fcontext -a -e /etc/httpd/httpd.conf /etc/httpd/http.keytab
    restorecon -Rv /etc/httpd/http.keytab
  3. Установите необходимые пакеты:

    dnf install -y ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_session

    В случае недоступности пакетов mod_auth_gssapi и mod_session в репозитории необходимо:

    • Включить дополнительный репозиторий: dnf config-manager --enable appstream;

    • Установить пакеты: dnf install -y mod_auth_gssapi mod_session;

    • Выключить дополнительный репозиторий: dnf config-manager --disable appstream.

  4. Скопируйте файл ovirt-sso.conf в каталог веб-сервера Apache:

    cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/aaa/ovirt-sso.conf /etc/httpd/conf.d
  5. Скопируйте шаблоны конфигурации и укажите соответствующее имя домена в названии файла.

    Файл конфигурации LDAP
    cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/aaa/profile1.properties /etc/ovirt-engine/aaa/domain.local.properties
    Файл конфигурации авторизации
    cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/domain.local-authz.properties
    Файл конфигурации аутентификации
    cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/extensions.d/profile1-http-authn.properties /etc/ovirt-engine/extensions.d/domain.local-http-authn.properties
    Файл конфигурации проверки подлинности
    cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/extensions.d/profile1-http-mapping.properties /etc/ovirt-engine/extensions.d/domain.local-http-mapping.properties
  6. Отредактируйте файл конфигурации LDAP, при необходимости укажите тип сервера LDAP, а также укажите имя домена, учетную запись и пароль для неё:

    nano /etc/ovirt-engine/aaa/domain.local.properties
    Пример основных параметров:
    vars.forest = domain.local
    vars.user = $ZVIRT_USER_DN
    vars.password = PASSWORD

    Вместо $ZVIRT_USER_DN введите Distinguished Name пользователя, который был создан на первом шаге

  7. Отредактируйте файл конфигурации аутентификации. Имя профиля, видимое пользователям на веб-портале, определяется параметром ovirt.engine.aaa.authn.profile.name:

    nano /etc/ovirt-engine/extensions.d/domain.local-http-authn.properties

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

    ovirt.engine.extension.name = domain.local-http-authn
    ovirt.engine.aaa.authn.profile.name = domain.local-http
    ovirt.engine.aaa.authn.authz.plugin = domain.local-authz
    ovirt.engine.aaa.authn.mapping.plugin = domain.local-http-mapping
  8. Отредактируйте файл конфигурации авторизации:

    nano /etc/ovirt-engine/extensions.d/domain.local-authz.properties

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

    ovirt.engine.extension.name = domain.local-authz
    config.profile.file.1 = ../aaa/domain.local.properties
  9. Отредактируйте файл конфигурации проверки подлинности:

    nano /etc/ovirt-engine/extensions.d/domain.local-http-mapping.properties

    Приведите указанный параметр к виду:

    ovirt.engine.extension.name = domain.local-http-mapping
  10. Установите права доступа на файлы конфигурации:

    chown ovirt:ovirt /etc/ovirt-engine/aaa/*
    chown ovirt:ovirt /etc/ovirt-engine/extensions.d/*
    chmod 600 /etc/ovirt-engine/aaa/domain.local.properties
    chmod 640 /etc/ovirt-engine/extensions.d/domain.local*
  11. Перезапустите службы apache и ovirt-engine:

    systemctl restart httpd.service
    systemctl restart ovirt-engine.service

3. Шаг 3. Настройка браузера

3.1. Настройка SSO-аутентификация через Kerberos для браузера Mozilla Firefox

При использовании браузера Mozilla Firefox для входа на веб-портал zVirt с помощью режима аутентификации по протоколу Kerberos, необходимо выполнить дополнительную настройку браузера.

Для этого в адресной строке браузера необходимо набрать about:config и в значение параметров network.negotiate-auth.trusted-uris, network.automatic-ntlm-auth.trusted-uris добавить имя доменной зоны или сервера аутентификации, например, domain.local или srv-ad01.domain.local.

3.2. Настройка SSO-аутентификация через Kerberos для браузеров Internet Explorer и Google Chrome

При использовании браузеров Internet Explorer и Google Chrome для входа на веб-портал zVirt и режима аутентификации по протоколу Kerberos, необходимо выполнить настройку в браузере Internet Explorer.

  1. Открыть браузер Internet Explorer.

  2. В контекстном меню настроек выбрать пункт Internet Options (Свойства браузера);

  3. В диалоговом окне настроек выбрать Security (Безопасность);

  4. Выбрать зону Local Intranet (Местная интрасеть), нажать кнопку Sites (Сайты);

  5. В появившемся диалоговом окне отметить параметры Все сайты интрасети…​, Все сайты, подключение…​ и Все сетевые пути.

  6. Нажать кнопку Advanced (Дополнительно).

  7. В появившемся диалоговом окне ввести URL-адрес веб-портала zVirt (например, https://zvirt.domain.local/) и нажать Add (Добавить).

  8. Закрыть все диалоговые окна с сохранением настроек нажатием OK.

4. Настройка с SSL/TLS.

4.1. Настройка startTLS

  1. Добавить корневой сертификат центра сертификации или самоподписываемый сертификат контроллера Active Directory.

    Загрузить сертификат в формате .cer(Base 64 encoded X.509) на сервер в каталог /root.

    Добавить сертификат в хранилище доверенных корневых центров сертификации:

    keytool -importcert -noprompt -trustcacerts -alias MyCer -file /root/MyCer.cer -keystore /etc/ovirt-engine/aaa/myrootca.jks -storepass password
  2. Убедиться, что SRV-записи успешно резолвится:

    dig _ldap._tcp.gc._msdcs.example.ru SRV
    dig _ldap._tcp.example.ru SRV
  3. Раскоментировать и отредактировать в файле /etc/ovirt-engine/aaa/domain.local.properties строки:

    pool.default.ssl.startTLS = true
    pool.default.ssl.truststore.file = /etc/ovirt-engine/aaa/myrootca.jks
    pool.default.ssl.truststore.password = password
  4. Перезапустить службу

    systemctl restart ovirt-engine

4.2. Настройка LDAPS

  1. Добавить сертификат центра сертификации или самоподписываемый сертификат контроллера Active Directory. Контроллеру Active Directory должен быть выдан сертификат "Kerberos Authentication".

    Загрузить сертификат в формате .cer(Base 64 encoded X.509) на сервер в каталог /root.

    Добавить сертификат в хранилище доверенных корневых центров сертификации:

    keytool -importcert -noprompt -trustcacerts -alias MyCer -file /root/MyCer.cer -keystore /etc/ovirt-engine/aaa/myrootca.jks -storepass password
  2. Убедиться, что SRV-записи успешно резолвится:

    dig _ldaps._tcp.gc._msdcs.example.ru SRV
    dig _ldaps._tcp.example.ru SRV
  3. Добавить в файл /etc/ovirt-engine/aaa/domain.local.properties строки:

    pool.default.serverset.srvrecord.service = ldaps
    pool.default.ssl.enable = true

    раскоментировать и отредактировать:

    pool.default.ssl.truststore.file = /etc/ovirt-engine/aaa/myrootca.jks
    pool.default.ssl.truststore.password = password
  4. Перезапустить службу

    systemctl restart ovirt-engine