使用Kerberos进行计算机身份验证时,CredSSP PowerShell会话失败

时间:2012-08-03 17:52:05

标签: powershell kerberos powershell-remoting

我们正在尝试对multi-hop PowerShell remoting使用CredSSP身份验证,并且我们的一个客户端遇到阻碍他们在指定目标服务器的FQDN时使用CredSSP创建PSSession的障碍。服务器和客户端都连接到同一个域,并且没有任何花哨的命名空间。

在调试过程中,我们已经开辟了我们能想到的所有相关安全选项;具体来说:

  • 我们已启用GP设置以允许委派新凭证(标准和'仅限NTLM')和通配符SPN wsman / *
  • 我们已使用* .domain.com
  • 启用了WSMan可信主机设置
  • 我们(当然)在服务器和客户端上启用了WSMan for CredSSP
  • 我们在服务器上设置了LocalAccountTokenFilterPolicy

打开所有这些设置后,这是我们为PSSessions尝试不同的身份验证方法时得到的结果:

  • 使用Kerberos进行委派,使用显式域凭据可以正常工作。
  • 使用Negotiate for delegation with explicit domain credentials可以正常工作。
  • 使用CredSSP进行授权:
    • 使用域凭据连接到服务器的FQDN失败,错误为There are currently no logon servers available to service the logon request
    • 使用域凭据,仅连接到服务器的主机名,失败并出现相同的错误
    • 使用服务器上本地帐户的凭据(因此强制NTLM进行服务器身份验证,我相信),连接到服务器的FQDN,工作正常
    • 使用域凭据,连接到服务器的IP地址(从而强制NTLM进行服务器身份验证),工作正常

因此,简而言之,只要我们使用NTLM进行服务器身份验证,CredSSP就可以运行,并且在我们使用Kerberos时失败,但如果我们使用Kerberos进行委派,Kerberos肯定能正常工作。这怎么可能,我们可以做些什么来使CredSSP + Kerberos工作?

1 个答案:

答案 0 :(得分:0)

我们在微软的一些工程师的帮助下解决了这个问题:客户站点的域控制器是Server 2003,它不支持CredSSP(需要Server 2008或更高版本)。 / p>

也就是说,使用NTLM的CredSSP可以工作,因为NTLM不涉及域控制器 - 它只是在客户端(Windows 7 x64)和服务器(Server 2008 R2 x64)之间。当您将CredSSP与Kerberos一起使用时,您现在涉及域控制器(KDC),它不知道如何处理CredSSP连接,因此它失败。

因此,在客户可以升级他们的域控制器之前,他们将使用本地用户帐户远程使用我们的部署工具,从而将域名从图片中删除。