本文介绍 IIS 为 Microsoft Windows NT 4.0 和 Microsoft Windows 2000 提供的不同身份验证方法。对于本文所讨论的信息的更为完整的描述,请参见 Windows NT 4.0 和 Windows 2000 资源指南。
回到顶端
Windows NT 4.0 可以使用的身份验证方法
匿名 - 不需要登录,允许任何人访问使用此方法保护的数据。服务器使用一个内置帐户(默认情况下为 IUSR_[计算机名])控制文件上的权限。浏览器不使用此类请求发送任何凭据或用户信息。
| ? | 受支持的浏览器:任何 |
| ? | 限制:无 |
| ? | 需要的用户权限:在服务器上定义的“匿名”用户帐户必须具有“在本地登录”权限。 |
| ? | 加密类型:无 |
基本身份验证(明文) - 服务器请求用户登录,并在浏览器中显示一个对话框,使用户可以输入所需的凭据。这些凭据必须与在用户尝试访问的文件上定义的用户凭据相匹配。
| ? | 受支持的浏览器:任何 |
| ? | 限制:不十分安全。密码容易被解码。 |
| ? | 需要的用户权限:用户帐户必须具有“在本地登录”权限。 |
| ? | 加密类型:Base 64 编码(非真正加密) |
Windows NT 质询/响应 - 服务器请求用户登录。如果浏览器支持“Windows NT 质询/响应”,在用户登录时它将自动发送用户的凭据。如果用户所在的域与服务器的域不同,或者如果用户未登录,则会出现一个对话框,请求发送凭据。“Windows NT 质询/响应”使用一种算法基于用户的凭据和用户使用的计算机生成一种哈希。然后将此哈希发送到服务器。浏览器不将用户的密码发送到服务器。
| ? | 受支持的浏览器:Internet Explorer 3.01 版和更高版本。 |
| ? | 限制:要求点对点连接。通常,在出现“401 unauthorized”(401 未经授权)错误信息后将关闭电路;不过,如果正在协商“Windows NT 质询/响应”身份验证顺序(要求多个往返行程),服务器在客户端指示将使用“Windows NT 质询/响应”后的排序期间将保持电路处于打开状态。CERN 代理和某些其他 Internet 设备会阻止这样做。而且,“Windows NT 质询/响应”不支持双跃点模拟(因为传递到 IIS 服务器之后,不能将同一个凭据传递到后端服务器进行身份验证)。
|
| ? | 需要的用户权限:访问服务器的用户帐户必须具有“从网络访问此计算机”权限。 |
| ? | 加密类型:NTLM 哈希算法,该算法也容易被解码。 |
优先级顺序:在浏览器进行某个请求时,它始终认为第一个请求是“匿名”的。因此,它不发送任何凭据。如果服务器不接受“匿名”验证,或者如果在服务器上设置的“匿名”用户帐户对被请求的文件没有权限,则 IIS 服务器将使用“Access Denied”错误信息进行响应,并通过使用以下方案之一发送受支持的身份验证类型列表:
| ? | 如果“Windows NT 质询/响应”验证是唯一受支持的方法(或者“匿名”验证失败),则浏览器必须支持此方法才能与服务器通信。否则,它将无法与服务器协商,并且用户将收到“Access Denied”错误信息。 |
| ? | 如果“基本”验证方法是唯一受支持的方法(或者“匿名”验证失败),则在浏览器中将出现一个对话框以获取凭据,然后将这些凭据传递到服务器。它最多尝试三次发送这些凭据。如果三次都失败,浏览器将无法连接到服务器。 |
| ? | 如果“基本”和“Windows NT 质询/响应”都受支持,浏览器将决定使用哪种方法。如果浏览器支持“Windows NT 质询/响应”,它将使用此方法而且不回退到“基本”方法。如果不支持“Windows NT 质询/响应”,浏览器将使用“基本”方法。 |
注意:
| ? | 在浏览器使用“基本”或 NTLM 身份验证建立了与网站的连接后,在与服务器的其余会话期间,浏览器不会回退到“匿名”验证。如果在身份验证之后尝试连接到标记为“仅匿名”的网页,则会被拒绝。(对于 Netscape,可能是这种情况,也可能不是这种情况)。 |
| ? | 在 Internet Explorer 已使用“基本”或 NTLM 身份验证建立与服务器的连接后,它将在会话期间为每个新请求传递凭据。 |
回到顶端
Windows 2000 可以使用的身份验证方法
匿名 - 不需要登录,允许任何人访问使用此方法保护的数据。服务器使用一个内置帐户(默认情况下为 IUSR_[计算机名])控制文件上的权限。浏览器不使用此类请求发送任何凭据或用户信息。
| ? | 受支持的浏览器:任何 |
| ? | 限制:无 |
| ? | 需要的用户权限:在服务器上定义的“匿名”用户帐户必须具有“在本地登录”权限。 |
| ? | 加密类型:无 |
基本身份验证(明文) - 服务器请求用户登录,并在浏览器中显示一个对话框,使用户可以输入所需的凭据。这些凭据必须与在用户尝试访问的文件上定义的用户凭据相匹配。
| ? | 受支持的浏览器:任何 |
| ? | 限制:不十分安全。密码容易被解码。 |
| ? | 需要的用户权限:用户帐户必须具有“在本地登录”权限。 |
| ? | 加密类型:Base 64 编码(非真正加密) |
摘要 - 服务器请求用户登录,还发送用于加密密码的 NONCE。浏览器使用 NONCE 加密密码并将其发送到服务器。然后,服务器加密其自己的用户密码的副本并比较两者。如果相匹配,用户将具有权限,并被授予访问权限。
| ? | 受支持的浏览器:仅 Internet Explorer 5 |
| ? | 限制:不如“集成”方法安全。要求服务器能够访问为摘要身份验证设置的 Active Directory 服务器。 |
| ? | 需要的用户权限:要求密码具有“将密码保存为加密的明文”。 |
| ? | 加密类型:基于服务器发送的 NONCE。 |
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
222028 (http://support.microsoft.com/kb/222028/)
设置与 Internet 信息服务 5.0 一起使用的摘要式身份验证
Fortezza - 要将 Fortezza 安全用于 IIS 5.0,您需要有 Fortezza 提供商(如 http://www.spyrus.com)提供的适当的 Cryptographic API Service Provider (CSP) 文件。
Windows 集成(拆分为两个子类别)Kerberos - 服务器请求用户登录。如果浏览器支持 Kerberos,将出现以下行为:
| ? | IIS 请求身份验证。 |
| ? | 如果客户端尚未登录到域,在 Internet Explorer 中将出现一个对话框以请求凭据,然后联系 KDC 以请求并接收授权票证的票证。然后将授权票证的票证与有关 IIS 服务器的信息一起发送到 KDC。 |
| ? | 如果 IE 客户端已经成功登录到域,而且接收了授权票证的票证,它将把此票证与有关 IIS 服务器的信息一起发送到 KDC。 |
| ? | KDC 向客户端颁发资源票证。 |
| ? | 客户端将此票证发送到 IIS 服务器。 |
Kerberos 使用在票证授权服务器 (KDC) 生成的票证进行身份验证。它将此票证发送到 IIS 服务器。浏览器“不”将用户的密码发送到服务器。
| ? | 受支持的浏览器:Internet Explorer 5.0 版和更高版本 |
| ? | 限制:服务器必须具有访问 Active Directory 服务器的权限。服务器和客户端必须都具有到 KDC 的信任连接。 |
| ? | 需要的用户权限:在服务器上定义的“匿名”用户帐户必须具有“在本地登录”权限。 |
| ? | 加密类型:加密的票证。 |
Windows NT 质询/响应 - 服务器请求用户登录。如果浏览器支持“Windows NT 质询/响应”,在用户登录时它将自动发送用户的凭据。如果用户所在的域与服务器的域不同,或者如果用户未登录,则在 Internet Explorer 中会出现一个对话框,请求发送凭据。“Windows NT 质询/响应”使用一种算法基于用户的凭据和用户使用的计算机生成一种哈希。然后将此哈希发送到服务器。浏览器不将用户的密码发送到服务器。
| ? | 受支持的浏览器:Internet Explorer 3.01 版和更高版本。 |
| ? | 限制:要求点对点连接。通常,在出现“401 unauthorized”(401 未经授权)错误信息后将关闭电路;不过,如果正在协商“Windows NT 质询/响应”身份验证顺序(要求多个往返行程),服务器在客户端指示将使用“Windows NT 质询/响应”后的排序期间将保持电路处于打开状态。CERN 代理和某些其他 Internet 设备会阻止这样做。而且,“Windows NT 质询/响应”不支持双跃点模拟(这意味着传递到 IIS 服务器之后,不能将同一个凭据传递到后端服务器进行验证,例如,当 IIS 使用“Windows NT 质询/响应”时,它无法随后使用“SQL 集成”安全在另一计算机的 SQL Server 数据库上对用户进行身份验证)。 |
| ? | 需要的用户权限:访问服务器的用户帐户必须具有“从网络访问此计算机”权限。 |
| ? | 加密类型:NTLM 哈希算法,该算法也容易被解码。 |
优先级顺序:在浏览器进行某个请求时,它始终认为第一个请求是“匿名”的。因此,它不发送任何凭据。如果服务器不接受“匿名”验证,或者如果在服务器上设置的“匿名”用户帐户对被请求的文件没有权限,则 IIS 服务器将使用“Access Denied”错误信息进行响应,并通过使用以下方案之一发送受支持的身份验证类型列表:
| ? | 如果“Windows 集成”是唯一受支持的方法(或者“匿名”验证失败),则浏览器必须支持此方法才能与服务器通信。服务器首先尝试 Kerberos,如果该方法失败,则该服务器将回退到“Windows NT 质询/响应”。如果仍失败,服务器将不尝试任何其他方法。 |
| ? | 如果“基本”验证方法是唯一受支持的方法(或者“匿名”验证失败),则在浏览器中将出现一个对话框以获取凭据,然后将这些凭据传递到服务器。它最多尝试三次发送这些凭据。如果三次都失败,浏览器将无法连接到服务器。 |
| ? | 如果“基本”和“Windows 集成”都受支持,浏览器将决定使用哪种方法。如果浏览器支持 Kerberos 或“Windows NT 质询/响应”,它将使用此方法,而不回退到“基本”验证方法。如果“Windows NT 质询/响应”和 Kerberos 不受支持,浏览器将使用“基本”、“摘要”或“Fortezza”(如果支持这些方法)。这三种方法的优先级顺序为“基本”、“摘要”和“Fortezza”。 |
注意:
| ? | 在浏览器使用“基本”或“Windows 集成”验证建立了与网站的连接后,在与服务器的其余会话期间,浏览不会回退到“匿名”验证。如果在验证之后尝试连接到标记为“仅匿名”的网页,则会被拒绝。(对于 Netscape,可能是这种情况,也可能不是这种情况)。 |
| ? | 在 Internet Explorer 已使用“匿名”以外的验证方法建立与服务器的连接后,它将自动在会话期间为每个新请求传递凭据。 |
回到顶端
有关如何在 Windows Server 2003 中配置 IIS 网站身份验证的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
324274 (http://support.microsoft.com/kb/324274/)
如何在 Windows Server 2003 中配置 IIS 网站身份验证
回到顶端