我在MVC中创建了一个连接到TFS并带来工作项的项目,我根据我的要求显示这些工作项。我的项目在localhost上工作得很好,一旦我将它部署在某个服务器上,我就无法连接到TFS,它只是说" Unauthorized"。 有什么帮助吗?
答案 0 :(得分:1)
您遇到了可怕的双跳身份验证问题。
在AD中,您通过Kerberos令牌进行身份验证。该令牌是您登录的机器的问题,仅在该机器或其直接连接的机器上有效。
因此,您可以使用本地主机令牌对TFS进行身份验证,但只要您有第二跳(local-> webserver-> tfs),您的身份验证就会失败。
这是设计上的安全性。
要解决此问题,您需要使用SetSPN在AD中创建服务主体名称(SPN),以允许您在Web服务器上重用该令牌。
您可以创建仅适用于网络服务器的SPN,但不能在其他地方部署。更好的方法是为您运行WebServer AppPool的服务帐户创建SPN。然后你可以在任何地方运行它。