匿名身份验证使用户无需输入用户名或密码便可以访问 Web 或 FTP 站点的公共区域。当用户试图连接到公共网站或 FTP 站点时,Web 服务器将连接分配给 Windows 用户帐户 IUSR_computername,此处 computername 是运行 IIS 所在的计算机的名称。默认情况下,IUSR_computername 帐户包含在 Windows 用户组 Guests 中。该组具有安全限制,由 NTFS 权限强制使用,它指出了访问级别和可用于公共用户的内容类型。
下面介绍了 Internet 信息服务 (IIS) 是如何使用 IUSR_computername 帐户的:
注意 如果启用了匿名验证,则 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 默认在工作进程隔离模式下运行并禁用子验证(将 AnonymousPasswordSynch 设置为 FALSE)。
在 IIS 6.0 全新安装后配置子验证
在全新安装 IIS 6.0 后,如果切换到 IIS 5.0 隔离模式,则给进程内应用程序分配的工作进程默认以 LocalSystem 身份运行。
在全新安装并切换到 IIS 5.0 隔离模式后配置子验证
在从使用子验证来管理匿名帐户密码的旧版本 IIS 升级到 IIS 6.0 后,就会默认启用子验证(将 AnonymousPasswordSynch 设置为 TRUE),但子验证无法正常工作,因为有两项配置任务尚未完成。Iissuba.dll 没有注册,并且使用匿名验证的工作进程正在以 LocalSystem 身份运行。事件日志中应该有此类信息。
在从配置使用子验证的 IIS 安装升级到 IIS 6.0 后配置子验证
要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
启用匿名验证
更改用于匿名验证的帐户