自定义 IRM 保护程序

上次修改时间: 2010年4月4日

适用范围: SharePoint Foundation 2010

在 Microsoft SharePoint Foundation 2010 中使用可扩展的信息权限管理 (IRM) 体系结构,可以创建自定义管理权限保护程序,这些保护程序会在用户下载文件时将自定义文件类型转换为权限管理格式,然后在用户上载文件时将这些文件转换回未加密的文件格式以便在文档库中进行存储。

必须在每台前端 Web 服务器上对每个 IRM 保护程序进行注册,并使其对场中的每个文档库均可用。在注册 IRM 保护程序时,应指定保护程序可在其与权限管理版本之间进行转换的文件类型。一个特定的文件类型只能与一个 IRM 保护程序相关联,但给定的 IRM 保护程序可与多个文件类型相关联。

对于要进行权限管理的文件类型,必须安装与此文件类型关联的保护程序,并使用 SharePoint Foundation 对该保护程序进行注册。

如果在文档库上启用 IRM,则为其启用了 IRM 保护程序的所有文件类型都是受权限管理的。

通过为某些文件类型创建自定义 IRM 保护程序,使开发人员能够控制受保护内容、发布许可证 (IL) 和最终用户许可证 (EUL) 在文件的受保护版本内的位置,并能够基于文件类型更改受保护文档的格式。开发人员还可以指定要用作受保护文档的基础的文档模板。例如,假设具有这样一种文件类型,此文件类型在当前客户端应用程序中受权限保护,但在此客户端应用程序的早期版本中不受权限保护。您希望提供可在客户端应用程序的早期版本中打开的常规消息,此消息说明文档内容受权限管理且无法显示。可以构造自定义 IRM 保护程序,这样在保护文档时,此保护程序会生成一个通用"包装"文档,其内部存储了受保护的内容、IL 和 EUL。该包装文档加载到早期版本的客户端应用程序中,显示用于告知用户无法访问权限管理内容的原因的消息。

集成和自治的保护程序

可以创建两类使用 SharePoint Foundation 中的 IRM 框架的 IRM 保护程序:集成的保护程序和自治的保护程序。

集成的保护程序依靠 SharePoint Foundation 来访问 Windows RMS 平台,此平台用于生成文件的受保护版本和移除对权限管理文件的保护。自治的保护程序必须配置和执行整个管理权限过程。自治的保护程序可直接访问 Windows RMS 平台,或使用其他某个权限管理平台。

通常,如果 Windows RMS 提供的发布许可证 (IL) 足以满足您的要求,则创建一个集成的保护程序;反之,则创建一个自治的保护程序,以便您能够构建自己的 IL。

如果希望 SharePoint Foundation 自动创建与受保护的内容关联的 Windows RMS 元数据,请创建一个集成的保护程序。当调用集成的保护程序时,SharePoint Foundation 会创建一个发布许可证 (IL),用于对文档内容以及与 Windows RMS 托管对象关联的其他元数据进行加密和解密。在此情况下,该保护程序用作权限管理文档的文件格式特定的构造函数。集成的保护程序无需了解用户对请求的文件具有哪些权限,也无需了解用于加密文件的密钥。集成的保护程序仅使用为其提供的权限管理信息。若要使用集成的保护程序,则要求具有一个能够查看权限管理内容的 Windows RMS 感知客户端应用程序。

如果希望保护程序能够完全控制对受保护的文件进行权限管理的方式,请创建一个自治的保护程序。自治的保护程序可以完全控制权限管理过程,并可以使用任何权限管理平台。与使用集成的保护程序的过程不同,当 SharePoint Foundation 调用自治的保护程序时,它会传递用户对文档具有的特定权限。基于这些权限,自治的保护程序负责生成文档的密钥并按照正确的格式创建权限管理元数据。

自治的保护程序和客户端应用程序必须使用相同的权限管理平台。

可以在同一 SharePoint Foundation 安装中同时安装集成的和自治的保护程序。但是,一种文件类型只能注册到一种保护程序中。

两类保护程序都必须实现 I_IrmProtector 接口,如以下所述。

I_IrmProtector 接口

每个 IRM 保护程序都必须是实现 I_IrmProtector 接口的 COM 组件。实现此接口可保证保护程序向 SharePoint Foundation 提供管理指定文件类型的权限管理文档时所需的功能,其中包括:

  • 初始化保护程序,包括指定保护程序是集成的还是自治的。

  • 确定文件是否已受保护。

  • 设置正确的语言。

  • 保护文档,包括将适当的权限管理元数据放置在受保护的版本内。

  • 移除对文档的保护,包括向 SharePoint Foundation 发送适当的权限管理元数据。

虽然集成和自治的保护程序都必须实现 I_IrmProtector 接口,但每种保护程序实现接口的方式是不同的,原因是 SharePoint Foundation 会使用该接口的不同方法调用这两种类型。SharePoint Foundation 使用 I_IrmProtector.HrProtectRMS 方法I_IrmProtector.HrUnprotectRMS 方法 方法调用集成的保护程序,同时使用 I_IrmProtector.HrProtect 方法I_IrmProtector.HrUnprotect 方法 方法调用自治的保护程序。这样使 SharePoint Foundation 能够向每种保护程序传递适当的信息:

  • 对于集成的保护程序,此信息包括一个 I_IrmPolicyInfoRMS 类 对象,该对象表示自定义集成 IRM 保护程序可访问的方法和数据,通过访问这些方法和数据可帮助加密和解密权限管理文件。

  • 对于自治的保护程序,此信息包括一个 I_IrmPolicyInfo 类 对象,该对象表示自治的 IRM 保护程序可以访问以便对文件进行权限管理的权限管理元数据。

编译完自定义 IRM 保护程序之后,必须使用 SharePoint Foundation 对其进行注册,以便能够在文档库中使用该保护程序。

有关对 IRM 保护程序进行注册的信息,请参阅如何:注册 IRM 保护程序

请参阅

任务

如何:注册 IRM 保护程序

引用

I_IrmProtector 接口

概念

SharePoint Foundation 中的信息权限管理

SharePoint Foundation 中的 IRM 框架体系结构

IRM 文件处理