本文介绍 IIS 如何对浏览器客户端进行身份验证。
原始产品版本: Internet Explorer
原始 KB 数: 264921
总结
本文介绍适用于 Windows NT 4.0、Windows 2000 及更高版本的 IIS 中可用的不同身份验证方法。 有关本文中讨论的信息的更完整说明,请参阅 Windows NT 4.0 和 Windows 2000 资源指南。
可用于 Windows NT 4.0 的身份验证方法
匿名 - 无需登录,并且允许任何人访问受此方法保护的数据。 服务器默认使用内置帐户(IUSR_[计算机名称])来控制对文件的权限。 浏览器不会发送具有此类请求的任何凭据或用户信息。
- 支持的浏览器:任何
- 限制:无
- 用户权限必需:服务器上定义的匿名用户帐户必须具有 本地 权限。
- 加密类型:无
基本(明文) - 服务器请求用户登录,并且浏览器中会显示一个对话框,允许用户输入所需的凭据。 这些凭据必须与用户尝试访问的文件上定义的用户凭据匹配。
- 支持的浏览器:任何
- 限制:不安全。 密码很容易被解码。
- 用户权限必需:用户帐户必须具有 本地 权限。
- 加密类型:Base 64 编码(不是真正的加密)
Windows NT 质询/响应 - 服务器请求用户登录。 如果浏览器支持 Windows NT 质询/响应,则当用户登录时,它会自动发送用户的凭据。 如果用户位于的域与服务器的域不同,或者如果用户未登录,则会出现一个对话框以请求要发送的凭据。 Windows NT 质询/响应使用算法根据用户的凭据和用户所使用的计算机生成哈希。 然后,它将此哈希发送到服务器。 浏览器不会将用户的密码发送到服务器。
支持的浏览器:Internet Explorer 版本 3.01 及更高版本
限制:需要点到点连接。 通常,线路在“401 未授权”错误消息后关闭;但是,在协商 Windows NT 质询/响应身份验证序列(这需要多次往返)时,服务器在客户端指示将使用 Windows NT 质询/响应后,在序列期间保持线路打开状态。 CERN 代理和其他某些 Internet 设备阻止此操作。 此外,Windows NT 质询/响应不支持双跃点模拟(在传递到 IIS 服务器后,无法将相同的凭据传递给后端服务器进行身份验证)。
需要用户权限:正在访问服务器的用户帐户必须具有“从网络访问此计算机”权限。
加密类型:也未编码的 NTLM 哈希算法。
优先顺序: 浏览器发出请求时,它始终将第一个请求视为匿名请求。 因此,它不会发送任何凭据。 如果服务器上设置的匿名用户帐户无权请求的文件,则服务器不接受匿名或,IIS 服务器将使用拒绝访问错误消息进行响应,并发送以下方案之一支持的身份验证类型列表:
- 如果 Windows NT 质询/响应是唯一支持的方法(或匿名失败),则浏览器必须支持此方法才能与服务器通信。 否则,它无法与服务器协商,并且用户会收到 “拒绝 访问”错误消息。
- 如果 Basic 是唯一支持的方法(或匿名失败),则浏览器中会显示一个对话框以获取凭据,然后将这些凭据传递给服务器。 它尝试发送这些凭据最多三次。 如果全部失败,则浏览器未连接到服务器。
- 如果支持基本和 Windows NT 质询/响应,浏览器将确定使用哪种方法。 如果浏览器支持 Windows NT 质询/响应,则它使用此方法,不会回退到 Basic。 如果不支持 Windows NT 质询/响应,浏览器将使用 Basic。
注意
- 当浏览器使用
Basic
或NTLM
身份验证与网站建立连接时,它不会在与服务器的其余会话期间回退到 Anonymous。 如果尝试连接到仅在身份验证后标记为匿名的网页,将被拒绝。 (对于 Netscape,这可能或可能不为 True)。 - 当 Internet Explorer 使用
Basic
或NTLM
身份验证与服务器建立连接时,它会在会话期间传递每个新请求的凭据。
适用于 Windows 2000 及更高版本的身份验证方法
匿名 - 无需登录,并且允许任何人访问受此方法保护的数据。 服务器默认使用内置帐户(IUSR_[计算机名称])来控制对文件的权限。 浏览器不会发送具有此类请求的任何凭据或用户信息。
- 支持的浏览器:任何
- 限制:无
- 用户权限必需:服务器上定义的匿名用户帐户必须具有“本地登录”权限。
- 加密类型:无
基本(明文) - 服务器请求用户登录,并且浏览器中会显示一个对话框,允许用户输入所需的凭据。 这些凭据必须与用户尝试访问的文件上定义的用户凭据匹配。
- 支持的浏览器:任何
- 限制:不安全。 密码很容易被解码。
- 需要用户权限:用户帐户必须具有 本地 权限
- 加密类型:Base 64 编码(不是真正的加密)
摘要 - 服务器请求用户登录,并发送用于加密密码的 NONCE。 浏览器使用 NONCE 加密密码并将其发送到服务器。 然后,服务器对用户密码的副本进行加密,并比较这两个密码。 如果它们匹配且用户具有权限,则会授予访问权限。
- 支持的浏览器:Internet Explorer 5 及更高版本
- 限制:与集成不一样安全。 要求服务器有权访问为摘要式身份验证设置的 Active Directory 服务器。
- 用户权限必需:要求密码具有“将密码另存为加密明文”
- 加密类型:基于服务器发送的 NONCE。
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 未授权”错误消息后关闭;但是,在协商 Windows NT 质询/响应身份验证序列(这需要多次往返)时,服务器在客户端指示将使用 Windows NT 质询/响应后,在序列期间保持线路打开状态。 CERN 代理和其他某些 Internet 设备阻止此操作。 此外,Windows NT 质询/响应不支持双跃点模拟(这意味着传递给 IIS 服务器后,无法将相同的凭据传递给后端服务器进行身份验证,例如,当 IIS 使用 Windows NT 质询/响应时,它不能使用 SQL 集成安全性对另一台计算机上的 SQL Server 数据库进行身份验证)。
- 用户权限必需:访问服务器的用户帐户必须具有“从网络访问此计算机”权限。
- 加密类型:也未编码的 NTLM 哈希算法。
优先顺序: 浏览器发出请求时,它始终将第一个请求视为匿名请求。 因此,它不会发送任何凭据。 如果服务器不接受匿名或服务器上设置的匿名用户帐户对所请求的文件没有权限,IIS 服务器将使用“拒绝访问”错误消息进行响应,并发送以下方案之一支持的身份验证类型列表:
- 如果 Windows 集成是唯一支持的方法(或者匿名失败),则浏览器必须支持此方法才能与服务器通信。 如果此操作失败,服务器不会尝试任何其他方法。
- 如果 Basic 是唯一支持的方法(或者匿名失败),则会出现一个对话框以获取凭据,然后将这些凭据传递给服务器。 它尝试发送最多三次凭据。 如果全部失败,浏览器不会连接到服务器。
- 如果同时支持基本和 Windows 集成,浏览器将确定使用哪种方法。 如果浏览器支持 Kerberos 或 Windows NT 质询/响应,则使用此方法。 它不会回退到基本版。 如果不支持 Windows NT 质询/响应和 Kerberos,则浏览器会使用基本、摘要或 Fortezza(如果支持这些挑战)。 此处的优先级顺序为 Basic、Digest 和 Fortezza。
注意
- 当浏览器使用基本身份验证或 Windows 集成身份验证与网站建立连接时,它不会在与服务器的其余会话期间回退到 Anonymous。 如果尝试连接到仅在身份验证后标记为“匿名”的网页,将被拒绝。 (对于 Netscape,这可能或可能不为 True)。
- 当 Internet Explorer 使用匿名以外的身份验证方法与服务器建立连接时,它会在会话期间自动传递每个新请求的凭据。
参考
有关如何在 Windows Server 2003 中配置 IIS 网站身份验证的详细信息,请参阅 如何在 Windows Server 2003 中配置 IIS 网站身份验证。