技术开发 频道

增强 SharePoint 安全性的 7 项新功能


    为您的 Microsoft Office SharePoint Server (MOSS) 2007 环境实施有效安全措施可以显著降低日常管理费用,同时允许团队
在安全的环境中协作并共享业务数据。MOSS 2007 内置创新的身份验证功能,使您能够通过自定义身份验证提供程序、基于表单的 Internet 风格身份验证和 Web 单一登录 (SSO),充分利用基于 Web 的安全标准。而且,MOSS 还提供对公司资产(例如 2007 Microsoft® Office 系统文件)的详细权限管理、本机加密功能和简化的客户端身份验证义务。

   以下是 MOSS 2007 提供的七项安全功能,您可以快速投入使用。

1. 可插入身份验证提供程序
    身份验证提供程序是检验用户凭据的组件。在设置 Internet 风格的 SharePoint® 身份验证时,为 MOSS 环境配置身份验证提供程序是一项重要的安全决策。MOSS 继续支持 SharePoint 之前版本可用的、基于 Windows® 的身份验证方法,包括识别用户确切 Windows 身份的集成和基本身份验证(后来加入摘要式身份验证)。但是,识别 Windows 身份不再是唯一的选择。您可以利用多个身份验证提供程序,举例来说,内部用户通过 Windows 身份验证登录,而外部用户通过独立、可插入的提供程序来登录。

    MOSS 是基于 ASP.NET 2.0 构建的,而 ASP.NET 2.0 允许使用可插入身份验证提供程序。这样,您就可以使用可配置的目录来存储用户信息,只要存在对应成员数据存储的 ASP.NET 2.0 成员身份提供程序(和可选角色提供程序)。根据存储在对应的成员身份提供程序 machine.config 文件中的节点值,可插入提供程序的凭据可被散列、加密或以纯文本存储。一些成员身份提供程序可用于 MOSS,其中一些包括 LDAP V3 成员身份提供程序(随 MOSS 一同发售),加上 SQL Server™ 成员身份提供程序和随 ASP.NET 2.0 提供的 Active Directory® 成员身份提供程序。

    可实施的成员身份和角色提供程序不仅限于已发售的提供程序。使用 ASP.NET 2.0 成员身份体系结构,可以创建一些使用 Microsoft Access™、Oracle 数据库、XML 文件甚至纯文本文件来存储成员身份的自定义提供程序。自定义身份验证提供程序继承 ASP.NET MembershipProvider 接口,而后者又继承 ProviderBase 类(参见图 1)。


图 1 .NET 成员身份类层次结构

    要随 MOSS 使用 ASP.NET 2.0 身份验证(与 Windows 身份验证对照),有几点建议应该加以考虑。MOSS 和 Office 客户端之间的 Web 服务通讯原本设计为与 Windows 身份一起使用,这给许多用户带来的最明显的优势就是 Microsoft Office 客户端简化的互操作性。

    另外,某些 MOSS 服务(特别是那些与爬网和索引内容相关的),即使在使用可插入提供程序时也必须使用 Windows 帐户。要使用不能识别为 Windows 身份的验证类型来完成此任务,需要创建采用 Windows 身份验证的另外的 MOSS 区域。(本文稍后将讨论区域。)

    如果您拥有基于某种安全机制(例如智能卡)的委托 PKI 基础结构,而该安全机制的公钥或证书是由客户端携带,则通常需要根据实现方法的不同,识别 Windows 身份,以正确接受和授权客户端证书。这可能反而需要创建另外的 MOSS 区域或其他身份验证配置。

2. 基于表单的身份验证和 Web 单一登录

    MOSS 2007 可用的另一个令人兴奋的身份验证机制,就是以 ASP.NET 2.0 为基础的基于表单的身份验证。在 SharePoint 以前的版本中,这只能通过自定义 Internet 服务器应用程序编程接口 (ISAPI) 扩展或利用 IIS 6.0 工具包中的 CustomAuth ISAPI 扩展来实现。而即使有这些解决方案,SharePoint 仍然需要将帐户识别成 Windows 用户身份,这样就限制了基于外围网络的部署。

    基于表单的 MOSS 身份验证利用可插入身份验证和角色提供程序,可提供 Internet 风格的安全机制,该机制不限制客户使用老式的 NT 登录提示。您可以构建一个面向用户需求的自定义登录过程。为进一步保护身份验证过程,表单身份验证 Cookie 和身份验证票证都是加密和防篡改的。

    表单身份提供程序不必驻留本地,实际上可以插入到外部身份管理系统,而该系统转而提供用户凭据的验证功能。此功能被称为 Web 单一登录,它利用 HTTP 模块完成外部身份验证。在此类方案中,您可以在贵组织与业务合作伙伴之间进行身份联合,借此,它们便够使用各自的组织登录名向您所实现的 MOSS 进行验证。

3. 加密 MOSS 应用程序连接字符串

    把重要的连接字符串信息以纯文本保存在 web.config 文件中,是很不好的安全习惯。泄漏的信息可使用户创建到 SQL 数据库服务器的对象实例并操作重要数据。但是,使用固有的 ASP.NET 2.0 功能,您可以利用以下两种可行技术的一种来加密数据:Windows 数据保护 API (DPAPI) 或 RSA 加密。DPAPI 利用 Windows 内置的加密功能,使用 MOSS 服务器计算机密钥来执行加密和解密。RSA 加密可让您使用公钥算法,但会带来额外的日常费用,因为需要适当的容器存放加密密钥。

    对于 MOSS 2007 - 尤其是对于可插入 ASP.NET 2.0 SQL Server 身份验证提供程序 - 您将希望把 <connectionStrings> 节点加密成密文,因为在这里可能发生最严重的安全违规:
<connectionStrings>
<add name="MembershipConnectionString"
connectionString="connectionString"/>
</connectionStrings>


0
相关文章