Microsoft 信息保护SDK - 服务发现

概述

Microsoft 信息保护 SDK 支持 Azure 商业云、主权云/政府云以及 AD RMS (本地 Active Directory Rights Management Service) 。 可以使用不同的机制来发现 SDK 应该使用哪个终结点。 本文介绍发现机制以及如何使用每种机制。

使用 mip::Identity 发现服务

创建三种引擎类型之一时,MIP SDK 要求开发人员在引擎设置对象中指定 或 mip::Identitymip::Cloud 。 以文件 SDK 为例:

FileEngine::Settings engineSettings(mip::Identity(mUsername), 
													mAuthDelegate, 
													"", 
													"en-US", 
													false);

FileEngine::Settings对象接受 mip::Identity 作为构造函数的第一个参数。 首先使用通过 提供的 UPN 或电子邮件后缀来确定企业是否具有任何应该使用而不是 Azure (AD RMS) Active Directory Rights mip::Identity Management Service) 群集。 通过尝试解析从 获取的域后缀下的 _rmsdisco._http._tcp DNS SRV 记录,可完成此操作 。 如果此 SRV 记录的名称解析失败,则 SDK 默认为商业云。

找到 AD RMS 群集时, mip::FileEngine::FileEngineSettings 必须将 属性 IsProtectionOnlyEngine 设置为 true。 策略 SDK 不能用于与 AD RMS 发布过程 (保留自己的密钥) 。

例如,如果 mip::IdentityBob@contoso.com ,则 SDK 使用邮件地址后缀 mip::Identity 为 SRV 记录生成 DNS 查询。 如果找到 Contoso (_rmsdisco._http._tcp.contoso.com) 的 AD RMS 移动设备扩展 (MDE) SRV 记录,SDK 将尝试连接到 SRV 记录引用的服务。 如果找不到 Contoso 记录,SDK 将默认为 位于 的商业终结点 https://api.aadrm.com 。 有关 AD RMS 配置和 DNS 注册的其他详细信息,请查看 AD RMS MDE 文档

使用 mip::Cloud 发现服务

如果在创建引擎时不知道用户的标识,或者客户位于不支持隐式服务发现主权云中,则枚举可用于显式告诉 SDK 要使用哪个云。 mip::Cloud

FileEngine::Settings engineSettings("engineGUID",
                        				mAuthDelegate,
				                        "",
				                        "en-US",
				                        false);
engineSettings.SetCloud(mip::Cloud::US_GCC); // Tell engine to use US_GCC

上面的示例传递了一些唯一的引擎 GUID 而不是 ,并使用 设置对象上的 方法告知 SDK 使用美国政府计算云执行策略和保护 mip::IdentitySetCloud() 功能。 云的明显设置适用于文件、保护和策略 SDK。

使用显式终结点替代服务发现

应用程序设置服务终结点的最后一种最不常见的方法就是使用下列 API 之一替代服务基 URL。

SDK API 用途
文件 SetProtectionCloudEndpointBaseUrl () 设置引擎使用的保护终结点。
文件 SetPolicyCloudEndpointBaseUrl () 设置引擎使用的策略终结点。
策略 SetCloudEndpointBaseUrl () 设置引擎使用的策略终结点。
保护 SetCloudEndpointBaseUrl () 设置引擎使用的保护终结点。

可以在该 SDK 的 relevent engine 设置对象中的引擎设置对象上设置每个 。

受保护的内容使用

当 MIP SDK 使用受保护的内容时,将基于存储在受保护文档中的许可终结点执行服务发现。 应用程序仍必须创建文件或保护引擎,以访问其自己的标识。 创建 mip::FileHandler 对象后,SDK 将分析许可证信息并连接到相应的终结点。 如果需要身份验证,可能会提示用户进行身份验证。