Kerberos 身份验证,并委派问题进行故障排除

IIS 开发人员支持语音列

Kerberos 身份验证,并委派问题进行故障排除

若要自定义此列与您的需求,我们希望邀请您提交您感兴趣的主题和您感兴趣的在将来解决知识文库文章和 Support Voice 专栏您想要查看的问题的主题的想法。您可以提交您的想法和反馈使用已对它提出的形式。还有一个链接到窗体中此列的底部。

我的名字是马丁史密斯,我是与 Microsoft 的 Microsoft Internet Information Services (IIS) 解决关键问题组。我已经与微软 9 年中,已与 IIS 团队所有的九年。我已在编译中多个位置的信息
http://msdn.microsoft.com
有关 Kerberos 和如何委派问题进行疑难解答的http://www.microsoft.com

IIS 6.0

下面的白皮书介绍了如何设置 Microsoft Windows Server 2003 中的委派。该白皮书含有特定信息的网络负载平衡 (NLB),但包括优秀详细地介绍如何设置委派方案无需使用 NLB。若要查看这份白皮书,请访问下面的 Microsoft 网站︰

http://technet.microsoft.com/en-us/library/cc757299.aspx注意:尤其是当您使用 NLB,则使用 HTTP 服务主体名称 (Spn)。

另一个流行的 Kerberos 问题最近已允许多个应用程序池使用相同 DNS 名称的需要。遗憾的是,当您使用 Kerberos 委派凭据,无法将同一个服务主体名称 (SPN) 绑定到不同的应用程序池。不能因为 Kerberos 的设计来执行此操作。Kerberos 协议需要多个共享的机密协议才能正常工作。通过对不同的应用程序池使用同一个 SPN,我们消除这些共享机密之一。Active Directory 目录服务不支持这种配置在 Kerberos 协议的安全问题。

以这种方式配置 Spn,则会导致 Kerberos 身份验证失败。此问题可能的解决方法就是使用协议转换。使用 NTLM 身份验证协议会处理客户端和服务器运行 IIS 之间的初始身份验证。Kerberos 将处理 IIS 和后端资源服务器之间的身份验证。

Microsoft Internet Explorer 6 或更高版本

客户端浏览器可能会遇到问题,如从运行 IIS 的服务器接收重复的登录提示输入凭据或"401 拒绝访问"错误消息。我们已发现可能有助于解决这些问题的以下两个问题︰

  • 确认选中了启用集成 Windows 身份验证中浏览器的属性。的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

    299838无法协商之后升级到 Internet Explorer 6 的 Kerberos 身份验证

  • 如果在添加/删除程序中启用了 Internet Explorer 增强的安全配置,您必须添加使用委派到一个站点
    受信任的站点列表。的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

    815141 Internet Explorer 增强的安全配置更改浏览体验

IIS 5.0 和 IIS 6.0

从 IIS 4.0 升级到 IIS 5.0 或 IIS 6.0 之后,委派可能无法正常运行,或可能是其他人或应用程序已修改配置数据库属性 NTAuthenticationProviders。
有关如何解决此问题的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

248350从 IIS 4.0 升级到 IIS 5.0 后 Kerberos 身份验证失败

设置 SPN 时,可能会出现故障的特定区域

确定服务器名

确定是否要连接到 Web 站点通过使用实际的服务器的 NetBIOS 名称或使用别名,如 DNS 名称 (例如,www.microsoft.com)。如果要通过使用名称不是实际的服务器名称来访问 Web 服务器,新服务主体名称 (SPN) 必须注册使用 Windows 2000 服务器资源工具包中的 Setspn 工具中。因为 Active Directory 目录服务不知道此服务名称,票证授予服务 (TGS) 不授予用户票证以验证用户身份。这种现象会强制客户端使用下一个可用的身份验证方法,即 NTLM 进行重新协商。如果 Web 服务器响应 www.microsoft.com DNS 名称,但名为 webserver1.development.microsoft.com 的服务器,您必须正在运行 IIS 的服务器上在 Active Directory 中注册 www.microsoft.com。要做到这一点,必须下载 Setspn 工具并将其安装在运行 IIS 的服务器上。


如果您使用的 Windows Server 2003 和 IIS 6,Microsoft Windows Server 2003 的 Setspn 工具可从以下位置︰

http://support.microsoft.com/kb/970536若要确定是否使用了真实名称进行连接,请尝试通过使用实际的服务器名称而不 DNS 名称连接到服务器。如果您无法连接到服务器,请参阅"验证计算机时委派"部分。

如果您可以连接到服务器,请按照下列步骤设置 SPN 用于连接到服务器的 DNS 名称︰

  1. 安装 Setspn 工具。

  2. 在运行 IIS 的服务器,打开命令提示符下,然后打开 C:\Program Files\Resource 工具包文件夹。

  3. 运行下面的命令以将此新的 SPN (www.microsoft.com) 添加到 Active Directory 的服务器︰

    Setspn-HTTP/www.microsoft.com webserver1注意:在此命令中, webserver1表示服务器的 NetBIOS 名称。

您收到类似于下面的输出︰
Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=comHTTP/www.microsoft.com
Updated object

若要查看的 Spn 列表以检查这个新值的服务器上,请在运行 IIS 的服务器上键入以下命令︰

Setspn-L webservername请注意,您不必注册所有服务。许多服务类型,如 HTTP、 W3SVC、 WWW、 RPC,CIFS (文件访问)、 WINS 和不间断电源供应 (UPS) 将映射到名为主机的默认服务类型。例如,如果您的客户端软件使用 SPN HTTP/webserver1.microsoft.com 在 webserver1.microsoft.com 服务器上,创建与 Web 服务器的 HTTP 连接,但未在服务器上注册该 SPN 的 Windows 2000 域控制器会自动映射连接到 HOST/webserver1.microsoft.com。这种映射仅适用于 Web 服务正在本地系统帐户下运行。

验证该计算机信任其作为委派

如果此运行 IIS 的服务器是域的成员,但不是域控制器,计算机必须信任以便用于委任的 Kerberos 才能正常工作。若要执行此操作,请执行以下步骤:

  1. 在域控制器上,单击开始,指向设置,然后单击控制面板

  2. 在控制面板中打开管理工具

  3. 双击Active Directory 用户和计算机

  4. 在您的域,单击计算机

  5. 在列表中,找到运行 IIS 的服务器,右键单击服务器名称,然后单击属性

  6. 单击常规选项卡,单击以选择
    信任委派复选框,然后再单击
    OK.

请注意,是否多个 Web 站点都达到通过相同的 URL,但在不同的端口上,委派不起作用。若要使此项工作,必须使用不同的主机名和其他 Spn。当 Internet Explorer 请求或者 http://www。mywebsite.com 或 http://www。mywebsite.com:81,Internet Explorer 的 SPN HTTP/www.mywebsite.com 要求将票证。Internet Explorer 不添加端口或 vdir 到 SPN 请求。这种行为是相同的 http://www。mywebsite.com/app1 或 http://www。mywebsite.com/app2。在这种情况下,Internet Explorer 将请求一个 SPN http://www 票据。mywebsite.com 从密钥分发中心 (KDC)。可以只为一个标识声明每个 SPN。因此,如果您尝试声明每个标识此 SPN 还会收到 KRB_DUPLICATE_SPN 错误消息。

委派和 Microsoft ASP.NET

有关委派凭据时使用 ASP.NET 应用程序配置的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

810572如何配置 ASP.NET 应用程序,用于委派方案

模拟和委派是服务器的名义运行的客户端进行身份验证的两种方法。决定哪些要使用这些方法及方法的实现可能会导致一些混乱。必须检查这两种方法之间的差异,并检查这些方法,您可能希望为您的应用程序使用。我的建议是阅读更详细的信息下面的白皮书︰

http://msdn2.microsoft.com/en-us/library/ms998351.aspx

参考资料

http://technet.microsoft.com/en-us/library/cc757299.aspx

http://msdn.microsoft.com/msdnmag/issues/05/09/SecurityBriefs/default.aspx

305971将提示 Windows 2000 Server 域用户凭据

262177如何启用 Kerberos 事件日志记录

326985如何在 IIS 中与 Kerberos 相关的问题进行故障排除

842861 TechNet 技术支持网络广播︰ 安全 Web 应用程序和 Microsoft SQL Server 疑难解答 Kerberos 身份验证

始终,尽情地提交有关主题的意见要在将来解决列,或者在知识库中使用
窗体已对其询问

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对翻译质量的满意程度如何?

哪些因素影响了你的体验?

是否还有其他反馈?(可选)

谢谢您的反馈意见!

×