在不同浏览器中配置 Kerberos 身份验证
在本文中,我们将了解如何为 Windows 域中的不同浏览器配置 Kerberos 身份验证,以在 Web 服务器上启用透明且安全的身份验证,而无需在企业网络中重新输入用户密码。大多数现代浏览器(IE、Chrome、Firefox)都支持 Kerberos,但是,您必须执行一些额外的步骤才能使其正常工作。
要允许浏览器在 Web 服务器上进行身份验证,必须满足以下条件:
必须在 Web 服务器端启用 Kerberos 支持(为 IIS 网站设置 Kerberos 身份验证的示例);
用户必须有权访问网络服务器;
用户必须在使用 Kerberos 连接到 Active Directory 的计算机上进行身份验证(必须具有有效的 TGT — Kerberos 票证授予票证)。
例如,您希望允许 Kerberos 客户端使用 a-d.site 域的任何 Web 服务器上的浏览器进行身份验证(必须使用 DNS 或 FQDN 名称,而不是 Web 服务器的 IP 地址)。
在 Internet Explorer 中启用 Kerberos 身份验证
让我们考虑如何在 Internet Explorer 11 中启用 Kerberos 身份验证。
我们提醒您,自 2016 年 1 月起,唯一官方支持的 Internet Explorer 版本是 IE11。
进入Internet选项 -> 安全 -> 本地Intranet,然后点击站点 -> 高级。将以下条目添加到该区域:
https://*.a-d.sitehttp://*.a-d.site
您可以使用组策略将站点添加到此区域:计算机配置 -> 管理模板 -> Windows 组件 -> Internet Explorer -> Internet 控制面板 -> 安全页面 -> 站点到区域分配。为每个网站添加一个值为 1 的条目。请参阅“如何在 Windows 上对从 Internet 下载的文件禁用打开文件安全警告”一文中的示例。
然后转到高级选项卡,在安全部分中,确保选中启用集成Windows身份验证选项。
重要。确保启用了 Kerberos 身份验证的网站仅存在于本地 Intranet 区域中。受信任站点区域中包含的网站的 Kerberos 令牌不会发送到相应的 Web 服务器。
如何在 Google Chrome 中启用 Kerberos 身份验证
要使 SSO 在 Google Chrome 中工作,请使用上述方法配置 Internet Explorer(Chrome 使用 IE 设置)。另外,需要注意的是,所有新版本的Chrome都会自动检测网站上的Kerberos支持。如果您使用的是早期 Chrome (Chromium) 版本之一,请使用以下参数运行它,以使 Web 服务器上的 Kerberos 身份验证正常工作:
--auth-server-whitelist="*.a-d.site"
--auth-negotiate-delegate-whitelist="*.a-d.site"例如:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --auth-server-whitelist="*.a-d.site " --auth-negotiate-delegate-whitelist="*.a-d.site"您可以使用 Chrome 的 GPO(AuthServerWhitelist 策略)或使用位于注册表项 HKLM\SOFTWARE\Policies\Google\Chrome 中的注册表参数 AuthNegotiateDelegateWhitelist(如何使用 GPO 部署注册表项)来配置这些设置。
为了使更改生效,请重新启动浏览器并使用以下命令重置 Ketberos 票证
klist purge命令(参见文章)。
配置 Firefox 以使用 Kerberos 进行身份验证
默认情况下,Firefox 中的 Kerberos 支持处于禁用状态。要启用它,请打开浏览器配置窗口(转到地址栏中的about:config)。然后在以下参数中指定要使用 Kerberos 身份验证的 Web 服务器的地址。
network.negotiate-auth.trusted-urisnetwork.automatic-ntlm-auth.trusted-uris
为了方便起见,您可以通过启用 network.negotiate-auth.allow-non-fqdn 参数来禁用在 Mozilla Firefox 地址栏中强制输入 FQDN 服务器地址。
您可以使用 Fiddler 或确保您的浏览器已通过服务器上的 Kerberos 身份验证
klist tickets命令。


