Делегация Kerberos не работает в Chrome

У меня есть сервер IIS 7 с 2 сайтами - site1, site2.

site1 связывает порт 80, site2 связывает порт 81.

У меня есть веб-страница на сайте site2, которая отправляет запрос http через $.ajax() на URL в site1.

Я настроил оба сайта для использования Kerberos:

  1. Включена только проверка подлинности Windows, выбрано только согласование:kerberos в провайдерах.

  2. Настроил SPN для пользователя / сервера в AD.

Я использую Fiddler для мониторинга заголовков запросов.

  1. Когда я использую IE8, я вижу, что билет Kerberos делегируется от site2 к site1 через 2 перехода, как Kerberos должен работать.

  2. Когда я использую Chrome, я вижу, что билет keberos не делегирован. Я получаю 401 ошибку.

Я попытался установить:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"AuthNegotiateDelegateWhitelist"="*" 

... (и конкретно имя сервера), но это не сработало.

Есть идеи?

5 ответов

Мне пришлось добавить то же значение реестра в этот ключ, чтобы все работало:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium

Также интересно отметить, что я использую *.domain.local вместо *.

Просто столкнулся с этим в 2022 году. Chrome изменил ключи реестра, что было в белом списке, то нет в белом списке. Белый список больше не используется

https://support.google.com/chrome/a/answer/7679408#noNonIncl

Учитывая, что у нас есть Edge Chromium. Выполнение приведенного ниже сценария реестра исправит ошибки для обоих браузеров.

Редактор реестра Windows версии 5.00

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Edge]"AuthNegotiateDelegateAllowlist"="*"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome]"AuthNegotiateDelegateWhitelist"="*"

Я извлек оба ключа из своего реестра, где у них нет кавычек вокруг * в реестре, однако извлеченные ключи выглядят точно так, как я опубликовал выше

Имеет ли введенное вами значение кавычки?

Попробуйте войти * без кавычек.

Выключите Chrome полностью (проверьте диспетчер задач, чтобы убедиться), а затем повторите попытку.

Если вы используете "*" с кавычками это не сработает.

Это сработало только после того, как я добавил ключ AuthServerWhitelist в пару с ключом AuthNegotiateDelegateWhitelist.

Мой скрипт реестра теперь выглядит так:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome] 
"AuthServerWhitelist"="*"
"AuthNegotiateDelegateWhitelist"="*"
Другие вопросы по тегам