IIS 对浏览器客户端进行身份验证

本文介绍 IIS 如何对浏览器客户端进行身份验证。

原始产品版本: Ie
原始 KB 编号: 264921

摘要

本文介绍 IIS 中适用于 Windows NT 4.0、Windows 2000 及更高版本的 Windows 的不同身份验证方法。 有关本文中讨论的信息的更完整说明,请参阅 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质询/响应,浏览器将使用“基本”。

注意

  • 当浏览器使用 BasicNTLM 身份验证与网站建立连接时,在与服务器的剩余会话期间,它不会回退到 Anonymous。 如果尝试在进行身份验证后才连接到标记为“匿名”的网页,则会被拒绝。 (这在 Netscape) 中可能成立,也可能不成立。
  • 当 Internet Explorer 使用 BasicNTLM 身份验证与服务器建立连接时,它会在会话期间传递每个新请求的凭据。

适用于 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质询/响应,则使用此方法。 它不会回退到 Basic。 如果不支持Windows NT质询/响应和 Kerberos,则浏览器使用基本、摘要或 Fortezza(如果支持这些内容)。 此处的优先级顺序为 Basic、Digest 和 Fortezza。

注意

  • 当浏览器使用基本或 Windows 集成身份验证与网站建立连接时,在与服务器的剩余会话期间,它不会回退到匿名。 如果尝试连接到仅在进行身份验证后标记为“匿名”的网页,则会被拒绝。 (这在 Netscape) 中可能成立,也可能不成立。
  • 当 Internet Explorer 使用匿名身份验证方法与服务器建立连接时,它会在会话期间自动传递每个新请求的凭据。

References

有关如何在 Windows Server 2003 中配置 IIS 网站身份验证的详细信息,请参阅 如何在 Windows Server 2003 中配置 IIS 网站身份验证