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