Настройка браузеров для SSO
Для работы прозрачной аутентификации (SSO) в браузерах необходимо произвести некоторые настройки.
Настройка Mozilla Firefox SSO
- в адресной строке ввести about:config, согласится с тем, что вы понимаете риск;
- в строке поиска ввести negotiate;
- найти параметр network.negotiate-auth.trusted-uris;
- указать в этом параметре имя kerberos области (realm): .test.alt;
В ряде случаев может потребоваться отредактировать еще несколько параметров:
- параметр network.automatic-ntlm-auth.trusted-uris выставить в kerberos realm: .test.alt;
- параметр network.negotiate-auth.delegation-uris выставить в kerberos realm: .test.alt;
- параметр network.automatic-ntlm-auth.allow-non-fqdn выставить в true;
- параметр network.negotiate-auth.allow-non-fqdn выставить в true.
Также можно создать файл /usr/lib64/firefox/browser/defaults/preferences/prefs.js со следующим содержимым:
pref("network.negotiate-auth.trusted-uris",".test.alt");
pref("network.automatic-ntlm-auth.trusted-uris",".test.alt");
pref("network.automatic-ntlm-auth.allow-non-fqdn","true");
pref("network.negotiate-auth.allow-non-fqdn","true");
pref("network.negotiate-auth.delegation-uris",".test.alt");
Эти параметры могут быть распространены через групповые политики для Firefox:
- параметр network.negotiate-auth.trusted-uris — политика «SPNEGO»;
- параметр 'network.automatic-ntlm-auth.trusted-uris — политика «NTLM»;
- параметр network.negotiate-auth.delegation-uris — политика «Делегированная авторизация»;
- параметр network.automatic-ntlm-auth.allow-non-fqdn — политика «Разрешить неполное доменное имя (Non FQDN)»;
- параметр network.negotiate-auth.allow-non-fqdn — политика «Разрешить неполное доменное имя (Non FQDN)».
Настройка Chromium SSO
В файл /etc/chromium/policies/managed/policies.json добавить строки:
{
"AuthServerAllowlist": "*.test.alt" ,
"AuthNegotiateDelegateAllowlist": "*.test.alt"
}
Где .test.alt — имя Kerberos области (realm).
Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium можно проверить, указав в адресной строке URL: "chrome://policy".
Эти параметры могут быть распространены через групповые политики для Chromium: политики «Список разрешенных серверов для аутентификации» («Разрешить аутентификацию на серверах из списка») и «Список разрешенных серверов для делегирования прав по протоколу Kerberos» («Разрешить делегирование прав по протоколу Kerberos на серверах»).
$ chromium-browser --auth-server-allowlist="*.test.alt"
Настройка «Яндекс.Браузера»
В файл /etc/opt/yandex/browser/policies/managed/policies.json добавить строки:
{
"AuthServerAllowlist": "*.test.alt",
"AuthNegotiateDelegateAllowlist": "*.test.alt"
}
Где .test.alt — имя Kerberos области (realm).
Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для «Яндекс.Браузера» можно проверить, указав в адресной строке URL: "browser://policy":
Эти параметры могут быть распространены через групповые политики для Yandex (политики «Разрешить аутентификацию на серверах из списка» и «Разрешить делегирование прав по протоколу Kerberos на серверах»).
Заключение
Пробуем войти на сайт поддерживающий SSO под доменным пользователем.
В системе должен присутствовать рабочий kerberos билет.
Посмотреть билет можно с помощью программы Kerberos Ticket Watche или из командной строки:
$ klist
Ticket cache: KEYRING:persistent:500:500
Default principal: ivanov@TEST.ALT
Valid starting Expires Service principal
02.05.2023 17:20:18 03.05.2023 17:20:18 krbtgt/TEST.ALT@TEST.ALT