本页内容
![]() | IIS 6.0 中引入的新用户和组及其默认权限 |
![]() | 什么是 Web 园? |
![]() | 基本身份验证与集成的 Windows 身份验证 |
IIS 6.0 中引入的新用户和组及其默认权限
问:我们使用 IIS 已经有些年头了,现在正在将 Web 站点迁移至 IIS 6.0(新服务器,不是升级)。我希望控制安全性,但是不希望过分控制它,以至于系统无法处理文件。我还发现安装了 IIS 6.0 的 Windows Server 2003 中添加了新的用户和组,例如 ASPNET 用户和 IIS_WPG 组,我想了解将这些用户和组的安全设置,以确保新 Web 站点的安全。请告诉我,在创建新 Web 站点时,我应该如何设置权限。这样我可以按需添加其他设置。我下面列出了 wwwroot 文件夹的默认权限供您参考。
Administrators(组- Administrator):完全控制 IIS_WPG(组 - IWAM_服务器名、Local Service、 Network Service 与 System):读取和执行 Interactive:列出文件夹内容 IUSR_服务器名:列出文件夹内容 Network:列出文件夹内容 Network Service:列出文件夹内容 OWS_123456789_admin(组 - Administrators 组):列出文件夹内容 OWS_987654321_admin(组 - Administrator):列出文件夹内容 System:完全控制 Users(组 – ASPNET、Authenticated Users 组、Interactive): 读取和执行
您可以看到,这里设置了许多权限,而且有些还是冗余的。我需要为其他 Web 站点创建新的主文件夹,而且希望确保权限设置完全符合我的需要。
答:对于“应该具备什么权限”的回答是,“满足需求的最低权限”。IIS 传送静态内容和脚本只需 NTFS 读取权限。其他一切权限都是依您的业务需求而定的。
从您所列出的权限我可以看出,您的服务器上全新安装了 IIS 6 与 FrontPage 2002 Extensions。值得注意的一点是,每次添加服务或产品时,服务器上所需的权限(有时是用户和组),都会发生变化。首先,让我们看一下在没有安装 FrontPage Server Extensions 的 Windows Server 2003上,按默认值安装 IIS 6 时 wwwroot 文件夹的权限设置。它们是:
Administrators - 完全控制 System - 完全控制 IIS_WPG – 列出文件夹内容、读取和执行、读取 Users – 列出文件夹内容、读取和执行、读取 Internet Guest 帐户– 拒绝写入
我所列出的 IIS 6 默认权限和您的服务器上的不同,这是因为您已经安装了 FrontPage Server Extensions(FPSE) 2002。您可以看到,权限设置不同之处很多。添加 FPSE 后的权限:
Network - 列出文件夹内容 Network Service - 列出文件夹内容 Interactive – 列出文件夹内容 OWS_<后缀> - 权限根据角色不同而不同。 Internet Guest 帐户 – 列出文件夹内容
您说得很对,其中有些设置是重叠的。其中最大的一个变化就是 Internet Guest 帐户 的权限,
删除了“拒绝写入”,添加了“列出文件夹内容”。这样一来,匿名 Web 用户的权限和 Network 与 Interactive 组完全相同。由于 IUSR 帐户要么是 Network 组的成员,要么是 Interactive 组的成员,因此从理论上说,没必要列出 IUSR 帐户的权限。另外,Network Service 组是 IIS_WPG 的成员,因此也不需要特别列出。
FPSE 使用权限的方法可能比较让人感到困惑。它主要是用于解决如下所示的问题:用户首先使用用户帐户经过身份验证进入 Web 站点,然后浏览其他只能使用 NTFS 权限进行匿名访问的其他内容。在这种情况下,用户可能会被拒绝访问,而您可能希望用户能够读取这些内容。幸运的是,在 Windows Server 2003 中,您可以让 FSPE 使用本地用户组,而不是内置 Network 和 Interactive 组的权限。要了解详细信息,可以仔细阅读 http://www.microsoft.com/technet/prodtechnol/ sppt/sharepnt/proddocs/admindoc/owsj03.asp 以及 http://www.microsoft.com/serviceproviders/whitepapers/fpse2002.asp 处的内容。
最后,IIS 6 服务器上默认情况下没有 ASPNet 用户,只有在安装了 ASP.net 后才会加载。除非是为了与 IIS 5兼容而在工作进程隔离模式下运行 ASP.net,否则不会使用 ASPNet 用户;默认情况下,这些应用程序运行在 Network Services 帐户下。要了解 ASP.net 和 IIS 6 的详细信息,请参阅 IIS 6 资源指南,其网址为 http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/webapp/iis/iis6perf.mspx。
什么是 Web 园?
问: IIS 6.0 具有一个名为 Web 园的新功能,有了它,可以将应用程序池配置为使用多个工作进程。IIS 何时创建额外的工作进程?在我们实施 Web 园之前,我们应该了解哪些知识?
答:在您创建应用程序池时,就会通知 IIS 6 创建一个工作进程,以传送指派给该应用程序池的 Web 站点、文件和文件夹的内容。您可以将应用程序池配置为启动多个,而非一个工作进程,这样可以提高可扩展性。这个功能的名为 Web 园,是小型的“Web 农场”。您无需使用多台计算机来传送相同的内容(Web 农场),而是可以使用一台计算机中的多个进程来传送相同的内容。
在将 IIS 6 应用程序配置为 Web 园时,您只需在“应用程序池属性”的“性能”选项卡的“最大工作进程数”框中,设置一个大于 1 的工作进程数。如果这个值大于 1,每个请求都将启动一个新的工作进程实例,可启动的最多进程数为您所指定的最大工作进程数。后续的请求将以循环的方式发送至工作进程。
Web 园在您的应用程序资源有限的情况下非常有用。例如,如果您到数据库的连接很慢,那么您可以使用多个工作进程来增加用户吞吐量,从而增加到数据库的连接数。
尽管在有些情况下使用 Web 园的用处非常大,但是要注意,每个工作进程的会话信息都是唯一的。由于请求以循环的方式路由到应用程序池工作进程,因此 Web 园对于会话信息存储在进程中的应用程序作用可能不大。
在少数情况下,让多个工作进程运行同一个应用程序会造成资源竞争。例如,如果所有工作进程都试图将信息记录到日志文件中,或是使用那些不是专用于多个并发访问的资源,那么可能出现资源竞争问题。
如果不存在这些问题,那么 Web 园可能正是您所需的功能之一,而且其作用会非常大。
基本身份验证与集成的 Windows 身份验证
问:我有一个企业内部网站,我希望所有通过验证的用户可以访问另一台服务器上的一个目录。我已经将远程服务器的内容映射到 Web 服务器的驱动器上,并且为了测试,为 Everyone 组授予了对这个共享资源的完全控制 NTFS 权限然后我们的应用程序通过引用驱动器盘符来访问内容。
当我们为这个目录配置集成的 Windows 身份验证时,所有用户都无法访问远程位置,但是如果我们使用基本身份验证,并指定域,用户则可以访问远程内容。我的问题是,集成的 Windows 身份验证为什么会无法记住用户访问远程服务器的凭证,而基本身份验证则可以?
答:尽管这看起来像是因为集成的 Windows 身份验证无法记住凭证而引起的问题,但事实并非如此。在确保任何站点或服务器的安全时,问题的关键在于在功能与安全性之间进行权衡。基本身份验证使用本地登录类型,也称为“交互式”登录。这种凭证类型可以委派给其他服务器。因此,可以使用通过基本身份验证获得的凭证成功地访问远程系统。访问 SQL 服务器也是如此。您可以使用基本身份验证来验证客户端,并将凭证转发给配置为使用 SQL 身份验证的 SQL 服务器。但是,当您使用集成的 Windows 身份验证来验证 IIS 服务器时,将会使用“网络”登录类型。这种登录类型的安全性远远高于基本身份验证,但是除非在企业内部网中使用 Kerberos,否则凭证无法转发至其他服务器。一旦使用了 Kerberos(且正确配置后),用户凭证就可以在整个目录林中委派(请参见 Microsoft 知识库文章 326089)。
为了方便且可靠地访问远程内容,且无需考虑身份验证类型,在配置虚拟目录来访问远程内容时,将会提示您提供对 IIS 服务器和远程服务器均有效的用户名和密码。当您访问虚拟目录时,请求将会传递至指定用户,不管该用户使用何种验证方式,都可以访问远程内容。
除非您可以使用 Kerberos,否则我建议您修改应用程序,改为使用标准的虚拟目录,而不是映射的驱动器。这样可以可靠地访问远程内容。另外,不建议使用映射的驱动器,这是因为映射驱动器包含在创建映射的用户的配置文件中。如果其他用户登录这台 IIS 服务器,映射驱动器将不存在,它们和您的应用程序之间不再存在关联关系。
将您的问题提交给 IIS 有问必答。虽然不能肯定一定会予以回复,但是挑选出的问题会连同答案一起刊登在下一期的 IIS 有问必答 专栏中。
要获取 IIS 有问必答 专栏前几个月的问题与解答,请单击此处。
我们代表 Microsoft 公司衷心希望本文章中的信息能对您有所帮助,但是应由您自己承担使用本文所带来的风险。本文中的所有信息都“按原样”提供,对于其准确性、完整性、特殊用途的适用性、所有权和不侵权原则,并没有任何明示或暗示的保证;本著作提及的任何第三方产品和信息,Microsoft 公司都并未参与创作,也不向您推荐、支持或作出任何保证。对使用该信息而造成的任何损失,不管是直接的、间接的、特别的,还是偶然的或必然的,即使已经警告过可能会有这种损失,Microsoft 公司将不承担任何责任。