快速入门:Active Directory Rights Management Server (AD RMS) Protection

本快速入门介绍如何使用 MIP SDK 实现对 Active Directory Rights Management Server (AD RMS) 的支持。

注意

本快速入门中概述的步骤仅适用于 C# 或 C++ 的文件 SDK 和 C++ 的保护 SDK。

先决条件

如果尚未完成,请确保:

服务发现

SDK 使用 UPN 或邮件地址后缀基于通过 FileEngineSettingsProtectionEngineSettings 提供的 mip::Identity 进行服务发现。 它首先在域层次结构中搜索 MDE 的 _rmsdisco 记录。 有关该过程的更多详细信息,请参阅为 AD RMS 移动设备扩展指定 DNS SRV 记录。 如果未找到该 DNS SRV 记录,则默认将 Azure 信息保护服务作为服务位置。

在 C# 中配置文件 SDK 以使用 AD RMS

如果应用程序使用 Active Directory 身份验证库 (ADAL) 和 C# 上的文件 SDK,则需要进行两项小的更改。 必须更新 FileEngineSettings 对象和 AuthenticationContext 构造函数才能使用 AD RMS 和 Active Directory 联合身份验证服务 (ADFS)。

如果已部署移动设备扩展 DNS SRV 记录并计划传入用户主体名称或电子邮件地址,请按照标识使用说明进行操作

更新文件引擎设置以配合使用 AD RMS 和标识

如果 MDE 的 DNS SRV 记录已发布并且 Microsoft.InformationProtection.Identity 已作为引擎设置的一部分提供,则唯一需要进行的代码更改是设置 FileEngineSettings.ProtectionOnlyEngine = true。 必须对此属性进行设置,因为 AD RMS 保护终结点不支持标记(策略)操作。

// Configure FileEngineSettings as protection only engine.
var engineSettings = new FileEngineSettings("", authDelegate, "", "en-US")
{
     // Provide the identity for service discovery.
     Identity = identity,
     // Set ProtectionOnlyEngine to true for AD RMS as labeling isn't supported
     ProtectionOnlyEngine = true
};

更新身份验证委托

如果在 .NET 应用程序中使用 ADAL,则需要更改 Microsoft.InformationProtection.AuthDelegate 实现以禁用权限验证。 通过将 AuthenticationContext 构造函数中的 validateAuthority 设置为 false 来禁用权限验证

AuthenticationContext authContext = new AuthenticationContext(authority, false, tokenCache);

在 C++ 中配置文件 SDK 以使用 AD RMS

如果已部署移动设备扩展 DNS SRV 记录并计划传入用户主体名称或电子邮件地址,请按照标识使用说明进行操作

更新 FileEngine::Settings 以配合使用 AD RMS 与标识

如果 MDE 的 DNS SRV 记录已发布并且在 FileEngine::Settings 中提供了 mip::Identity,那么唯一要执行的操作就是将引擎设置为仅保护引擎。

FileEngine::Settings engineSettings(mip::Identity(mUsername), "");
engineSettings.SetProtectionOnlyEngine = true;

在 C++ 中配置保护 SDK 以使用 AD RMS

如果已部署移动设备扩展 DNS SRV 记录并计划传入用户主体名称或电子邮件地址,请按照标识使用说明进行操作

设置 ProtectionEngine::Settings 以配合使用 AD RMS 与标识

如果移动设备扩展的 DNS SRV 记录已发布,并且在 ProtectionEngine::Settings 中提供了标识,则无需对代码进行额外的更改即可使用 AD RMS。 服务发现将找到 AD RMS 终结点,并使用它执行保护操作。

ProtectionEngine::Settings engineSettings(mip::Identity(mUsername), authDelegate, "");

删除或注释掉标签引用

如果根据其中一个快速入门指南构建应用程序,那么可以注意到应用程序引用了 fileEngine.SensitivityLabelsengine->ListSensitivityLabels(); 形式的标签。 由于应用程序已设置为仅保护,因此必须将这些代码块注释掉或删除,因为运行这些块会导致异常。

后续步骤

完成相应更改以支持 AD RMS 后,应用程序可以使用 AD RMS 服务作为保护提供程序执行任何仅保护操作。