可以要求用户在访问服务器上的信息之前,提供有效的 Microsoft Windows 用户帐户名称和密码,这种标识过程称为“身份验证”。与 IIS 中的其他许多功能一样,身份验证也可以分网站、目录或文件级进行设置。IIS 提供了下列身份验证方法,用以控制对服务器内容的访问:
有关设置身份验证的信息,请参阅启用和配置身份验证。
| 方法 | 安全级别 | 密码发送方式 | 是否可跨代理服务器和防火墙使用 | 客户端要求 |
| 匿名 | 无 | N/A | 是 | 任意浏览器 |
| 基本 | 低 | Base64 编码的明文 | 是;但是,以明文方式跨代理服务器或防火墙发送密码具有安全风险,因为 Base64 编码的明文是未加密的 | 大多数浏览器 |
| 摘要式 | 中 | 散列 | 是 | Internet Explorer 5.0 或更高版本 |
| 高级摘要式 | 中 | 散列 | 是 | Internet Explorer 5.0 或更高版本 |
| 集成 Windows | 高 | 使用 NTLM 时为散列, 使用 Kerberos 时为 Kerberos 票证 |
否,除非通过 PPTP 连接使用 | 对于 NTLM,要求 Internet Explorer 2.0 或更高版本;对于 Kerberos,要求带有 Internet Explorer 5.0 或更高版本的 Windows 2000 或更高版本 |
| 证书 | 高 | N/A | 是,使用 SSL 连接 | Internet Explorer 及 Netscape |
| 匿名 FTP | 无 | N/A | 是 | 任意 FTP 客户端 |
| 基本 FTP | 低 | 明文 | 是 | 任意 FTP 客户端 |
匿名身份验证使用户无需输入用户名或密码即可访问网站或 FTP 站点上的公共部分。当用户试图连接到公共网站或 FTP 站点时,Web 服务器将此连接的用户指定为 Windows 用户帐户 IUSR_computername,其中 computername 是运行 IIS 的服务器的名称。默认情况下,IUSR_computername 帐户包含在 Windows 用户组 Guests 中。此组具有一定的安全限制(由 NTFS 权限硬性设置),指定了公共用户的访问级别以及可以访问的内容类型。
如果服务器上有多个站点,或站点上的不同区域要求不同的访问权限,则可以创建多个匿名帐户,分别用于网站或 FTP 站点、目录或文件。通过为这些帐户授予不同的访问权限,或将这些帐户分配到不同的 Windows 用户组,即授予了用户对公共 Web 和 FTP 内容的不同区域进行匿名访问的权限。
下面解释 IIS 如何使用 IUSR_computername 帐户:
要点 如果启用了匿名身份验证,则即使启用了其他身份验证方法,IIS 也总是首先尝试使用匿名身份验证对用户进行身份验证。
无论是在 Web 服务器服务级,还是对于单独的虚拟目录和文件,都可以通过 Internet 信息服务管理单元更改匿名身份验证所使用的帐户。匿名帐户必须具有“本地登录”用户权限。如果帐户没有“本地登录”权限,IIS 将无法为任何匿名请求提供服务。安装 IIS 时,特别为 IUSR_computername 帐户授予了“本地登录”权限。默认情况下,域控制器上的 IUSR_computername 帐户不会添加到 Guest 组中。要允许匿名登录,必须将 IUSR_computername 的权限更改为“本地登录”。
注意 可以使用 Active Directory 服务接口 (ADSI),以编程方式更改对“本地登录”权限的要求。有关信息,请参阅“Active Server Pages 指南”中的 LogonMethod。
还可以使用 Microsoft Management Console (MMC) 中的“组策略管理器”管理单元更改 Windows 中 IUSR_computername 帐户的安全权限。但是,如果匿名用户帐户不具有对特定文件或资源的访问权限,Web 服务器将拒绝为此资源建立匿名连接。有关详细信息,请参阅设置 Web 和 FTP 权限。
要点 如果更改 IUSR_computername 帐户,将影响 Web 服务器应答的所有匿名 HTTP 请求。修改此账户时须小心谨慎。
基本身份验证方法是一种被广泛使用的行业标准方法,用于收集用户名和密码信息。
要点 Base64 编码是未加密的。如果 Base64 编码的密码通过网络时被网络探测器截获,则非法用户可以很容易地将密码解码并重新使用。
有关设置基本身份验证的信息,请参阅启用和配置身份验证。
基本身份验证的优点在于,它是 HTTP 规范的一部分,而且大多数浏览器都支持这种方式。缺点是使用基本身份验证的 Web 浏览器以未加密的形式传输密码。某些人通过监视网络通信,使用某些通用工具,很容易截获和破解这些密码。因此,建议一般不要使用基本身份验证,除非确信用户和 Web 服务器之间的连接是安全的,例如使用专线连接或安全套接字层 (SSL) 连接。详细信息,请参阅加密。
注意 集成 Windows 身份验证优先于基本身份验证。在提示用户输入用户名和密码之前,浏览器将选择集成 Windows 身份验证方法,并尝试使用当前的 Windows 登录信息。目前,只有 Internet Explorer 2.0 及更高版本支持集成 Windows 身份验证。
摘要式身份验证不需要安装其他客户端软件,但它依赖于 HTTP 1.1 协议,如 World Wide Web Consortium(WWW 协会)网站 RFC 2617 规范中的定义所述。由于摘要式身份验证要求 HTTP 1.1 兼容性,所以并非所有浏览器都支持这种方法。如果非 HTTP 1.1 兼容的浏览器从使用摘要式身份验证的服务器请求文件,服务器将请求客户端提供摘要式凭据。非 HTTP 1.1 兼容的客户端将拒绝此请求,因为此客户端不支持摘要式身份验证。
要点 DC 必须将提交请求的用户密码的明文副本存储在 Active Directory 中,才能完成摘要式身份验证过程。而且由于 DC 将密码的明文副本存储在 Active Directory 中,所以必须保护 Active Directory 的安全,使其免受物理破坏和网络攻击。
高级摘要式身份验证不需要安装其他客户端软件,但是它依赖于 HTTP 1.1 协议,如 World Wide Web Consortium(WWW 协会)网站 RFC 2617 规范中的定义所述。因为高级摘要式身份验证依赖于 HTTP 1.1 协议,因此并非所有浏览器都支持这种方法。如果非 HTTP 1.1 兼容的浏览器从使用摘要式身份验证的服务器请求文件,服务器将请求客户端提供摘要式凭据。非 HTTP 1.1 兼容的客户端将拒绝此请求,因为此类客户端不支持摘要式身份验证。
要点 只有 DC 和 IIS 服务器运行的都是 Windows XP,才可以启用高级摘要式身份验证。如果 DC 或 IIS 服务器之一运行的是 Windows 2000 或更低版本,IIS 将默认使用摘要式身份验证,并且不会对此操作发出警告。

注意 在步骤 2 中,IIS 服务器向客户端 (Internet Explorer) 报告“正在使用摘要式身份验证”,而不是“正在使用高级摘要式身份验证”,这是因为对于摘要式身份验证和高级摘要式身份验证而言,IIS 服务器和客户端之间使用相同的摘要式身份验证算法。
集成 Windows 身份验证(以前称为 NTLM 或 Windows NT 质询/响应身份验证)是一种安全的身份验证形式,因为用户名和密码在通过网络发送之前就进行了散列处理。启用集成 Windows 身份验证时,用户浏览器通过与 Web 服务器进行加密信息交换(包括散列算法)来证明自己知晓密码。
集成 Windows 身份验证使用 Kerberos v5 身份验证和 NTLM 身份验证。如果 Windows 2000 或更高版本的域控制器上安装了 Active Directory 服务,而且用户浏览器支持 Kerberos v5 身份验证协议,则使用 Kerberos v5 身份验证;否则,将使用 NTLM 身份验证。
Kerberos v5 身份验证协议是 Windows 2000 分布式服务架构的一个特性。为了成功进行 Kerberos v5 身份验证,客户端和服务器都必须与密钥发行中心 (KDC) 建立可信的连接,而且与目录服务兼容。有关 Kerberos 和 NTLM 的详细信息,请参阅 Windows XP 联机文档。
注意 如有必要,可将 Internet Explorer 4.0 及其更高版本配置为先提示输入用户信息。详细信息,请参阅 Internet Explorer 文档。
集成 Windows 身份验证虽然非常安全,但存在下列局限性:
因此,集成 Windows 身份验证最适用于 Intranet 环境,其中的用户和 Web 服务器计算机都在同一个域中,而且管理员可以确保每个用户都使用 Microsoft Internet Explorer 2.0 或更高版本。
还可以使用 Web 服务器的安全套接字层 (SSL) 安全功能进行两种类型的身份验证。可以使用“服务器证书”,使用户在传输个人信息(如信用卡号码)之前对网站进行身份验证。同样,可以使用“客户证书”对请求网站上信息的用户进行身份验证。通过检查登录过程中用户 Web 浏览器提交的加密数字标识的内容,可进行 SSL 身份验证。(用户从一个互相信任的第三方机构获取客户证书。)服务器证书通常包含有关用户所在公司以及证书颁发机构的信息。客户证书通常包含有关用户和证书颁发机构的标识信息。详细信息,请参阅关于证书。
因为访问文件等资源需要 Windows 用户帐户,所以可以将客户证书关联或“映射”到 Web 服务器上的 Windows 用户帐户。创建并启用证书映射后,每次用户使用客户证书登录时,Web 服务器都自动将此用户与相应的 Windows 用户帐户关联。这样,可以自动对使用客户证书登录的用户进行身份验证,而不必请求使用基本、摘要式或集成 Windows 等身份验证方法。可以将一个客户证书映射到一个 Windows 用户帐户,也可以将多个客户证书映射到一个帐户。例如,如果服务器上有几个不同的部门或公司,而且每个部门或公司都有自己的网站,则可以使用多对一映射将每个部门或公司的所有客户证书映射到它们各自的网站。这样,每个站点仅允许自己的客户访问。详细信息,请参阅将客户证书映射到用户帐户。
可以配置 FTP 服务器以允许匿名访问 FTP 资源。如果为某一资源选择了匿名 FTP 身份验证,那么对此资源的所有请求都不会提示用户输入用户名或密码。这是可以做到的,因为 IIS 自动创建一个称为 IUSR_computername 的 Windows 用户帐户(其中 computername 是运行 IIS 的服务器的名称),这一点与基于 Web 的匿名身份验证非常相似。如果启用了匿名 FTP 身份验证,则即使启用了基本 FTP 身份验证,IIS 也将始终首先尝试使用匿名 FTP 身份验证进行身份验证。详细信息,请参阅匿名身份验证。
要通过基本 FTP 身份验证与 Web 服务器建立 FTP 连接,用户必须使用与一个有效的 Windows 用户帐户对应的用户名和密码登录。如果 FTP 服务器无法验证用户身份,服务器将返回错误消息。FTP 身份验证不太安全,因为通过网络传输的用户名及密码是未加密的。详细信息,请参阅关于访问控制。