11

我有一个带有 2 个站点的 IIS 7 服务器 - site1、site2。

site1绑定80端口,site2绑定81端口。

我在site2 中有一个网页,它通过$.ajax()向site1 中的URL 发送http get 请求。

我已将两个站点都配置为使用 kerberos:

  1. 仅启用 Windows 身份验证,仅在提供程序中选择了协商:kerberos。

  2. 为 AD 中的用户/服务器配置 SPN。

我使用 fiddler 来监视请求标头。

  1. 当我使用 IE8 时,我看到 kerberos 票证通过 2 跳从 site2 委托给 site1,kerberos 应该工作的方式。

  2. 当我使用 chrome 时,我看到 keberos 票证没有被委托。我收到 401 错误。

我尝试设置:

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

...(特别是服务器名称),但它没有奏效。

有任何想法吗?

4

4 回答 4

2

我必须向此键添加相同的注册表值才能使一切正常:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium

同样有趣的是,我使用的是 *.domain.local 而不是 *.domain.local。

于 2013-10-17T18:34:49.940 回答
0

您输入的值是否包含引号?

尝试*不带引号输入。

完全关闭 Chrome(检查任务管理器以确保),然后重试。

如果"*"与引号一起使用,它将不起作用。

于 2013-08-14T15:31:18.067 回答
0

它仅在我使用 AuthNegotiateDelegateWhitelist 键在 qouple 中添加 AuthServerWhitelist 键后才起作用。

我的注册表脚本现在看起来像这样:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome] 
"AuthServerWhitelist"="*"
"AuthNegotiateDelegateWhitelist"="*"
于 2020-09-10T05:30:03.147 回答
0

鉴于我们现在有 Edge Chromium。运行下面的注册表脚本将修复两个浏览器

Windows 注册表编辑器版本 5.00

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

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

我从我的注册表中提取了两个键,它们在注册表中没有引号 *,但是提取的键看起来与我在上面发布的完全一样

于 2020-06-17T14:19:35.600 回答