用于共享点的ASP.NET Web应用程序的Kerberos双跃点问题

时间:2016-04-08 13:50:20

标签: asp.net web-services iis-7.5 sharepoint-2013 kerberos-delegation

我需要你的Kerberos双跳问题的帮助......在网上阅读了很多关于这个主题的帖子后,我仍然无法理解我的设置有什么问题。这是我使用的设置:

  • 客户端PC
  • 托管简单ASMX Web服务的Web服务器
  • 托管SharePoint 2013的Web服务器

see diagram

所有服务器都受信任以进行委派,每个人都在同一个域(没有林),并且不使用负载平衡。每个Web服务器都使用IIS 7.5,每个应用程序池都使用域服务帐户进行设置。每个服务帐户都受信任以进行委派。 重要说明:两个Web服务都通过DNS条目(HOST记录)访问:

我还在Web服务器(服务器1)上设置IIS以使用应用程序池凭据“useAppPoolCredentials = True”并将内核保留在其中。

到目前为止,我有以下SPN设置:

  • 服务器1:HOST / Server1; HOST / Server1.domain.com; HTTP / mywebserice; HTTP / mywebservice.domain.com
  • 服务器2:HOST / Server2; HOST / Server2.domain.com
  • 服务1:
  • 服务2:

到目前为止,我已尝试过各种SPN之间的许多排列,但没有运气:(

目前,我可以使用Kerberos连接到Web服务(Server1),但随后将“NT AUTHORITY \ ANONYMOUS LOGON”传递给Sharepoint服务器。

任何人都可以帮我弄清楚什么是正确的设置?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我终于成功了。为此,我使用了DelegConfig网络应用程序(由brian-murphy-booth)available here。它确认我的设置最初是错误的,并帮助我确定需要更改的内容。

以下是我的最终设置 - see diagram

  • Web服务服务器:仅适用于HOTS / Server1的SPN +受信任以进行Kerberos委派
  • Sharepoint服务器:仅限HOST / Server2的SPN +受信任的Kerberos委派
  • 服务帐户1(适用于网络服务应用程序池):为HTTP / mywebservice
  • 添加了SPN
  • 服务帐户2(针对sharepoint应用程序池):为HTTP / sharepoint添加了SPN

在这里你必须要注意几件事:

  1. 如果您使用的是DNS条目,请根据DNS名称注册SPN,而不是IP
  2. 确保您的DNS条目是“主机(A)”类型而非“CNAME”
  3. 类型的记录
  4. 始终根据简单名称(即HTTP / sharepoint)和FQDN(即HTTP / sharepoint.domain.com)注册SPN
  5. 留出一些时间让AD更改复制到所有域控制器(如果适用) - 这是我的垮台!!在变更之后我太快速测试并且它从未奏效......在更改后等待15-20分钟帮助我微调我的设置并确切地了解错误
  6. 确保您没有一式两份的SPN!要检查,请打开命令提示符并运行命令“setspn -x”。它将列出AD中所有重复的SPN。
  7. 我知道有很多关于这个主题的帖子,但是没有一个帖子在一个图表中实际描述了给定配置的理想设置。所以我想我会把这个答案发给我自己的问题;希望它能帮助这个有关Kerberos双跳问题的噩梦。

    非常感谢brian-murphy-booth为他的精彩工具!如果你读到这个,你就是我的救星伴侣!