高级摘要式身份验证

在高级摘要式身份验证中,将用户凭据作为 MD5 哈希存储在域控制器中。因为将凭据作为 MD5 哈希存储在 Active Directory 中,所以访问域控制器的用户根本无法发现用户密码,甚至域管理员也不能发现该密码。在 Web 分布式创作和版本控制 (WebDAV) 目录中可以使用高级摘要式身份验证。在 IIS 6.0 中,高级摘要式身份验证优于摘要式身份验证,但仍然可以使用摘要式身份验证。

不需要安装额外的客户端软件;但正如万维网联合会网站中的 RFC 2617 规范所定义的一样,高级摘要式身份验证依赖于 HTTP 1.1 协议。因为高级摘要式身份验证依赖于 HTTP 1.1 协议,所以并非所有的浏览器均支持这种验证。如果与 HTTP 1.1 不兼容的浏览器从使用高级摘要式身份验证的服务器请求文件,则该服务器将要求客户端提供高级摘要式身份验证凭据。与 HTTP 1.1 不兼容的客户端拒绝该请求,因为客户端不支持高级摘要式身份验证。

高级摘要式身份验证的要求

在运行 IIS 的服务器上启用高级摘要式身份验证之前,必须满足以下最低要求。只有域管理员才能够验证是否达到域控制器要求。如果不知道域控制器是否达到以下要求,请与域管理员联系。

客户端验证过程

以下步骤概述了如何使用高级摘要式身份验证对客户端进行身份验证:

摘要式身份验证客户端验证。

  1. 客户端从运行 IIS 的服务器请求文件。
  2. 运行 IIS 的服务器拒绝初始请求,并给客户端发送以下信息:
  3. 运行 IIS 的服务器向客户端 (Internet Explorer) 报告使用的是摘要式身份验证而不是高级摘要式身份验证,这是因为对于摘要式身份验证和高级摘要式身份验证而言,运行 IIS 的服务器和客户端之间使用相同的摘要式身份验证算法。
  4. Internet Explorer 提示用户输入凭据(用户名和密码)。然后,Internet Explorer 合并这些凭据和领域名称以创建一个 MD5 哈希,并向运行 IIS 的服务器重新提交文件请求,此时还在 HTTP 请求的标题中发送 MD5 哈希。
  5. 运行 IIS 的服务器收到客户端的哈希,并将其发送到域控制器以进行验证。
  6. 域控制器将客户端的哈希与 Active Directory 中存储的副本进行比较。如果哈希值匹配,则域控制器通知运行 IIS 的服务器该客户端已经过验证。
  7. 运行 IIS 的服务器将请求的文件发送到该客户端。

配置高级摘要式身份验证

要在运行 IIS 的服务器上启用高级摘要式身份验证,您需要完成以下三个任务:

如果执行了前两个步骤,但没有配置 UseDigestSSP 配置数据库项,则您将使用摘要式身份验证,而不能使用高级摘要式身份验证。

为 Windows 域服务器启用高级摘要式身份验证

确认已启用高级摘要式身份验证,或者启用该验证。

要点 要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"

为 Windows 域服务器启用高级摘要式身份验证

  1. 在 IIS 管理器中,右键单击“网站”文件夹、网站、虚拟目录或文件,然后单击“属性”。

    注意 注意 所有网站均能继承在网站文件夹级别设定的配置设置。

  2. 单击“目录安全性”或“文件安全性”选项卡,具体情况取决于所配置的安全设置级别。
  3. 在“身份验证和访问控制”部分中,单击“编辑”。
  4. 在“用户访问需经过身份验证”部分中,选择“Windows 域服务器的摘要式身份验证”复选框。
  5. 在“领域”框中,键入领域的名称,或者单击“选择”以浏览域。如果为所配置的站点、虚拟目录或文件夹启用了基本身份验证,则还可以使用“默认域”框。但是,对于高级摘要式身份验证而言,只有“领域”是有效的。
  6. 单击“确定”两次。

配置领域名称

除了使用 IIS 管理器配置领域名称外,还可以使用脚本在任何配置数据库级别配置领域名称(如下表所示)。如果没有特别配置子项,则它将从上一配置级别继承其配置。

配置数据库级别 描述
W3SVC W3SVC 级别(也称为 IISWebService 级别)是可以配置摘要式身份验证的配置数据库中的最高级别。没有具体配置设置的较低级别可以继承在此级别设置的配置。
W3SVC/n W3SVC/n 级别(也称为 IISWebService 级别)是特定的网站,其中 n 是该站点的编号。站点从 1 开始编号。默认网站为 1。
W3SVC/n/root W3SVC/n/Root 级别(称为 IISWebVirtualDir 级别)是网站的起点,其中 n 是该站点的编号。
W3SVC/n/root/vdir W3SVC/n/ROOT/WebVirtualDir 级别(称为 IISWebVirtualDir 级别)是网站中的虚拟目录,其中 n 是该站点的编号。
W3SVC/n/root/vdir/webdir W3SVC/n/Root/WebVirtualDir/WebDir 级别(也称为 IISWebDirectory 级别)是网站内虚拟目录中的物理目录,其中 n 是该站点的编号。
W3SVC/n/root/vdir/file W3SVC/n/root/vdir/file 级别是 W3SVC/n/ROOT/WebVirtualDir 级别中的单独文件,其中 n 是该站点的编号。
W3SVC/n/root/vdir/webdir/file W3SVC/n/root/vdir/file 级别是 W3SVC/n/Root/WebVirtualDir/WebDir 级别中的单独文件,其中 n 是该站点的编号。

可以在运行 IIS 的服务器上配置一个或多个领域名称。可能需要配置多个领域名称,例如,给 domain1 的成员授予访问 sales 虚拟目录的权限,给 domain2 的成员授予访问 engineering 虚拟目录的权限。它尤其适用于 domain1 和 domain2 没有受信关系的情形。如果配置多个领域名称,则必须在不同的配置数据库级别对它们进行配置。有关域的详细信息,请参阅 Windows Server 2003 家族帮助。

如果没有给配置数据库中的某个子项配置领域名称,则该子项从配置了领域名称的上一个父项继承领域名称。如果没有配置领域名称,则 IIS 发送其自己的计算机名称作为领域名称。如果 IIS 发送其自己的名称作为领域名称,并且 IIS 没有在具有 Active Directory 的 Windows Server 2003 家族域控制器上运行,摘要式身份验证就会失败。由于安全风险和性能方面的原因,建议不要在域控制器上运行 IIS(尽管也可以在上面运行)。

设置 UseDigestSSP 配置数据库属性

高级摘要式身份验证使用称为 UseDigestSSP 的配置数据库项。此配置数据库项是摘要式和高级摘要式安全支持提供程序接口 (SSPI) 代码之间的开关。如果已设置了该项,则有效的属性值只能是 1 (TRUE)、0 (FALSE) 或空。如果将该属性设置为 TRUE,则使用高级摘要式身份验证的新 SSPI 代码。在所有其他情况(FALSE、空或者没有设置)下,IIS 使用摘要式身份验证代码。

可以在配置数据库的 W3SVC 级别配置 UseDigestSSP 配置数据库属性。子项从其上面的级别继承其配置。

相关主题

© 1997-2003 Microsoft Corporation。保留所有权利