规划网站安全性 (Office SharePoint Server)

本文内容:

  • 关于网站安全性要素

  • 关于分配权限

  • 关于细化权限和权限继承

  • 选择使用哪个级别的网站安全性

  • 制定权限继承计划

  • 子网站脚本

  • 工作表

本文讨论在网站集、网站和子网站级别为访问控制和授权制定计划,并不讨论有关服务器或服务器场安全性的规划。有关为安全性的其他方面(例如身份验证方法和加密)制定计划的详细信息,请参阅规划网站和内容安全性 (Office SharePoint Server)

网站安全性是通过针对特定的安全对象(例如网站、列表或项目)向用户和组分配权限来控制的。当您为网站安全性制定计划时,需要确定:

  • 对于各个安全对象,您想要在什么样的程度上控制权限。例如,您是希望控制对整个网站的访问,还是需要针对特定列表、文件夹或项目指定专门的安全设置?

  • 您希望如何(通过使用组)对用户进行分类和管理?本文介绍有关网站安全性的要点内容,并在您确定应用特定权限的安全对象时为您提供帮助。有关用户分组的详细信息,请参阅选择要使用的安全组 (Office SharePoint Server)

    备注

    与原有版本相比,组和权限的交互方式有了显著的变化。在原有版本中,使用网站级别的组来同时包含用户和权限(即,当您将一个用户添加到网站组中时,也就自动确定了该用户获得的网站权限)。在此版本中,用户组和权限的概念已经分开:网站集级别的 SharePoint 组包含用户,权限级别包含权限,并且只有针对特定安全对象(例如网站、列表或库、文件夹、项目或文档)为组分配了权限级别,组才具有权限。

关于网站安全性要素

不管您创建的网站属于哪种类型,网站的安全性都包括以下五个要素:

  • 单个用户权限 允许执行特定操作的单个权限。例如,通过使用“查看项目”权限,用户能够查看列表中的项目。通过使用管理中心的“Web 应用程序的用户权限”页面,服务器场管理员可以控制对服务器场的可用权限。(若要转到此页,请在“应用程序管理”页面上的“应用程序安全性”下单击“Web 应用程序的用户权限”。)有关可用权限的信息,请参阅User permissions and permission levels

  • 权限级别 一组预定义的权限,可向用户授予执行相关操作的权限。默认权限级别如下:“受限访问”、“读取”、“参与讨论”、“设计”和“完全控制”。例如,“读取”权限级别包括“查看项目”、“打开项目”、“查看页面”和“查看版本”等权限,它们都是读取 SharePoint 网站中的文档、项目和页面所必需的。权限可以包含在多个权限级别中。分配有包含“管理权限”权限的权限级别的任何用户都可以自定义权限级别。有关默认权限级别及其包含的权限的信息,请参阅User permissions and permission levels

  • 用户 拥有用户帐户的人员,用户帐户可通过用于服务器的身份验证方法进行验证。您可以添加单个用户,直接向每个用户分配权限级别;用户不必是组的成员。我们建议您向组而不是用户分配权限。因为直接维护用户帐户缺乏效率,只有在例外的情况下才应该对每个用户分配权限。有关用户帐户类型的详细信息,请参阅User permissions and permission levels

  • 组 由用户组成的组。可以是要添加到网站中的 Windows 安全组(例如 Department_A),也可以是 SharePoint 组(例如,Site Owners、Site Members 或 Site Visitors)。每个 SharePoint 组均分配有默认权限级别,但可以根据需要更改任何组的权限级别。分配有包含“创建组”权限(默认情况下包含在“完全控制”权限级别中)的权限级别的任何用户都可以创建自定义 SharePoint 组。

  • 安全对象 向用户或组分配的权限级别都针对特定的安全对象:网站、列表、库、文件夹、文档或项目。默认情况下,对列表、库、文件夹、文档或项目的权限继承自父网站、父列表或库。但是,只要向用户或组分配的针对特定安全对象的权限级别包含“管理权限”权限,则该用户或组便可以更改对该安全对象的权限。默认情况下,最初在网站级别控制权限,所有列表和库都继承网站权限。使用列表、文件夹和项目级别的权限可以进一步控制哪些用户能够查看网站内容或与之进行交互。您可以随时恢复为从父列表、整个网站或父网站继承权限。

关于分配权限

可以向用户或组分配针对特定安全对象(网站、列表或项目)的权限级别。各个用户或组可以针对不同安全对象拥有不同的权限级别。

备注

由于直接维护用户帐户缺乏效率,因此建议尽可能使用组权限。需特别指出,如果要使用细化权限(请参阅下一节),则应使用组,以避免跟踪单个用户帐户。由于团队中的成员及其责任会经常变动,因此可能不必跟踪所有这些更改并不断地为各个唯一的安全对象更新权限。

下面的图表演示了针对特定的安全对象,如何向用户和组分配特定的权限级别。

特定的权限级别

关于细化权限和权限继承

使用细化权限(对列表、库、文件夹、项目或文档级别的权限)可以更加精确地控制用户能够在网站上执行的操作。以下安全对象可用于权限分配:

  • 网站 从网站整体角度控制对网站的访问。

  • 列表或库 控制对特定列表或库的访问。

  • 文件夹 控制对某个文件夹的属性(例如该文件夹的名称)的访问。

  • 项目或文档 控制对特定列表项或文档的访问。

权限继承和细化权限

默认情况下,网站内部的权限继承自该网站。但是,对于网站层次结构中任何级别较低的安全对象,可以编辑对该安全对象的权限(创建独特的权限分配)来断开这种继承关系。例如,可以编辑对文档库的权限来断开从网站继承权限这一继承关系。但是,断开继承关系是仅针对为其分配权限的特定安全对象而言的;网站中的其他权限将保持不变。您可以随时恢复为从父列表或网站继承权限。

权限继承和子网站

网站本身即是一个可对其分配权限的安全对象。可以将子网站配置为从父网站继承权限,也可以为特定的网站创建独特的权限。继承权限是管理一组网站最为简便的方法。但是,如果子网站从其父网站继承权限,则该组权限是共享的。这意味着如果子网站从父网站继承权限,则子网站的所有者可以编辑父网站的权限。如果您只想更改子网站的权限,那么必须终止继承权限,然后再进行更改。

子网站可以从父网站继承权限。您可以通过为子网站创建独特的权限来终止该子网站继承权限。这会将组、用户和权限级别从父网站复制到子网站,然后断开继承。如果您从独特权限更改为继承权限,则开始从父网站继承用户、组和权限级别,而且,您在子网站中专门定义的所有用户、组或权限级别都将丢失。权限级别也可以被继承(并且默认情况下将继承它们),这样,不论将“读取”权限级别应用于哪个对象,它都是相同的。您可以通过编辑权限级别来断开继承。例如,您可能不希望对某个特定子网站的“读取”权限级别包括“创建警报”权限。

选择使用哪个级别的网站安全性

当创建权限结构时,应该在易于管理、性能和控制各个项目的特定权限的需求之间找到平衡,这一点非常重要。如果大量使用细化权限,则:

  • 将花费更多时间管理权限。

  • 如果一个网站集包括超过 10,000 个唯一访问控制列表 (ACL),则 Microsoft Office SharePoint Server 可能会禁用输出缓存。当用户尝试访问网站内容时,可能会感觉到性能较差。有关缓存的详细信息,请参阅Office SharePoint Server 2007 中的缓存

与任何服务器或网站一样,按照最小特权的原则授予网站访问权限也非常重要:用户应该仅拥有他们需要使用的权限级别。从使用标准组(例如 Members、Visitors 和 Owners)开始,并在网站级别控制权限,以实现最方便的管理控制。让大多数用户成为 Visitors 或 Members 组的成员。限制 Owners 组的人数,仅使那些您想要允许他们更改网站的结构或更改网站设置和外观的用户成为该组成员。默认情况下,Members 组中的用户可以参与网站的内容创作,比如添加或删除项目或文档,但他们不能更改网站的结构或者更改网站设置或外观。如果需要更好地控制用户可执行的操作,您可以创建更多的 SharePoint 组和权限级别。

如果存在包含敏感数据的特定列表、库、文件夹、项目或文档,因而必须使其具有更高的安全性,那么您可以向特定组或单个用户授予权限。但请注意,没有办法查看特定于网站中的列表、库、文件夹、项目或文档的所有权限。这意味着很难快速确定哪些人对哪些安全对象有权限,同时也很难批量重置任何细化权限。

制定权限继承计划

如果权限以及继承的权限的层次结构非常清晰,则权限的管理最为容易。如果网站内的某些列表应用了细化权限,一些网站的子网站具有独特的权限,而另一些网站的子网站具有继承的权限,这时管理起来就比较困难。请尽可能妥善组织网站和子网站、列表和库,使其可以最大程度地共享权限。将敏感数据放入单独的列表、库或子网站中。

例如,管理下表所示的具有权限继承的网站会容易得多。

安全对象 说明 独特的权限或继承的权限

SiteA

组主页

独特

SiteA/SubsiteA

敏感组

独特

SiteA/SubsiteA/ListA

敏感数据

独特

SiteA/SubsiteA/LibraryA

敏感文档

独特

SiteA/SubsiteB

组共享的项目信息

继承

SiteA/SubsiteB/ListB

非敏感数据

继承

SiteA/SubsiteB/LibraryB

非敏感文档

继承

比较而言,管理下表所示的具有权限继承的网站就不那么容易了。

安全对象 说明 独特的权限或继承的权限

SiteA

组主页

独特

SiteA/SubsiteA

敏感组

独特

SiteA/SubsiteA/ListA

非敏感数据

与 SiteA 相同的独特权限

SiteA/SubsiteA/LibraryA

非敏感文档,但是有一两个敏感文档

继承权限,在文档级别有独特权限

SiteA/SubsiteB

组共享的项目信息

继承

SiteA/SubsiteB/ListB

非敏感数据,但是有一两个敏感项目

继承权限,在项目级别有独特权限

SiteA/SubsiteB/LibraryB

非敏感文档,但是有一个包含敏感文档的特殊文件夹

继承权限,在文件夹和文档级别有独特权限

子网站脚本

如果环境需要对内容和网站进行最高级别的隔离,最好是对 Office SharePoint Server 网站结构进行相应设计,从而最大程度地降低与使用连续的 URL 命名空间相关的风险。默认的 Office SharePoint Server 网站 URL 命名空间配置会导致可能的子网站脚本问题,恶意用户可以利用这一问题在网站上执行超越他们本身所授予的权限级别的操作。此问题之所以存在是因为 Office SharePoint Server 网站是安全边界,而任意数量的边界在同一个主机名称下都可以彼此相邻。因为 Web 浏览器仅认为主机名(而非网站)是安全边界,所以驻留在一个 Office SharePoint Server 网站上的包含脚本的内容在某些环境下,可以在同一个主机名下的其他网站上运行。

Office SharePoint Server 将基于已验证的用户的权限和组成员资格授予内容访问权。因此,代表用户运行的脚本可以有效地执行允许用户执行的任何操作。下面的示例对潜在问题进行了说明:

  • 用户 A 和用户 B 都有各自的 Office SharePoint Server 网站集:http://my/sites/UserA 和 http://my/sites/UserB。

  • 用户 A 在自己的网站上拥有参与者权限,但是在用户 B 网站上没有权限。当用户 A 浏览用户 B 的网站时,将会收到“拒绝访问”错误。

  • 但是,用户 A 可以将含有恶意脚本的文件上载到自己的网站上,并授予用户 B 读取该文件的权限。如果用户 B 查看用户 A 创建的文件,则恶意脚本将能够使用用户 B 的凭据运行,而不会发出警告。在许多现有的 Web 浏览器上下文中,由于脚本并不跨越安全边界,因此运行脚本不会被视为跨域事件。

存在此问题的原因是,用户 B 的 Office SharePoint Server 网站和用户 A 的 Office SharePoint Server 网站都在同一个主机名下。在这种网站结构中,用户 B 和用户 A 必须能够彼此信任对方不会尝试执行脚本攻击。如果参与者组不能彼此信任,则他们的网站应通过不同的主机名进行分区。脚本问题是 Office SharePoint Server 协作方案(而非 Internet 发布或结构化门户方案)中最受关注的问题,这是因为恶意用户必须拥有参与者访问权才能执行子网站脚本攻击。

随着 Office SharePoint Server 使用(尤其是大型组织中的 Intranet 使用)的增长,以及组织内的多个用户成为基于路径的部署(例如,http://my 或 http://corp)的某些部分的参与者,如何能够信任该主机的所有参与者就变成了一道难题。对于使用自助式网站创建的方案和子网站嵌套很深的方案,尤为如此。可以设计 Office SharePoint Server 部署来最大程度地减少问题。有关设计信息体系结构的信息,请参阅确定网站的信息体系结构

有关设计 Office SharePoint Server 网站集、网站和子网站的信息,请参阅确定网站和子网站

有关其他安全指南的信息,请参阅 SharePoint 产品和技术的安全资源中心(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=148056&clcid=0x804)(该链接可能指向英文页面)。

使用以主机命名的网站集

通过使用以主机命名的网站集,可以支持在单个 Web 应用程序中创建多个根级别网站集,从而能够增加网站和内容的安全性。例如,承载组织的管理员可以使用以主机命名的网站集来创建多个以域命名的网站。Windows SharePoint Services 3.0 支持在单个 Web 应用程序中创建多个域。这使您能够在同一个 Web 应用程序内的不同网站集中放置多个域,例如 http://www.mycorporation.com/TV/http://www.mycorporation.com/TV/。但是,当您使用此方法管理子网站脚本问题时,需要考虑下面的问题:

  • 使用友好主机名(例如 http://www.mycorporation.com/TV/)会导致 DNS 问题,因为您需要将所有友好主机名指向正确的 Office SharePoint Server 部署。通过允许使用含有通配符的 DNS 项(例如,*.collab.mycorp.com),完全限定的域名可以缓解此问题。

  • Office SharePoint Server 包括对基于路径的网站集的自助式创建和管理的支持。部署以主机头命名的网站会给网站设置带来操作负担。有关自助式网站创建的详细信息,请参阅配置自助式网站创建

有关以主机命名的网站集的详细信息,请参阅规划以主机命名的网站集 (Office SharePoint Server)

将内容移至单独的主机名

如果需要将现有的内容移至一个单独的主机名,请考虑下面的准则:

  • 若要移动少量的内容(包括文档库和列表),可使用客户端功能,例如,“发送到”、“其他位置”、“使用资源管理器视图打开”(针对文档)或者“导出到电子表格”(针对列表)。

  • 若要移动大量内容(包括网站和网站集),可考虑备份和还原内容。有关备份和还原内容的信息,请参阅使用内置工具备份和还原网站集 (Office SharePoint Server 2007)

  • 对于大量数据,可考虑使用不同的主机名创建新的网站集。

  • 考虑在与承载网站集的原始位置网站相同的级别上创建一个托管路径。通过定义托管路径,可以指定 Web 应用程序的 URL 命名空间中的哪些路径用于网站集。这很重要,因为在很多情况下,Office SharePoint Server 内容使用相对于服务器的路径。将内容还原到新的位置时,Office SharePoint Server 可以修复 URL 的主机名,但此时如果出现级别不匹配,则可能导致还原操作失败。有关托管路径的详细信息,请参阅定义管理路径

工作表

网站和内容安全性工作表(该链接可能指向英文页面)(https://go.microsoft.com/fwlink/?linkid=73135&clcid=0x804) 中填写您的网站层次结构,然后列出层次结构每个层所需的权限和任何权限继承。

下载此书籍

本主题包含在以下可下载书籍内,以方便您阅读和打印:

有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007 的可下载内容