如何解决在Kerberos双跃点的问题?(How can I fix the Kerberos do

2019-07-20 02:00发布

我有一些麻烦,从Web应用程序内调用Web服务,我希望有人在这里也许能提供帮助。 从我可以告诉,这似乎有事情做与Kerberos 双跃点问题 。 但是,如果是这样,我不知道该怎么做真正解决问题。 为了使事情变得更难,我没有适当的权限来修改Active Directory帐户,所以我需要知道要问什么要求更改时。 在我的情况,我需要通过从Web应用程序的凭据(集成Windows身份验证)到后端的Web服务,使Web服务的正确的用户上下文中运行。

这里是我的确切问题:

这工作

这不起作用

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

我已经试过

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

有没有人有什么我也许可以为了解决这个问题做任何想法?

Answer 1:

中间服务器必须被信任作为委派。 否则,没有证书的人将被委派和中间服务器无法模拟原始客户端。



Answer 2:

更多的往往不是其原因在于服务器1未通过委托令牌到服务器2.因此,当服务器2尝试使用身份验证票去其他(可能是一个SQL服务器)的地方失败。

你应该为WCF调用模拟级别

ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation

http://msdn.microsoft.com/en-us/library/system.servicemodel.security.windowsclientcredential.allowedimpersonationlevel.aspx



文章来源: How can I fix the Kerberos double-hop issue?