如何修复Kerberos双跳问题?

Ste*_*atz 31 asp.net impersonation wcf kerberos

我在Web应用程序中调用Web服务时遇到了一些麻烦,我希望有人能够提供帮助.据我所知,这似乎与Kerberos 双跳问题有关.但是,如果是,我不知道该怎么做才能真正解决问题.为了使事情更难,我没有适当的权限来更改Active Directory帐户,因此我需要知道在请求更改时要求的内容.在我的情况下,我需要将凭据(集成Windows身份验证)从Web应用程序传递到后端Web服务,以便Web服务在适当的用户上下文中运行.

这是我的确切问题:

这有效

工作方案

这不起作用

非工作场景

只有工作方案和非工作方案之间的区别是,工作方案正在运行在本地主机上的应用程序(无论是开发人员的电脑或有问题的服务器上)和非工作实例另一台机器上运行.两种方案之间的代码完全相同.

我试过的

  1. 将SPN添加到为每个服务器运行应用程序池的域帐户 setspn -a http/server1 DOMAIN\account
  2. 不同的冒充方法
  3. 删除模拟代码using(...)并将Web服务调用作为应用程序池帐户执行.这按预期工作.

有没有人知道我可以做些什么来解决这个问题?

Mic*_*l-O 14

必须信任中间服务器才能进行委派.否则,将不委托凭证,并且中间服务器无法模拟原始客户端.

  • 昨天我找到了*的确切*.您的建议有助于解决将凭据委托给另一台服务器的问题.为了解决NLB问题,在IIS> 7中,我不得不在应用程序的配置中添加"useAppPoolCredentials = true",以使所有内容按预期工作.没有该配置元素,所有身份验证都被破坏. (5认同)