CMS中的安全性和身份验证(上)

发表于:2007-05-26来源:作者:点击数: 标签:
引言 Microsoft Content Management Server 2001 (MSCMS) 是一种企业 Web 内容管理系统,该系统使公司能够生成、部署和维护 Internet、内联网和外联网 Web 环境。Web 开发 过程的一个基本组成部分是站点安全策略的规划和实现。企业必须为其 Web 站点信息的保
引言

Microsoft Content Management Server 2001 (MSCMS) 是一种企业 Web 内容管理系统,该系统使公司能够生成、部署和维护 Internet、内联网和外联网 Web 环境。Web 开发过程的一个基本组成部分是站点安全策略的规划和实现。企业必须为其 Web 站点信息的保密性、隐私性、完整性和可用性提供充分的保护。

因为需要考虑许多变数,所以保护 MSCMS Web 环境需要进行仔细规划。管理员必须确定一种首选的用户验证模型,为特定的用户帐户建立权利或权限,并为 Web 站点的内容、文件和目录确定安全设置等等。

本文讲述 MSCMS 中提供的部分安全选项,并为配置一个安全的 MSCMS Web 站点推荐一些最佳做法。将详细讨论以下问题:

  • 分配用户权限
  • 验证用户身份
  • 保护内容、文件和目录
  • 加密资源 URL
  • 配置安全的 MSCMS Web 站点

    系统结构

    在评估 MSCMS 中提供的不同安全选项前,理解 MSCMS Web 环境中的组件以及管理员可用来在 Web 站点上实现安全性的工具是很重要的。

    Content Management Server 2001 是一种根据行业标准数据库建立的分布式网络应用程序,其主要特点是使用了基于对象的 Publishing API。MSCMS 将 Microsoft Windows? 2000 Internet 信息服务 (IIS) 用作其 Web 服务器。这意味着除了内部 MSCMS 安全机制外,MSCMS Web 环境还利用了 Windows 文件安全机制和 IIS 安全机制。

    Web 环境由 Web 页内容和资源(例如,图形、文档和视频)构成,这些内容和资源在运行时与模板布局组合在一起生成 Web 站点内容。Web 站点的不同组件都存储在“容器”中。容器是用来描述 MSCMS 2001 中的虚拟存储区域的术语。以下各项都是 MSCMS 中的容器:

  • 频道存储张贴内容的位置
  • 文件夹作者与编辑者创建和编辑页面的位置。
  • 模板库设计人员创建和存储页面及导航模板的位置
  • 资源库存储和创建资源(图像、视频、文本)的位置。

    Web 管理员使用 Content Management Server Site Builder(Content Management Server 站点生成器)定义用户对容器的访问权。Site Builder 是一种在 Windows 平台上运行并且要求使用 Microsoft Internet Explorer 的桌面应用程序。除了设置用户权限外,管理员还可以使用 Site Builder 生成应用程序框架。还可以将 Site Builder 与任一 HTML 编辑器一起使用来生成 Web 模板。

    管理员用以保护 MSCMS Web 环境的另一种工具是 Microsoft Content Management Security Configuration Application(Microsoft 内容管理安全配置应用程序,简称 SCA)。这种独立的应用程序使管理员能够配置 Web 环境中的本地和全局安全属性。例如,管理员可以使用 SCA 打开或关闭来宾访问及确定 Web 访问点。为保护 Web 环境不受恶意干扰,建议通过安全套接字层 (SSL) 连接运行 SCA。

    有关 MSCMS 的 Site Builder、SCA 和其他组件的更多信息,请参见位于以下位置的“Setup Guide”:http://www.microsoft.com/cmserver/techinfo/doc_help.htm

    确定用户权限

    在设置 MSCMS 虚拟工作区时,Web 管理员的责任之一是确定每个用户访问和修改 Web 上的数据的权限。这些权限由用户所属的权限组和指派给每个权限组的角色共同确定。

    在 MSCMS 中有七种不同的角色,而且每种角色都与特定的权限关联:

  • 订户可浏览到 MSCMS 2001 页。
  • 作者可以创建和修改他或她拥有其所有权的那些页面(或所有权属于每个人的页面),将这些页面提请批准,并将它们张贴到“频道”容器中。作者还拥有使用页模板和资源的权限。
  • 编辑者可以批准、拒绝、创建和删除页面,修改张贴内容,并可将张贴内容提交到频道。编辑者还有权使用页模板和资源。
  • 审阅者可修改张贴日程及批准和拒绝张贴。尽管审阅者角色可用于处理内容的首次发布,但在正常的 Web 页工作流中没有该角色则会更轻松。
  • 资源管理器可以添加、删除和替换资源库中的内容。
  • 模板设计人员可以设计页面和导航模板,并可使用资源。
  • 管理员可为用户指派一个或多个角色,确定用户权限,分配所有容器内的权限,创建分层结构,并维护内容修订档案。

    在确定用户权限时,管理员首先使用 MSCMS 中提供的七种发布角色之一创建权限组。权限组确定一个组对哪个容器拥有访问权。例如,管理员可创建一个 Sales(销售)编辑者权限组和一个 Marketing(市场)编辑者权限组。两个权限组都有与“编辑者”角色关联的权限,但每个组都只能在站点上特定的容器内行使这些权限。

    下一步,管理员将每个用户指派给一个或多个权限组。用户在一个容器内拥有的权限是由用户角色和组共同确定的。例如,被指派到 Sales 编辑者组的一个用户拥有“编辑者”的所有权限,但该用户只能在 Sales 编辑者组有权访问的容器中行使这些权限。

    只有一个权限组与管理员角色关联,该权限组适用于整个系统。不能再为管理员角色创建其他权限组。

    尽管一个组对哪些容器拥有权限以及用户在特定角色中的成员身份可以更改,但与某个角色关联的权限是不能修改的。

    在指派角色和权限组时,管理员应牢记以下信息:

    1.角色的范围不是整个系统。例如,Dave 可以是 Sales 文件夹和 Company News 文件夹中的作者,但他并不是所有其他文件夹中的作者。

    2.一个用户可以有不止一个角色。例如,Ann 可能在 Sales 文件夹中是作者,在 Marketing 文件夹中是编辑者。

    3.一些角色会与其他角色重叠。例如,Fred 在一个文件夹中既可以作者,又可以是编辑者。

    4.用户只能根据指派给他们的角色看到 MSCMS 2001 的某一部分。例如,指派为 Resource Manager(资源经理)角色的用户将只能看到资源库 (Resource Gallery) 中的频道。

    5.当用户在站点上经过身份验证后,他们不能使用来宾访问查看页面,所以需要将没有权限修改整个站点内容的作者和编辑者添加到有权限查看整个站点的订户组中。

    有关为用户指派角色或在容器内分配权限的详细信息,请参见位于以下网址的“站点管理员指南”:http://www.microsoft.com/cmserver/techinfo/doc_help.htm。

    验证用户身份

    在 MSCMS 2001 中,每个用户都关联着一个用户帐户。此帐户可以是 Windows 2000 帐户、站点服务器轻量目录访问协议 (LDAP) 帐户或 Active Directory? 目录服务帐户。通过身份验证,用户的身份得到确认,这样用户就能够行使与其帐户关联的权限。

    为验证身份,用户通常在登录过程中提供凭据,凭据包括用户名、密码、域。系统使用这些凭据来确定用户可以访问的数据和用户可以在 Web 站点上执行的操作。例如,当指派了“编辑者”角色的用户在站点上经过身份验证后,该用户可以在他或她对其拥有权限的容器中添加或删除页。

    在 MSCMS Web 站点上验证用户身份时有若干选项。管理员可选择使用“Internet 信息服务”提供的身份验证选项之一、Microsoft Content Management Server 提供的基于窗体的手动登录,或使用这两种方式的某一组合。还可以在 Web 站点上启用“来宾访问”,使匿名用户能够浏览某个 Web 站点上的全部或部分页面。

    管理员选择使用的验证方法取决于站点要求和管理员愿意承担的风险大小。例如,集成的 Windows 身份验证最适合在仅有 Internet Explorer 的环境中使用,而基于窗体的登录在多浏览器环境中是一种较好的选择。在拥有代理服务器和多个浏览器的环境中,则最好联合使用基本身份验证与 SSL 加密。

    以下各部分将详细讲述每一种身份验证选项,包括“来宾访问”。

    使用 MSCMS 基于窗体的身份验证

    在 Microsoft Content Management Server 内,AESecurity Service 用来验证用户的身份。在这种基于窗体的身份验证系统中,尝试访问安全 Web 页的用户会被重定向到一个登录窗体(一个 Active Server Page [ASP] 脚本,称为 ManualLogin.asp),用户必须在该窗体内输入一个用户名和密码。用户输入凭据后,该 ASP 脚本将登录凭据以 HTML 形式张贴到一个称为 ManualLoginSubmit.asp 的 ASP 脚本中,该脚本将数据传送给服务器。

    站点程序员可以自定义 ManualLogin.asp,使它可以维护 Web 站点的外观。如果来宾可以访问它,则他们还可以将它添加到他们的页模板之一中。

    如果用户身份验证成功,则 MSCMS 会在 Web 浏览器中保存一个带有加密令牌的会话 cookie。该令牌包括用户标识、登录时间和登录 IP 地址,它是使用“服务器安全密钥”加密到 cookie 中的。每次用户请求新页面时,MSCMS 都会验证该令牌并相应地准许或拒绝访问。当用户注销时,该令牌将从 Web 浏览器中被移除;当浏览器关闭时,会话 cookie 被销毁。

    如果一个服务器没有服务器安全密钥,则它不能解密该令牌,这种情况下服务器会拒绝用户访问。因此,一个群集中所有服务器的服务器安全密钥必须一致。此外,如果服务器安全密钥更改了,则以前生成的所有令牌都将无效。

    配置 MSCMS 基于窗体的手动登录

    1.浏览到 c:\\Program Files\Microsoft Content Management Server\Server\IIS_NR\System\Aclearcase/" target="_blank" >ccess,然后打开文件 IISAuthentication.inc。

    2.确保常量 CF_IIS_Security_Context_Login 的值设置为 false(false 为默认设置)。

    转到 IIS NR 3.虚拟目录并启用匿名访问。访问包含文件和缓存中的文件需要采用匿名访问。如果未启用匿名访问,则除了基于窗体的登录外,用户还必须完成 IIS 身份验证,才能访问这些文件。如果文件缓存区位于一个不同的位置,则必须向匿名帐户授予特殊的文件权限,才能访问此位置。

    4.如果不对整个站点启用 SSL 加密,则应对登录页启用 SSL 加密。

    基于窗体的手动登录可用于所有类型的 Web 浏览器,前提是所用的浏览器中启用了 cookie。如果某人在浏览器中禁用了 cookie,则该用户对于每一页都必须重新进行身份验证。此问题的一种变通解决方法是将信息存储在 URL 中,但这需要特殊的系统配置,包括对 MSCMS 附带的某些优秀的脚本进行代码更改。

    必须指出的是,基于窗体的系统在网络上以明文形式传递身份验证信息。由于某个嗅探者可能会截取这些数据,并使用这些数据模拟该用户,所以应当对登录页进行 SSL 加密。有关在 MSCMS 站点使用 SSL 的信息,请参见 MSCMS Web 站点上的 Enabling SSL Encryption(启用 SSL 加密)。管理员还可使用 IP 检查和 cookie 超时来减小入侵者使用窃取的标识访问 Web 站点的可能性。当会话令牌超过时间限制时,用户必须重新进行身份验证才能访问安全页面。有关这些设置的更多信息,请参见“IP 检查和 cookie 超时”。

    使用 IIS 身份验证

    Internet 信息服务可通过 IIS 安全上下文 (IIS Security Context) 在 MSCMS Web 站点验证用户身份。MSCMS 中支持三种类型的 IIS 安全上下文身份验证:

  • 基本身份验证通过网络以明文形式发送用户名和密码。
  • 集成的 Windows 身份验证使用哈希技术来标识用户。不是通过网络发送用户信息,而是以加密方式交换凭据。
  • 匿名身份验证是 CMS 来宾访问所必需的。来宾访问让访问者(不一定是 Microsoft Windows NT? 或 ADS 用户)能够在不提供登录凭据的情况下访问站点。在 NTFS 系统中,匿名身份验证可确保匿名用户拥有 IIS_NR 下的所有文件的权限。匿名访问应当与其他形式的身份验证联合使用,以确保用户拥有这些文件的读访问权。

    Content Management Server 2001 中不支持 IIS 简要身份验证。

    原文转自:http://www.ltesting.net