Настройка прозрачной Windows аутентификации при использовании балансировщика с ограниченным делегированием
Автор Maksim Efanov, Last modified by Mariya Vorozhba на 23 февраля 2024 03:10 AM

Данная настройка рекомендована Microsoft и является более безопасной, чем полное делегирование.


Настройка

Настройка сервисной учетной записи

Внимание! Данная настройка должна быть выполнена поэтапно и полностью. При незавершенной конфигурации не гарантируется корректная работа системы.

1. Создайте пользователя, который будет использоваться в качестве сервисной УЗ для балансируемых серверов. Эта УЗ будет использована в качестве удостоверения для пулов сервера.
В примере создана следующая УЗ: ServiceAdmin

2. Настройте servicePrincipalName для созданной учетной записи. Для этого выполните следующие команды (Для выполнения команд консоль должна быть запущена от имени Администратора):

    • setspn /s HTTP/balancer indeed\ServiceAdmin
    • setspn /s HTTP/balancer.indeed.local indeed\ServiceAdmin
    • setspn /s HTTP/indeedam1 indeed\ServiceAdmin
    • setspn /s HTTP/indeedam1.indeed.local indeed\ServiceAdmin
    • setspn /s HTTP/indeedam2 indeed\ServiceAdmin
    • setspn /s HTTP/indeedam2.indeed.local indeed\ServiceAdmin

HTTP/balancer - Указывается метод и имя балансировщика.
HTTP/balancer.bal.local - Указывается метод и полное имя балансировщика.
HTTP/indeedam1 - Указывается имя первого сервера Indeed AM.
HTTP/indeedam1.indeed.local - Указывается полное имя первого сервера Indeed AM.
HTTP/indeedam2 - Указывается имя второго сервера Indeed AM.
HTTP/indeedam2.indeed.local - Указывается полное имя второго сервера Indeed AM.
INDEED\ServiceAdmin - Указывается имя сервисной учетной записи в формате DOMAIN\USERNAME.

3. Находим учетную запись в ADUC.

4. Переходим на вкладку "Delegation"

5. Включаем ограниченное делегирование для учетной записи, нажимаем "Add..." и, в открывшемся окне, "Users or Computers...":

6. Добавляем созданную ранее сервисную УЗ:

7. Нажимаем "Select All" и "OK":

8. Нажимаем "Apply" и "OK":

Настройки IIS на серверах Indeed AM

Данные действия необходимо выполнить на каждом балансируемом сервере Indeed AM.
В этом примере настраивается прозрачный вход в Management Console.

1. Откройте "IIS Manager" и выберете пулы приложений. 

2. Для пулов IndeedAM.Core и IndeedAM.MC выберете "Advanced Settings...".

3. Найдите "Identity" и нажмите "...".

4. Выберите "Custom Account:", нажмите "Set..." и введите данные сервисной УЗ:

5. Во всех окнах нажмите "OK".

6. Выберите приложение core или mc и перейдите в "Configuration Editor".

7. Откройте конфигурацию system.webServer/security/authentication/windowsAuthentication и измените параметр "useAppPoolCredentials" в "true". Нажмите "Apply".

8. Проверьте провайдеры для Windows аутентификации и их порядок. Для этого откройте приложение core и mc, в пункте "IIS" выберите "Authentication". Выберите "Windows authentication" и нажмите "Providers...".

9. В окне "Providers" провайдеры должны располагаться как на скриншоте. Если один или оба провайдера отсутствуют или располагаются в другом порядке, то необходимо изменить/добавить, выбрав в пункте "Available Providers".

10. Проделайте эти действия для всех необходимых приложений и пулов.

11. После выполнения всех действий перезагрузите IIS и выполните команду klist purge на каждом сервере Indeed AM. Команда klist purge выполняет сброс билетов Kerberos на компьютере.

Настройка браузеров

Для корректной работы прозрачного входа, необходимо настроить браузеры соответствующим образом.

Internet Explorer

Действия для данного браузера выполняются всегда.

1. Открываем IE -> Нажимаем шестеренку справа вверху -> "Internet options"

1.1 Если IE не удается открыть, можно перейти в Панель управления -> "Internet Options"

2. Добавить Url адреса серверов Indeed AM и балансировщика в интрасеть:

3. Возможно, потребуется включить опцию "Разрешить встроенную проверку подлинности Windows"/"Enable Integrated Windows Authentication". После применения данной настройки необходимо перезагрузить ПК.

4. Возможно, потребуется включить опцию "Автоматический вход в сеть только в зоне интрасети":

Chrome

  1. Необходимо установить и настроить шаблоны правил Chrome. Для установки шаблонов необходимо скачать архив с политиками.
  2. После распаковки архива необходимо скопировать из каталога "Configuration\admx" файл chrome.admx и, как минимум, каталоги en-US и ru-RU в каталог "C:\Windows\PolicyDefinitions".
  3. Далее открыть «Редактор локальной групповой политики» (gpedit.msc) и включить настройку «Конфигурация компьютера -> Административные шаблоны-> Google -> Google Chrome -> HTTP-аутентификация -> Список разрешенных серверов для аутентификации и в параметрах прописать домен, например "*.indeed.local".





    Настройка через реестр

    В ветке "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome" добавить строковой параметр "AuthServerAllowlist" и в значении указать домен, например "*.indeed.local".

    Файл с выгрузкой реестра для данного примера приложен (Chrome Kerberos.reg).

Firefox

  1. Необходимо скачать политики.
  2. После распаковки архива необходимо скопировать из каталога «windows» файлы admx и, как минимум, каталоги en-US и ru-RU в каталог «C:\Windows\PolicyDefinitions».
  3. Далее открыть «Редактор локальной групповой политики» (gpedit.msc) и включить настройку «Конфигурация компьютера -> Административные шаблоны->Mozilla -> Firefox -> Aутентификация -> Делегированная авторизация» и в параметрах прописать домен (полностью), например «*.indeed.local».





    Настройка через реестр

    В ветке "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Firefox\Authentication\Delegated" добавить строковой параметр "1" и в значении указать домен, например "*.indeed.local".


    Файл с выгрузкой реестра для данного примера приложен (Mozilla Kerberos.reg).

  4. Далее открыть браузер, в адресной строке набрать «about:config», затем в поиске найти параметр network.negotiate-auth.trusted-uris и задать ему значение: домен (полностью), например «indeed.local».



  5. Тут же, в поиске найти параметр network.automatic-ntlm-auth.trusted-uris и задать ему значение: домен (полностью), например «indeed.local».

Microsoft Edge

  1. Выполните загрузку архива с политиками по ссылке. Для загрузки требуется выбрать ОС, указать текущую версию браузера и нажать "Download <OS> <xx>-bit Policy". 
  2. После загрузки извлеките содержимое "cab" архива в необходимую директорию, после распакуйте вложенный "zip" архив.
  3. Скопируйте содержимое "MicrosoftEdgePolicyTemplates\windows\admx" в хранилище GPO в соответствии с требуемой локалью.
  4. Для настройки политики откройте: Редактор локальной групповой политики (gpedit.msc) -> Конфигурация компьютера -> Административные шаблоны -> Microsoft Edge -> Проверка подлинности HTTP.
  5. Выберете файл "Настройка списка разрешенных серверов проверки подлинности".



    В политике выберете "Включено" и укажите в параметре DNS машины с Admin Console или DNS балансировщика(можно указать несколько через запятую) или регулярное выражение. Например: "*.indeed.local".


Настройка через реестр

В ветке "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" добавить строковой параметр "AuthServerAllowlist" и в значении указать домен, например "*.indeed.local".

Файл с выгрузкой реестра для данного примера приложен (Edge Kerberos.reg).

Yandex

  1. Необходимо скачать политики (ADMX и ADML файлы). 
  2. Далее нужно:
    • скопировать файл ADMX в каталоги C:\Windows\PolicyDefinitions и C:\Windows\SYSVOL\sysvol\<domain_name.local>\Policies\PolicyDefinitions.
    • скопировать файл ADML в каталоги C:\Windows\PolicyDefinitions\<язык_ОС> и C:\Windows\SYSVOL\sysvol\<domain_name.local>\Policies\PolicyDefinitions\<язык_ОС>.
  3. Теперь требуется открыть «Редактор локальной групповой политики» (gpedit.msc) и включить настройку «Конфигурация компьютера -> Административные шаблоны -> Яндекс -> Яндекс Браузер -> Настройки прокси-сервера и аутентификации -> Разрешить аутентификацию на серверах из списка, в параметрах прописать домен, например "*.indeed.local".

         

Настройка через реестр

В ветке "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\YandexBrowser" добавить строковой параметр "AuthServerAllowlist" и в значении указать домен, например "*.indeed.local".

Файл с выгрузкой реестра для данного примера приложен (Yandex Kerberos.reg).

Отладка

Если все действия были проделаны, но при входе в MC возникает 401 ошибка, то попробуйте следующие действия:

  1. Выполните команду klist purge;
  2. Перезагрузите машину;
  3. Очистите кеш и cookie-файлы браузера;
  4. Закройте все вкладки браузера и перезапустите его;
  5. На странице с 401 ошибкой, перезагрузите страницу.
  6. Соберите трафик WireShark с пакетами Kerberos и отправьте нам.


Вложения 
 
 Chrome Kerberos.reg (0.27 кБ)
 Mozilla Kerberos.reg (0.29 кБ)
 Edge Kerberos.reg (0.27 кБ)
 Yandex Kerberos.reg (0.27 кБ)
(8 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии: