Налаштування Kerberos аутентифікації в різних браузерах

У цій стаття, ми розглянемо, як налаштувати Kerberos аутентифікацію для різних браузерів в домені Windows для прозорої і безпечної аутентифікації на веб-серверах без необхідності повторного введення пароля в корпоративній мережі. У більшості сучасних браузерах (IE, Chrome, Firefox) є підтримка Kerberos, однак, щоб вона працювала, потрібно виконати кілька додаткових дій.

Щоб браузер міг авторизуватися на веб-сервері, потрібно, щоб були виконані наступні умови:

  • Підтримка Kerberos повинні бути включена на стороні веб-сервера (приклад налаштування Kerberos авторизації на сайті IIS)
  • Наявність у користувача прав доступу до сервера
  • Користувач повинен бути аутентифікований на своєму комп'ютері в Active Directory за допомогою Kerberos (повинен мати TGT - Kerberos Ticket Granting Ticket).

Наприклад, ми хочемо вирішити клієнтам Kerberos авторизацію через браузер на всіх веб серверах домена winitpro.ru (потрібно використовувати саме DNS або FQDN, а не IP адреса веб сервера)

зміст:

  • Налаштування Kerberos аутентифікації в Internet Explorer
  • Включаємо Kerberos аутентифікацію в Google Chrome
  • Налаштування Kerberos аутентифікації в Mozilla Firefox

Налаштування Kerberos аутентифікації в Internet Explorer

Розглянемо, як включити Kerberos аутентифікацію в Internet Explorer 11.

Нагадаємо, що з січня 2016 року, єдина офіційно підтримувана версія Internet Explorer - це IE11.

Відкрийте властивості браузера -> Безпека -> місцева интрасеть (Local intranet), натисніть на кнопку сайти -> додатково. Додайте в зону такі записи:

  • https: //*.winitpro.ru
  • http: //*.winitpro.ru

Додати сайти в цю зону можна за допомогою групової політики: Computer Configuration ->Administrative Templates ->Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page -> Site to Zone Assignment. Для кожного веб-сайту потрібно додати запис зі значенням 1. Приклад дивись в статті про відключення попередження системи безпеки для завантажених з інтернету файлів

Далі перейдіть на вкладку додатково (Advanced) і в розділі Безпека (Security) переконайтеся, що включена опція Дозволити вбудовану перевірку автентичності Windows (Enable Integrated Windows Authentication).

важливо. Переконайтеся, що веб сайти, для яких включена підтримка Kerberos аутентифікації пріустают тільки в зоні Місцева интрасеть. Для сайтів, включених в зону Надійні сайти (Trusted sites), токен Kerberos не надсилається на відповідний веб-сервер.

Включаємо Kerberos аутентифікацію в Google Chrome

Щоб SSO працювала в Google Chrome, потрібно налаштувати Internet Explorer вищеописаним способом (Chrome використовує дані настройки IE). Крім того, потрібно відзначити, що всі нові версії Chrome автоматично визначають наявність підтримки Kerberos. У тому випадку, якщо використовується одна зі старих версій Chrome (Chromium), для коректної авторизації на веб-серверах за допомогою Kerberos, його потрібно запустити з параметрами:

--auth-server-whitelist = "*. winitpro.ru"
--auth-negotiate-delegate-whitelist = "*. winitpro.ru"

наприклад,

"C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe" --auth-server-whitelist = "*. Winitpro.ru" --auth-negotiate-delegate-whitelist = "*. Winitpro. ru "

Або ці параметри можуть бути поширені через групові політики для Chrome (політика AuthServerWhitelist) або строковий параметр реєстру AuthNegotiateDelegateWhitelist (Знаходиться в гілці HKLM \ SOFTWARE \ Policies \ Google \ Chrome).

Для вступу змін в силу потрібно перезавантажити браузер і скинути тікети Kerberos командою klist purge (див. Статтю).

Налаштування Kerberos аутентифікації в Mozilla Firefox

За замовчуванням підтримка Kerberos в Firefox відключена, щоб включити її, відкрийте вікно конфігурації браузера (в адресному рядку перейдіть на адресу about: config). Потім в наступних параметрах вкажіть адреси веб-серверів, для яких повинна використовуватися Kerberos аутентифікація.

  • network.negotiate-auth.trusted-uris
  • network.automatic-ntlm-auth.trusted-uris

Для зручності, можна відключити обов'язкове зазначення FQDN адреси сторінки в адресному рядку Mozilla Firefox, включивши параметр network.negotiate-auth.allow-non-fqdn

Перевірити, що ваш браузер працює через аутентифицироваться на сервері за допомогою Kerberos можна за допомогою Fiddler або команди klist tickets.