我们目前面临一个有关Kerberos身份验证的有趣问题。
目标是通过互联网发布网站。需要在Active Directory环境中由Kerberos端到端地处理身份验证。但是,客户端PC可能会或可能不会加入域。网站的文件位于文件共享上,应使用模拟访问。 Web服务器本身是主域控制器。
景观的示意图如下所示:
问题:
IIS设置为仅允许协商:kerberos Windows身份验证。当客户端PC位于本地网络之外时,这将在浏览器中提示凭证对话框。域名凭证不会通过互联网接受,客户端的事件查看器显示
Kerberos客户端找不到域的域控制器
domain.tld:0xC000005E。 Kerberos身份验证需要通信
使用域控制器。
这是正确的,因为无法通过互联网访问域名的KDC。据我们所知,Kerberos身份验证应该可以通过直接客户端访问KDC,因为Web服务器被委派为代表最终用户进行身份验证。
我们的主要假设:
- Kerberos可用作身份验证方法,无需从客户端PC直接访问KDC。
我们尝试和/或相关的事情:
- Sub.domain.tld位于Internet Explorer的可信站点
- 几个SPN配置
- 不同的应用程序池标识(域帐户,默认帐户,系统,网络)
- 禁用loopbackcheck
- 同一时区/同一时间的机器
- 为Web服务器启用委派
- 使用不同的计算机在不同的域上重现(此域具有用于Web服务器和域控制器的单独计算机)
作为一个注释,NTLM是不可能的,因为它缺乏对模拟的支持,并且不需要基本身份验证,因为它将用户凭据存储在Web服务器上。
参考文献:
- www.adopenstatic.com/cs/blogs/ken/archive/2007/07/19/8460.aspx
- www.adopenstatic.com/cs/blogs/ken/archive/2007/01/27/1282.aspx
- windowsitpro.com/security/kerberos-delegation-and-troubleshooting
- technet.microsoft.com/en-us/library/cc995228.aspx
- community.dynamics.com/ax/b/axsolutionsmonkey/archive/2009/05/20/kerberos-configuration-for-clients-accessing-role-center-from-outside-of-intranet.aspx
- dirteam.com/sander/2012/09/05/new-features-in-active-directory-domain-services-in-windows-server-2012-part-10-improved-kcd /