Настройка менеджера управления для аутентификации с помощью 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