快速入门:Active Directory 权限管理服务器 (AD RMS) 保护

本快速入门介绍了如何使用 MIP SDK 实现对 Active Directory 权限管理服务器 (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 记录已发布,并且 mip::Identity 已在 FileEngine::Settings 中提供,那么唯一需要执行的操作是,将引擎设置为仅保护引擎。

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 服务用作保护提供程序,执行任何仅保护操作。