У цій стаття, ми розглянемо, як налаштувати 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
Далі перейдіть на вкладку додатково (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
Перевірити, що ваш браузер працює через аутентифицироваться на сервері за допомогою Kerberos можна за допомогою Fiddler або команди klist tickets.