IRM 文件处理

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

适用范围: SharePoint Foundation 2010

您可以通过检查权限管理内容的以下两个基本过程,来了解 Microsoft SharePoint Foundation 中的信息权限管理 (IRM) 系统的各种组件如何协同工作以支持文档库中的权限管理内容:

  • 下载受保护的文档

  • 将文档上载回文档库

下列方案旨在让您大致了解 SharePoint Foundation 如何处理权限管理文档。这些方案不提供端到端过程,并且根据您为文档库指定的 IRM 设置,实际过程可能会有所不同。

从 SharePoint Foundation 下载受 IRM 保护的文档

当用户从已启用 IRM 的文档库请求文件时,SharePoint Foundation 会先执行其标准处理过程,如同步文档元数据。如果文档受权限管理,则 SharePoint Foundation 会确定是否已注册与文档的文件类型关联的 IRM 保护程序。如果没有注册,SharePoint Foundation 会向用户下载该文档而不提供权限管理保护。

如果注册了适当的 IRM 保护程序,而且该保护程序是一个集成的保护程序,则 SharePoint Foundation 会为文档生成发布许可证 (IL)。IL 包括:

  • 一个特定于文档的文档密钥。此私钥用于加密权限管理文档中的数据。

  • 可以访问文档的用户及其相应权限的列表。SharePoint Foundation 会将其本身和下载了文档的用户添加到此列表中。

  • 要从中下载此文档的文档库的 GUID。

然后,SharePoint Foundation 会调用 IRM 保护程序以确定文档是否已受权限管理。例如,在将文档上载到文档库之前,文档可能已经在客户端应用程序中应用了权限管理。如果文件已受权限管理,则 SharePoint Foundation 会向用户下载该文档而不提供额外的权限管理保护。

备注

如果将文档库设置为仅接受 SharePoint Foundation 可以进行权限管理的文档,则用户将无法上载 SharePoint Foundation 之外的应用程序应用了权限管理保护的文档。

如果文档需要保护,则 SharePoint Foundation 会调用 IRM 保护程序来创建一个文件流,以表示受 IRM 保护版本的文档:

  • 如果该保护程序是一个集成的保护程序,SharePoint Foundation 将为该 IRM 保护程序提供访问 RMS 加密过程的权限。SharePoint Foundation 还为 IRM 保护程序提供对文档的 IL 以及服务器最终用户许可证 (EUL) 的访问权限。IRM 保护程序包括保护文件中的这两项内容。

  • 如果保护程序是自治保护程序,SharePoint Foundation 将为该 IRM 保护程序提供版权数据和有关文档的其他元数据。然后该自治保护程序必须配置和执行它自己的权限管理过程,以生成请求文件的权限管理版本。自治保护程序可以直接使用 RMS,或使用其他某些权限管理过程来创建受保护文档。

无论在哪一种情况下,只要 IRM 保护程序成功,SharePoint Foundation 都会将受保护的文档下载给用户。如果保护程序无法对文档进行权限管理,则 SharePoint Foundation 会将文档下载给不受权限管理保护的用户。如果 IRM 保护程序遇到重大错误,则 SharePoint Foundation 会取消下载文档。

特别是在 IRM 保护程序返回下列任一错误代码的情况下,SharePoint Foundation 会将文档下载给不受权限管理保护的用户:

  • MSOIPI_STATUS_ALREADY_PROTECTED 该文件已经受 IRM 保护。

  • MSOIPI_STATUS_CANT_PROTECT 保护程序的一般故障。

  • MSOIPI_STATUS_NOT_MY_FILE 指定的文件不是与此 IRM 保护程序关联的文件类型。

这些类型的错误应该是很少见的;例如,SharePoint Foundation 根据文件类型选择适当的保护程序,并在处理过程到达 SharePoint Foundation 调用保护程序以加密文件之际前,调用保护程序来确定文件是否已受权限管理。

创建自定义保护程序的开发人员负责确定何时返回上述错误代码,或保护程序是否应返回这些代码。如果永远不希望提供未加密的文件,则不要对保护程序进行编程以将这些代码返回到 SharePoint Foundation。

有关这些错误代码的详细信息,请参阅 I_IrmProtector.HrProtectRMS 方法I_IrmProtector.HrProtect 方法

将请求的文件下载到用户的计算机上之后,客户端应用程序会通过直接联系保护程序使用的权限管理服务来解密文件,无论保护程序是 RMS 服务器还是其他权限管理服务器。如果使用 RMS,客户端应用程序会为文档请求一个 EUL。如果使用其他权限管理服务,客户端应用程序需要请求对文件的类似权限。

图 1 显示了在用户从文档库请求权限管理文档时发生的一般流程。

图 1. 用户请求权限管理文档时的流程

当用户请求权限管理文档时的流程

将受 IRM 保护的文档上载到 SharePoint Foundation

当用户将受保护文件签入文档库时,SharePoint Foundation 会再次确定是否存在处理文档的文件类型的已注册 IRM 保护程序。如果不存在,SharePoint Foundation 会上载文档,而不执行任何进一步的解密或处理。但是,如果将文档库配置为拒绝无法进行权限管理的项目,SharePoint Foundation 会取消文件上载。

如果 SharePoint Foundation 找到适当的 IRM 保护程序,则 SharePoint Foundation 会调用该保护程序,以生成一个表示不受保护版本的文档的文件流:

  • IRM 保护程序会将 IL 返回到 SharePoint Foundation。SharePoint Foundation 会将在文档 IL 中存储的文档库 GUID 与要将文档上载到的库的 GUID 进行比较。

  • 如果保护程序是一个集成保护程序,则 IRM 保护程序可能会请求 SharePoint Foundation 为其提供对 RMS 解密过程的访问权限。

  • 如果保护程序是一个自治保护程序,则 IRM 保护程序将配置并执行解密过程。它会将文档的文档库 GUID 直接返回到 SharePoint Foundation。然后,SharePoint Foundation 会将由自治保护程序返回的文档库 GUID 与要将文档上载到的库的 GUID 进行比较。

在任一情况下,SharePoint Foundation 都会执行以下操作:

  • 如果文档库 GUID 相匹配,则 IRM 保护程序会成功生成文件流,并且 SharePoint Foundation 会使用该文件流来生成不受保护版本的文档。

    然后,SharePoint Foundation 会执行其标准处理,如同步文档元数据和存储文档。

  • 如果文档库 GUID 不匹配,则 SharePoint Foundation 会取消文档上载。

图 2 显示了在用户签入权限管理文档时发生的一般流程。

图 2. 用户签入权限管理文档时的流程

用户签入权限管理文档

请参阅

任务

如何:注册 IRM 保护程序

概念

SharePoint Foundation 中的信息权限管理

SharePoint Foundation 中的 IRM 框架体系结构

自定义 IRM 保护程序