【问题标题】:NT AUTHORITY\ANONYMOUS LOGON Error (Double Hop)NT AUTHORITY\ANONYMOUS LOGON 错误(双跳)
【发布时间】:2015-02-13 11:01:02
【问题描述】:

背景:

IIS 在一台服务器上 (7)

SQL 在另一台服务器上

Active Directory 位于另一台服务器上(这可能会或可能不会有所不同,但从我读过的内容来看可能)

我们有一个全新的 MVC 站点,它使用 AD 权限授予对站点的访问权限,然后在 SQL 中运行 SP

站点访问工作正常,但我收到错误用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败,我认为这意味着我已经陷入双跳问题。

在 IIS 中,我有一个 V4.0 集成的应用程序池和应用程序池标识

在我的应用程序中,我设置了 ASP.net Impersonation Enabled 和 Windows Authentication Enabled,其他所有设置都已禁用

在 SQL Server 和 IIS 服务器的委派设置中,我设置了“信任此计算机以委派任何服务(仅限 Kerberos)”

如果我在 SQL 中运行以下语句

选择 auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;

我得到了 KERBEROS。

我错过了什么?还是做错了?谢谢

【问题讨论】:

  • IIS 服务器需要“信任此计算机进行委派”。您是否确认 IIS 正在获取正确的凭据(即匿名身份验证已关闭)?有许多在线身份验证帮助页面,例如ASP.NET Authentication test page,可能会有所帮助。
  • 平心而论Rhys,我在开发方面经验丰富,我过去工作过的所有公司都有专门的服务器团队,所以不确定,我看看链接,谢谢看看我还能找到什么,我已经阅读了成堆的页面并相信一切都设置正确,但显然我在 SQL 服务器上打开委派并不是为了安全起见,而是有计划一切正常后将其关闭。
  • 我也一样,我的背景是开发,网络非常次要。过去我一直设法让我的设置正常工作(虽然不使用 SPN),但有时需要比其他人更长的时间才能找到最后一个神奇的设置以使其全部正常工作:) Google for DelegConfig 这是我的另一个工具过去用过。祝你好运!
  • Rhys 在本地我的用户 AuthType 是 Kerberous,但是在 IIS 服务器上,当我显示 WindowsIdentity.GetCurrent().AuthenticationType 时它会出现 NTLM
  • 哪个版本的 IIS?

标签: asp.net sql-server iis kerberos


【解决方案1】:

您可能需要检查很多事情,您是否在 SQL Box 上设置了 SPN,这些可以通过以下命令添加:

setspn -a "<SQL_SERVER_Server_Name>:1433" "<SQL_SERVER_Service_Account>"

您可能需要同时添加 FQDN 和短名称。完成后,您将需要重新启动 SQL Server,而不仅仅是服务。

如果这不起作用,您可以运行以下命令吗:

setspn -l "<AppPool Account Name>" 

setspn -l "<SQL Server Account Name>" 

【讨论】:

  • 使用 SPN 更安全,但对于非 Kerberos 专家来说,会增加另一层复杂性。我过去曾使用“Trust for any...”来绕过配置 SPN 的需要。
  • @RhysJones 我部分同意你的观点,但这取决于组织的安全政策。
  • 专业提示:添加 SPN 时,setspn 使用 -s 而不是 -a。你会阻止自己以这种方式添加副本!
  • 我添加了一些我认为是正确的 SPN,但它没有工作,所以我尝试使用 fiddler 来查看问题是什么,并且在 fiddler 运行它的同时它工作正常并且什么时候我关闭提琴手它停止工作。
  • 能否用 spn 详细信息更新问题中的信息?
猜你喜欢
  • 1970-01-01
  • 2021-01-22
  • 2019-11-01
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多