我有一个系统,我使用简单委派的Kerberos将AD用户的凭据从网站转发到使用集成Windows身份验证的下游HTTP REST服务。所有服务器都是Windows Server 2012 R2。
这很有效。
当我开始对运行后端HTTP服务的相同服务器进行Powershell远程处理时出现问题。 Enter-PSSession
在目标计算机上为WSMan服务发出Kerberos身份验证请求。 AD看到此请求,并使用我的自定义HTTP服务运行的标识加密请求的票证,WSMan服务显然无法使用,并且远程处理失败。
我知道可以强制IE执行特定于端口的SPN请求(通过KB908209),但我无法让第二跳(即IIS代理请求)执行端口 - 具体要求。我也没有能够使用powershell为WSMan在5985上发出特定于端口的请求。
使事情更具体:
http://ServerB:15200
发送委托请求。如果我将我的SPN设置为HTTP / ServerB:15200,则IIS中的简单委派会失败,但PowerShell远程处理会起作用。如果我将我的SPN设置为HTTP / ServerB,则简单委派可以正常工作,但PowerShell远程处理失败。如果我将我的SPN设置为HTTP / ServerB:5985,则无效。
我对这一点感到非常难过 - 似乎代表团和每个端口的SPN并不能很好地协同工作?
答案 0 :(得分:1)
您可以通过为ServerB设置别名,将HTTP / ServerBAlias SPN提供给IIS帐户,将HTTP / ServerB提供给PS帐户,然后使ServerA将其请求发送到ServerBAlias来解决此问题。或者在一个SPN中使用FQDN(例如ServerB.domain.local),在另一个SPN中使用NETBIOS(例如ServerB)。
或者,您可以查看how this person hosted WinRM in IIS with a custom account。
答案 1 :(得分:0)
您是否将HTTP / ServerA的ms-DS-Allowed-to-Delegate-to属性设置为HTTP / ServerB和HTTP / ServerB列表:15200?