В прошлой статье была рассмотрена интеграция IVA MCU с AD, и чтобы пользователи не вводили пароли лишний раз настроем single sign-on.
Для настройки single sign-on в IVA MCU необходимо выполнить конфигурацию сервера и клиентов.
- Конфигурация серверов
Для настройки SSO потребуется дополнительная сервисная учётная запись в AD, создаём пользователя в AD.
iva-krb-srv
Теперь для этой учётной записи необходимо создать keytab файл и прописать SPN запись.
Выполняем команду:
ktpass /princ HTTP/iva.adminguru.local@ADMINGURU.LOCAL /mapuser ADMINGURU\iva-krb-srv /out C:\Temp\iva.keytab /mapOp set /crypto ALL /ptype KRB5_NT_PRINCIPAL /pass Password
Проверим что SPN запись присутствует:
setspn -L iva-krb-srv
Теперь открываем консоль администрирования, переходим в раздел «Домены», открываем текущий домен кнопкой «Дополнительно» и находим секцию настроек «Настройки Kerberos».
Необходимо включить данные настройки установив галку в пункте «Включено».
После этого я попробовал загрузить keytab через данную секцию настроек, и … ничего не произошло. Keytab файл не появился в системе.
Копируем файл на оба главных сервера. Подключаемся в консоль по ssh и открываем файл:
sudo vim /etc/nginx/ivcs/server.conf
Как видно из файла конфигурации keytab файл лежит по пути:
/etc/nginx/local.keytab
Поскольку данные настройки лежат в общей конфигурации, то есть вероятность, что при обновлении системы данный файл будет перезаписан. Значит нужно переместить наш keytab файл под именем local.keytab в эту папку.
Из директории куда был помещён файл iva.keytab выполним его перенос:
sudo mv iva.keytab /etc/nginx/local.keytab
Проверим keytab файл:
klist -K -e -k -t /etc/nginx/local.keytab
Следующим шагом необходимо сконфигурировать Kerberos:
sudo vim /etc/krb5.conf
В моём случае конфигурация выглядит так:
[libdefaults] kdc_timesync = 1ccache_type = 4
forwardable = true
proxiable =true
fcc-mit-ticketflags = true
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime 7d
rdns = false [logging] default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log [realms] ADMINGURU.LOCAL = {
kdc = adminguru.local
admin_server = adminguru.local
default_domain = ADMINGURU.LOCAL
} [domain_realm]
.adminguru.local = ADMINGURU.LOCAL
adminguru.local = ADMINGURU.LOCAL
Перезагружаю оба сервера, на этом конфигурация серверов закончена.
- Конфигурация клиентов
Для корректной работы SSO в браузере Edge, необходимо:
1. Если вы используете прокси-сервер, то адрес доступа к IVA MCU необходимо добавить в исключения.
2. Для Edge необходимо настроить политики
AuthNegotiateDelegateAllowlist
AuthServerAllowlist
Можно установить их вручную, но правильнее будет сделать групповую политику. Для задания этих настроек необходимо установить административные шаблоны для Edge.
Создаю новую групповую политику
В групповой политике необходимо перейти
Computer Configuration/Policies/Administrative Templates/Microsoft Edge/HTTP authentication
и добавить адрес сервера iva.adminguru.local и включить
Configure list of allowed authentication servers
Specifies a list of servers that Microsoft Edge can delegate user credentials to
На клиенте проверяем, что настройки браузера обновились. В адресной строке браузере:
edge://policy
Проверяем вход в систему и входим без ввода логина и пароля через браузер.
На очереди Desktop клиент IVA Connect.
Для того, чтобы sso заработало в Dektop клиенте необходимо в настройках клиента
%LocalAppData%\IVKS\IVA Connect\Settings.ini
сконфигурировать параметр
SsoAutoLogin=true
Тоже самое для клиента Linux(в моём случае Alt)
Устанавливаем пакет с клиентом
Аналогично конфигурируем настройки sso в файле настроек пользователя:
$HOME/.config/IVKS/ivaconnect/settings.ini
пареметр
SsoAutoLogin=true
После этого клиент пароль спрашивать не должен.
Если вы хотите, чтобы Kerberos аутентификация сработала при первом запуске клиента, то дополнительно нужно указать адрес сервера в настройках. Если вы уже входили в приложение, то он уже будет задан.
Host=iva.adminguru.local
Добавить комментарий