Kerberos Double Hop

时间:2018-04-26 17:11:55

标签: sql-server windows kerberos iis-10 kerberos-delegation

我们有臭名昭着的Kerberos双跃点问题。

这是一个全新的域名,正在从模拟和委派之前工作的其他提供商迁移。我们已经升级了操作系统和最新的SQL服务器(2017)。

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

网络服务在域帐户下运行。 Web服务已注册spn,匿名身份验证已禁用,表单身份验证,ASP.NET模拟和Windows身份验证已启用。提供商是"谈判和NTLM," " Kernal模式"已禁用,"使用应用程序池凭据"已启用。 SPN创建了:

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

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

SQL Server是一个命名实例,在域creds下运行。 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 App Pool用户帐户已设置为对端口和命名实例的SQL服务器进行约束委派。

当通过软件登录到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显示没有重复项。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

当其他所有方法都失败时,你真的花了几天时间研究这个问题并阅读互联网上的每篇文章:

REBOOT

烨。那就是修复。重新启动作为委派权限的服务器的IIS服务器,修复了问题。

对于那些希望在IIS和SQL实例之间快速轻松地设置约束委派的人,两者都在自定义域名下运行,请完全按照上面的设置设置并重新启动。

祝福。