本快速入门介绍如何使用 MIP SDK 实现对 Active Directory Rights Management Server(AD RMS)的支持。
注释
本快速入门中概述的步骤仅适用于 C# 或 C++ 的文件 SDK 和 C++ 的保护 SDK。
先决条件
如果尚未这样做,请确保:
- 请先完成 快速入门:客户端应用程序初始化(C++),以构建一个入门级 Visual Studio 解决方案。
- 完整 快速入门:列出敏感度标签(C++) 或 快速入门:列出敏感度标签(C#)
- 使用 移动设备扩展部署 AD RMS。
- (可选)确保发布 AD RMS MDE 的 DNS SRV 记录 。
服务发现
SDK 使用 UPN 或邮件地址后缀基于通过 FileEngineSettings
或 ProtectionEngineSettings
提供的 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.SensitivityLabels
或engine->ListSensitivityLabels();
的形式出现。 由于应用程序已设置为仅保护,因此必须注释掉或删除这些代码块,因为运行它们将导致异常。
后续步骤
现在,你已进行了更改以支持 AD RMS,应用程序可以使用 AD RMS 服务作为保护提供程序来执行任何仅限保护的操作。