繁体   English   中英

Kerberos双跳

[英]Kerberos Double Hop

我们有臭名昭著的Kerberos双跳问题。

这是一个全新的域,已从以前进行模拟和委派的其他提供商迁移而来。 我们已将操作系统升级到最新的SQL Server(2017)。

WPF应用程序(使用域凭据)-> Web服务(IIS 10上的WCF应用程序)-> SQL 2017(命名实例)

Web服务在域帐户下运行。 该Web服务已注册了spn,禁用了匿名身份验证以及表单身份验证,ASP.NET模拟和启用了Windows身份验证。 提供程序是“协商和NTLM”,“内核模式”已禁用,“使用应用程序池凭据”已启用。 创建的SPN:

HTTP/<url of web service> <AppPool Creds> 

我们能够通过远程计算机上的浏览器登录到Web服务,输入域凭据并获得预期的响应(显示网页)。 IIS日志按预期显示域用户信誉。

SQL Server是一个命名实例,在域凭据下运行。 创建的SPN:

MSSQLSvc/<fqdn>:<Instance> <SQL Domain Creds>

MSSQLSvc/<sql server netbios>:<Instance> <SQL Domain Creds>

MSSQLSvc/<fqdn>:<port> <SQL Domain Creds>

MSSQLSvc/<sql server netbios>:<port> <SQL Domain Creds>

设置了AD中的IIS应用程序池用户帐户,以用于端口和命名实例的约束委派给SQL Server。

通过软件登录到Web服务(WPF调用WCF服务而没有数据库调用)时,可以看到正常响应。

通过数据库调用通过软件登录到Web服务时,SQL Profiler显示“匿名登录”。 在IIS框中启用Kerberos日志记录的情况下,收到以下错误:

Error Code: 0xd KDC_ERR_BADOPTION

Extended Error: 0xc0000225 KLIN(0)

Server Name: MSSQLSvc/<sql server fqdn>:49942

Target Name: MSSQLSvc/<sql server fqdn>:49942@<domain.com>

我们还尝试了无限制的委派,但收到了相同的结果。

SETSPN -X显示没有重复。

预先感谢您的帮助!

当所有其他方法都失败时,您实际上已经花了很多天的时间来解决问题并阅读Internet上的每篇文章:

REBOOT

对。 就是这样。 重新启动IIS服务器(该服务器是委派权限的服务器)可以解决此问题。

对于希望快速轻松地在IIS和SQL实例之间设置受约束的委派(都在自定义域凭据下运行)的用户,请完全按照上述设置进行设置并重新启动。

最好的祝愿。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM