Настройка менеджера управления для аутентификации с помощью SSO через LDAP и Kerberos на веб-портале zVirt
SSO позволяет пользователям входить на портал администрирования и пользовательский портал без ввода пароля. Учетные данные получаются с сервера Kerberos.
Если используется SSO для входа на веб-портал, аутентификация на ВМ с помощью SSO невозможна. |
1. Шаг 1. Перейдите на контроллер домена
-
Создайте сервисную учётную запись (далее-УЗ).
-
В поле
Имя
укажите имя для УЗ (в примере используетсяzvirt
); -
В поле
Имя входа пользователя
укажитеHTTP/srv.domain.local
; гдеsrv
- имя сервера менеджера управления виртуализацией,domain.local
- имя домена.
-
-
Откройте свойства УЗ и перейдите на вкладку
Учетная запись
вПараметры учетной записи
:-
Выключите
Требовать смены пароля при следующем входе в систему
; -
Включите
Срок действия пароля не ограничен
(опционально); -
Включите
Данная учетная запись поддерживает 128-разрядное шифрование
иДанная учетная запись поддерживает 256-разрядное шифрование
; -
Сохраните изменения.
-
-
Откройте интерпретатор командной строки (
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
пользователя, который был создан на первом шаге -
Перейдите в директорию
Temp
:cd C:\Temp
-
Скопируйте полученный ключ на менеджер управления среды виртуализации:
scp http.keytab root@srv.domain.local:/etc/httpd
2. Шаг 2. Перейдите в консоль менеджера управления виртуализации
-
Установите права доступа на файл
keytab
:chown apache /etc/httpd/http.keytab chmod 400 /etc/httpd/http.keytab
-
Установите контекст Selinux для keytab файла:
semanage fcontext -a -e /etc/httpd/httpd.conf /etc/httpd/http.keytab restorecon -Rv /etc/httpd/http.keytab
-
Установите необходимые пакеты:
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
.
-
-
Скопируйте файл
ovirt-sso.conf
в каталог веб-сервераApache
:cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/aaa/ovirt-sso.conf /etc/httpd/conf.d
-
Скопируйте шаблоны конфигурации и укажите соответствующее имя домена в названии файла.
- Файл конфигурации 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
-
Отредактируйте файл конфигурации
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 пользователя, который был создан на первом шаге
-
Отредактируйте файл конфигурации
аутентификации
. Имя профиля, видимое пользователям на веб-портале, определяется параметром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
-
Отредактируйте файл конфигурации
авторизации
: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
-
Отредактируйте файл конфигурации
проверки подлинности
:nano /etc/ovirt-engine/extensions.d/domain.local-http-mapping.properties
Приведите указанный параметр к виду:
ovirt.engine.extension.name = domain.local-http-mapping
-
Установите права доступа на файлы конфигурации:
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*
-
Перезапустите службы
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
.
-
Открыть браузер
Internet Explorer
. -
В контекстном меню настроек выбрать пункт
Internet Options
(Свойства браузера); -
В диалоговом окне настроек выбрать
Security
(Безопасность); -
Выбрать зону
Local Intranet
(Местная интрасеть), нажать кнопкуSites
(Сайты); -
В появившемся диалоговом окне отметить параметры
Все сайты интрасети…
,Все сайты
,подключение…
иВсе сетевые пути
. -
Нажать кнопку
Advanced
(Дополнительно). -
В появившемся диалоговом окне ввести URL-адрес веб-портала zVirt (например, https://zvirt.domain.local/) и нажать Add (Добавить).
-
Закрыть все диалоговые окна с сохранением настроек нажатием OK.
4. Настройка с SSL/TLS.
4.1. Настройка startTLS
-
Добавить корневой сертификат центра сертификации или самоподписываемый сертификат контроллера 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
-
Убедиться, что SRV-записи успешно резолвится:
dig _ldap._tcp.gc._msdcs.example.ru SRV dig _ldap._tcp.example.ru SRV
-
Раскоментировать и отредактировать в файле
/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
-
Перезапустить службу
systemctl restart ovirt-engine
4.2. Настройка LDAPS
-
Добавить сертификат центра сертификации или самоподписываемый сертификат контроллера 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
-
Убедиться, что SRV-записи успешно резолвится:
dig _ldaps._tcp.gc._msdcs.example.ru SRV dig _ldaps._tcp.example.ru SRV
-
Добавить в файл
/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
-
Перезапустить службу
systemctl restart ovirt-engine