1

我们正在开发一个应用程序来使用 MIP SDK(我们当前使用版本 1.6.103)打开和编辑受保护的 PDF 文件。到目前为止,我们能够打开使用不同版本的 Microsoft 保护(包括 MicrosoftIRMServices 版本 1)保护的文件。

我们现在遇到了一位客户的问题。他们将文件保存在 SharePoint 2016 目录中,该目录配置为自动为所有上传的文件添加保护。他们所有的环境都在本地,并使用 AD RMS 服务进行保护。他们在服务器端没有 Azure IP。

当我们下载生成的文件并尝试打开时,我们创建了一个mipns::FileEngine,然后调用CreateFileHandlerAsync()来创建一个 mipns::FileHandler。此调用失败并出现以下 mipns::NetworkError:

NetworkError : Content protected by on prem servers is unsupported., NetworkError.Category=FailureResponseCode, HttpRequest.SanitizedUrl=https://api.aadrm.com/my/v2/enduserlicenses, 

正如错误所暗示的那样,我怀疑问题在于使用了本地保护。我认为它可能会按照 https://docs.microsoft.com/en-us/information-protection/develop/quick-app-adrms#configuring-protection-api-in-c-to-use-的说明解决ad-rms 所以,按照这些说明,我创建了 FileEngine

ProtectionEngine::Settings engineSettings("", authDelegate, "");
engineSettings.SetProtectionCloudEndpointBaseUrl("http://<my server>/_wmcs/licensing");

但到目前为止没有成功,虽然错误已经改变,现在

NetworkError : The protection service is unavailable., NetworkError.Category=FailureResponseCode, HttpRequest.SanitizedUrl=https://<my server>/my/v1/enduserlicenses,

(当然<my server>被本地服务取代)

我走错方向了吗?如果不是,也许我使用了错误的端点?如何按照链接页面中的建议找到要传递给SetProtectionCloudEndpointBaseUrl的端点 URL?

谢谢

4

1 回答 1

0

这可能是由于缺少 MDE 安装或 MDE SRV 记录造成的。您需要验证 AD RMS 的移动设备扩展是否已部署和配置。如果有,您还需要验证 SRV 记录是否适用于您的客户正在使用的任何邮件后缀。例如,如果 RMS 服务位于 RMS.FABRIKAM.COM,但您的客户电子邮件地址是 @Contoso.com,则您需要一个看起来像_rmsdisco._http._tcp.contoso.com的 SRV 记录,然后指向RMS.FABRIKAM.COM 上的服务器。

基本 URL 不用于消费场景。它仅用于发布。也就是说,看起来您已经设置了 _wmcs 端点,但我们只期望 AD RMS 的基础:

ProtectionCloudEndpointBaseUrl = "https://rms.contoso.com"

仅当您在创建文件引擎时不提供 mip::Identity 对象时才需要这样做。如果您确实提供了身份,我们将使用域后缀来查找 DNS 记录并追踪该引荐。

于 2020-09-30T19:30:55.550 回答