Kerberos委派在chrome中不起作用

时间:2013-07-02 13:15:55

标签: security google-chrome iis-7 kerberos

我有一个包含2个站点的IIS 7服务器 - site1,site2。

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

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

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

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

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

  3. 我使用fiddler来监控请求标头。

    1. 当我使用IE8时,我发现kerberos票据是通过2-hop从site2委派给site1的,这是kerberos的工作方式。

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

    3. 我尝试过设置:

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

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

      有什么想法吗?

4 个答案:

答案 0 :(得分:2)

我必须为此密钥添加相同的注册表值才能使一切正常运行:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium

另外有趣的是我正在使用* .domain.local而不是*。

答案 1 :(得分:0)

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

尝试输入*,不带引号。

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

如果您将"*"与引号一起使用,则无效。

答案 2 :(得分:0)

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

Windows注册表编辑器5.00版

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Edge] “ AuthNegotiateDelegateAllowlist” =“ *”

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome] “ AuthNegotiateDelegateWhitelist” =“ *”

我从注册表中提取了两个注册表项,其中注册表中的*都没有引号,但是提取的注册表项看起来与我上面发布的完全相同

答案 3 :(得分:0)

只有在我使用AuthNegotiateDelegateWhitelist密钥在ouple中添加AuthServerWhitelist密钥后,此方法才起作用。

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

Windows Registry Editor Version 5.00

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