加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在IIS 7 w/Windows Server 2008上使用委派设置Kerberos身份验证

发布时间:2020-12-13 20:45:09 所属栏目:Windows 来源:网络整理
导读:情况: 我在我的Web服务器上部署了一个.NET asmx Web服务.此服务在另一台服务器(我们的SharePoint服务器,如果相关)上调用服务.我想通过使用客户端的凭据模拟/委派从我的Web服务调用SharePoint服务. 问题: 当我调用MY Web Service并调用SharePoint时,我从Sha
情况:

我在我的Web服务器上部署了一个.NET asmx Web服务.此服务在另一台服务器(我们的SharePoint服务器,如果相关)上调用服务.我想通过使用客户端的凭据模拟/委派从我的Web服务调用SharePoint服务.

问题:

当我调用MY Web Service并调用SharePoint时,我从SharePoint服务获得401响应.

建立:

>我的Web服务器正在运行IIS 7.应用程序池在“网络服务”下运行
>在我的Windows Server 2003域控制器上,Web服务器已启用“Trusted for Delegation(仅限Kerberos)”.
>在ISS中,我的应用程序启用了匿名身份验证,启用了模拟,并启用了所有三个提供程序的Windows身份验证(协商:Kerberos,Negotiate和NTLM)
> SharePoint服务器设置为启用匿名,启用模拟并启用Windows身份验证,仅启用提供程序NTLM.

我可以在SharePoint日志上看到,当我在Visual Studio中本地运行时,用户名正在通过(并且服务正常工作)但是当我在Web服务器上运行时,没有用户名在日志文件上,我收到401错误

我设置错误使Kerberos委派工作的原因是什么?

想法?谢谢!

平台:

使用IIS7这是我在BOTH服务器上所做的.我们希望Kerberos身份验证“跳转”到的第一个服务器和第二个服务器.

步骤1:

对于其中包含您要调用的服务的IIS站点(在每台服务器上)进入IIS管理器,单击“连接”下左侧的站点,然后打开IIS下的“身份验证”部分.将“ASP.NET模拟”设置为“已启用”,将“Windows身份验证”设置为“已启用”.“身份验证”(Ananymous,Forms等)下的所有其他选项应设置为“已禁用”.

在“Windows身份验证”下,右键单击并选择“提供程序”.将唯一的提供者设置为“Negotiate:Kerberos”(这会强制Kerberos.如果您愿意,在您获得Kerberos工作后,您可以同时使用“Negotiate”和“NTLM”提供程序并删除“Negotiate:Kerberos”,以便客户端无法Kerberos可以连接.注意:我目前将我的设置为“Negotiate”和“NTLM”,它似乎工作)

在“Windows身份验证”下,右键单击并选择“高级设置”.取消选中“启用内核模式”框. (我的扩展保护选项已设置为关闭,未尝试其他任何操作)

第2步:

对于每台服务器,您必须设置SPN. SPN将是以下(A或B):

A:

如果您的应用程序池在DOMAIN ACCOUNT的IDENTITIY下运行,请将以下SPN添加到域控制器上的THAT DOMAIN ACCOUNT

http/COMPUTER_NETBIOS_NAME 
http/COMPUTER_NETBIOS_NAME.FULLY_QUALIFIED_DOMAIN_NAME 
http://COMPUTER_NETBIOS_NAME.FULLY_QUALIFIED_DOMAIN_NAME

(如果您没有在默认端口上运行,还要添加附加端口名称的附加3个条目:http / COMPUTER_NETBIOS_NAME:PORT等)

B:

如果您的应用程序池在IDENTITY“NetworkService”下运行,则添加与上面相同的SPN,除了将“http”替换为“HOST”,然后将其添加到域控制器上的COMPUTER_NETBIOS_NAME.

我仍在努力在生产中实现这一点,但这在我的测试环境中对我有用.随着我发现更多信息,我会随时更新.

注意:

如果您在连接时直接在URL中使用COMPUTER_NETBIOS_NAME,则此方法有效.如果您直接使用别名(www.mysite.mydomain.com)或IP地址,则无效.我相信,虽然我还没有对其进行全面测试,但您必须完成上述步骤,但在添加SPN时,请使用别名或IP地址替换COMPUTER_NETBIOS_NAME. (或者用netbios和别名/ ip添加它,不是很确定)

此外,如果您在打开“ASP.NET模拟”后收到有关集成无效的设置的错误,则可能需要添加

<validation validateIntegratedModeConfiguration="false" />

到system.webServer部分的web.config

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读