用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。原因:基于令牌的服务器访问验证失败

Nat*_*n C 3 authentication sql-server-2008-r2 kerberos

正如标题所述,我在尝试使用 ASP.NET webapp 时收到以下错误:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: 192.168.x.x]

这是来自 SQL 服务器上的“应用程序”日志。我目前有一个集群设置(使用 Microsoft 故障转移集群),尽管第二个节点尚未配置。我试过配置 SPN:

setspn -L myserviceaccount

Registered ServicePrincipalNames for <DN>:
        MSSQLSvc/*SQL.corp.*.local:1433
        MSSQLSvc/*SQL.corp.*.local
Run Code Online (Sandbox Code Playgroud)

事实上,SQL Server 确实根据其日志正确注册了它:

Message The SQL Server Network Interface library successfully registered the Service Principal Name (SPN) [ MSSQLSvc/my.sql.fqdn ] for the SQL Server service.

但是,查询SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid ;返回NTLM而不是Kerberos。我已经重新启动服务器几次都无济于事。SQL Server 在具有适当委派权限的域用户帐户下运行。

我错过了什么吗?

更新:

根据上述查询,我​​成功地让 SQL Server 使用“Kerberos”,但我仍然没有运气让 IIS 级别工作。

小智 5

这称为 SQL Server 和 IIS 之间的“双跳”问题。看起来您可能不信任 IIS 服务器进行委派。

这是使用 Kerberos 设置带有 IIS 的 SQL Server 时要做的事情的一个很好的清单

这是关于这种情况的很好的入门书。匿名登录是问题的一个放弃。