Настройка браузеров для SSO: различия между версиями

Материал из ALT Linux Wiki
 
(не показаны 4 промежуточные версии этого же участника)
Строка 2: Строка 2:
Для работы прозрачной аутентификации (SSO) в браузерах необходимо произвести некоторые настройки.
Для работы прозрачной аутентификации (SSO) в браузерах необходимо произвести некоторые настройки.
== Настройка Mozilla Firefox SSO ==
== Настройка Mozilla Firefox SSO ==
* В адресной строке вводим '''about:config''', соглашаемся с тем, что мы понимаем риск
* в адресной строке ввести '''about:config''', согласится с тем, что вы понимаете риск;
* В строке поиска вводим '''negotiate'''
* в строке поиска ввести '''negotiate''';
* Находим параметр '''network.negotiate-auth.trusted-uris'''
* найти параметр '''network.negotiate-auth.trusted-uris''';
* Указываем в этом параметре имя нашей kerberos области (realm): '''.mydomain.ru'''
* указать в этом параметре имя kerberos области (realm): '''.test.alt''';
В ряде случаев потребуется отредактировать еще несколько параметров:
* Параметр '''network.automatic-ntlm-auth.trusted-uris''' также выставляем в kerberos realm '''.mydomain.ru'''
* Параметр '''network.negotiate-auth.delegation-uris''' также выставляем в kerberos realm '''.mydomain.ru'''
* Параметр '''network.automatic-ntlm-auth.allow-non-fqdn''' выставляем в '''true'''
* Параметр '''network.negotiate-auth.allow-non-fqdn''' выставляем в '''true'''


Также можно создать файл '''/usr/lib64/firefox/browser/defaults/preferences/prefs.js''' со следующим содержимым:
[[Файл:Firefox_config.png|Настройка Mozilla Firefox SSO]]
<pre>pref("network.negotiate-auth.trusted-uris",".mydomain.ru");
 
pref("network.automatic-ntlm-auth.trusted-uris",".mydomain.ru");
В ряде случаев может потребоваться отредактировать еще несколько параметров:
* параметр '''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'''.
 
Также можно создать файл {{path|/usr/lib64/firefox/browser/defaults/preferences/prefs.js}} со следующим содержимым:
<syntaxhighlight lang="ini">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.automatic-ntlm-auth.allow-non-fqdn","true");
pref("network.negotiate-auth.allow-non-fqdn","true");
pref("network.negotiate-auth.allow-non-fqdn","true");
pref("network.negotiate-auth.delegation-uris",".mydomain.ru");</pre>
pref("network.negotiate-auth.delegation-uris",".test.alt");</syntaxhighlight>
 
Эти параметры могут быть распространены через [[Групповые_политики|групповые политики]] для [[Групповые_политики/Firefox|Firefox]]:
* параметр '''network.negotiate-auth.trusted-uris''' — политика «[[Групповые_политики/Firefox#SPNEGO|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 ==
== Настройка Chromium SSO ==
Создать каталог:
В файл {{path|/etc/chromium/policies/managed/policies.json}} добавить строку:
<pre># mkdir -p /etc/chromium/policies/managed/</pre>
<syntaxhighlight lang="ini">{  
В ней создать файл '''mydomain.json''' следующего содержания:
     "AuthServerAllowlist": "*.test.alt"  
<pre>{  
}</syntaxhighlight>
     "AuthServerWhitelist": "*.mydomain.ru"
Где '''.test.alt''' имя kerberos области (realm).
    "AuthNegotiateDelegateAllowlist": "*.mydomain.ru"
 
}</pre>
Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium можно проверить, указав в адресной строке URL: "chrome://policy".
Где '''.mydomain.ru''' - имя kerberos области (realm).
 
Эти параметры могут быть распространены через [[Групповые_политики|групповые политики]] для [[Групповые_политики/Chromium|Chromium]] (политика «[[Групповые_политики/Chromium#AuthServerAllowlist|Список разрешенных серверов для аутентификации]]»).
 
{{note|Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
<syntaxhighlight lang="bash">$ chromium-browser --auth-server-allowlist="*.test.alt"</syntaxhighlight>}}


== Заключение ==
== Заключение ==
Пробуем войти на сайт поддерживающий SSO под доменным пользователем.<br>
Пробуем войти на сайт поддерживающий SSO под доменным пользователем.
В системе должен присутствовать рабочий kerberos билет.<br>
 
Посмотреть билет можно с помощью программы  Kerberos Ticket Watcher.<br>
В системе должен присутствовать рабочий kerberos билет.
Так же можно посмотреть из командной строки:
 
<pre>$ klist
Посмотреть билет можно с помощью программы  Kerberos Ticket Watche или из командной строки:
<syntaxhighlight lang="bash">$ klist
Ticket cache: KEYRING:persistent:500:500
Ticket cache: KEYRING:persistent:500:500
Default principal: user@IPA.EXAMPLE.TEST
Default principal: ivanov@TEST.ALT


Valid starting      Expires              Service principal
Valid starting      Expires              Service principal
15.06.2017 10:20:18  16.06.2017 10:20:18  krbtgt/IPA.EXAMPLE.TEST@EXAMPLE.TEST</pre>
02.05.2023 17:20:18  03.05.2023 17:20:18  krbtgt/TEST.ALT@TEST.ALT</syntaxhighlight>

Текущая версия от 13:48, 1 сентября 2023

Для работы прозрачной аутентификации (SSO) в браузерах необходимо произвести некоторые настройки.

Настройка Mozilla Firefox SSO

  • в адресной строке ввести about:config, согласится с тем, что вы понимаете риск;
  • в строке поиска ввести negotiate;
  • найти параметр network.negotiate-auth.trusted-uris;
  • указать в этом параметре имя kerberos области (realm): .test.alt;

Настройка Mozilla Firefox SSO

В ряде случаев может потребоваться отредактировать еще несколько параметров:

  • параметр 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" 
}

Где .test.alt — имя kerberos области (realm).

Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium можно проверить, указав в адресной строке URL: "chrome://policy".

Эти параметры могут быть распространены через групповые политики для Chromium (политика «Список разрешенных серверов для аутентификации»).

Примечание: Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
$ chromium-browser --auth-server-allowlist="*.test.alt"


Заключение

Пробуем войти на сайт поддерживающий 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