匿名身份验证

匿名身份验证使用户无需输入用户名或密码便可以访问 Web 或 FTP 站点的公共区域。当用户试图连接到公共网站或 FTP 站点时,Web 服务器将连接分配给 Windows 用户帐户 IUSR_computername,此处 computername 是运行 IIS 所在的计算机的名称。默认情况下,IUSR_computername 帐户包含在 Windows 用户组 Guests 中。该组具有安全限制,由 NTFS 权限强制使用,它指出了访问级别和可用于公共用户的内容类型。

IUSR_computername 帐户

下面介绍了 Internet 信息服务 (IIS) 是如何使用 IUSR_computername 帐户的:

  1. 在安装过程中,将 IUSR_computername 帐户添加到运行 IIS 的计算机上的 Guests 组中。
  2. 在收到请求时,IIS 在运行任何代码之前先模拟 IUSR_computername 帐户。IIS 可以模拟 IUSR_computername 帐户,因为 IIS 知道该帐户的用户名和密码。
  3. 在将页面返回到客户端之前,IIS 检查 NTFS 文件和目录权限,查看是否允许 IUSR_computername 帐户访问该文件。
  4. 如果允许访问,则访问进程(也称为“授权”)完成并给用户提供这些资源。
  5. 如果不允许访问,IIS 将尝试使用其他验证方法。如果没有作出任何选择,IIS 则向浏览器返回“HTTP 403 访问被拒绝”错误消息。

注意 注意 如果启用了匿名验证,则 IIS 始终尝试先使用匿名验证对用户进行验证,即使启用了其他验证方法,也是如此。可以在 Web 服务器的服务级别或单独虚拟目录和文件级别更改用于 IIS 管理器中匿名验证的帐户。

在 IIS 6.0 中,NETWORK_CLEARTEXT 是匿名验证(和基本身份验证)的默认登录类型。一种结果是匿名验证不再要求“允许本地登录”用户权限。

也可以使用 Microsoft 管理控制台 (MMC) 的组策略管理器管理单元来更改 Windows 中 IUSR_computername 帐户的安全设置。但是,如果匿名用户帐户不具有特定文件或资源的访问权限,Web 服务器将拒绝建立与该资源的匿名连接。详细信息,请参阅使用网站权限保护站点

要点 要点 在更改 IUSR_computername 帐户时,此更改影响 Web 服务器提供服务的每个匿名 HTTP 请求。如果要修改该账号,请使用警告。

子验证

在早期的 IIS 版本中,可以默认使用子验证组件 Iissuba.dll,该组件允许 IIS 管理匿名帐户的密码。因为使用该组件有安全风险,所以 IIS 6.0 不会默认启用子验证。但是,可以使用子验证管理匿名帐户的密码,但必须满足以下条件:

对于 IIS 6.0 全新安装和从配置了子验证的 IIS 安装升级到 IIS 6.0,为满足以上要求所采取的操作是不同的。

在 IIS 6.0 全新安装后配置子验证

在全新安装后,IIS 6.0 默认在工作进程隔离模式下运行并禁用子验证(将 AnonymousPasswordSynch 设置为 FALSE)。

在 IIS 6.0 全新安装后配置子验证

  1. 通过打开命令提示并键入
    rundll32 %windir%\system32\iissuba.dll,RegisterIISSUBA 来注册 Iissuba.dll。
  2. 以 LocalSystem 身份使用匿名验证来运行所有工作进程。
  3. 将配置数据库属性 AnonymousPasswordSynch 设置为 TRUE。

在全新安装 IIS 6.0 后,如果切换到 IIS 5.0 隔离模式,则给进程内应用程序分配的工作进程默认以 LocalSystem 身份运行。

在全新安装并切换到 IIS 5.0 隔离模式后配置子验证

  1. 通过打开命令提示并键入
    rundll32 %windir%\system32\iissuba.dll,RegisterIISSUBA 来注册 Iissuba.dll。
  2. 将配置数据库属性 AnonymousPasswordSynch 设置为 TRUE。

在升级到 IIS 6.0 后配置子验证

在从使用子验证来管理匿名帐户密码的旧版本 IIS 升级到 IIS 6.0 后,就会默认启用子验证(将 AnonymousPasswordSynch 设置为 TRUE),但子验证无法正常工作,因为有两项配置任务尚未完成。Iissuba.dll 没有注册,并且使用匿名验证的工作进程正在以 LocalSystem 身份运行。事件日志中应该有此类信息。

在从配置使用子验证的 IIS 安装升级到 IIS 6.0 后配置子验证

  1. 通过打开命令提示并键入
    rundll32 %windir%\system32\iissuba.dll,RegisterIISSUBA 来注册 Iissuba.dll。
  2. 以 LocalSystem 身份使用匿名验证来运行所有工作进程。

配置匿名验证

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

启用匿名验证

  1. 在 IIS 管理器中,展开本地计算机,右键单击某个站点、目录或文件,然后单击“属性”。
  2. 单击“目录安全性”或“文件安全性”选项卡,具体情况取决于所更改的安全设置级别。
  3. 在“身份验证和访问控制”部分中,单击“编辑”。
  4. 选中“启用匿名访问”复选框。
  5. 单击“确定”两次。

更改用于匿名验证的帐户

  1. 在 IIS 管理器中,展开本地计算机,双击某个站点、目录或文件,然后单击“属性”。
  2. 单击“目录安全性”或“文件安全性”选项卡,具体情况取决于所更改的安全设置级别。
  3. 在“身份验证和访问控制”部分中,单击“编辑”。
  4. 选中“启用匿名访问”复选框。
  5. 单击“浏览”,然后键入或浏览要用于匿名访问的有效 Windows 用户帐户。
  6. 单击“确定”三次。
相关主题

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