Microsoft 信息保护 (MIP) SDK 常见问题解答及问题
本文提供了有关常见问题的解答(常见问题解答),以及有关已知问题和常见错误的故障排除指南。
常见问题
问题:MIP SDK 支持多少个标签?
- MIP SDK 最多可以处理 500 个保护标签,没有保护的标签没有限制。
问题:MIP SDK 是否支持使用分类标签重新标记 .pfile 类型?
- 否,这是设计造成的,因为 pfiles 是受保护的文件类型。 在分类之前使用 MPIP 文件标签器进行解密。
问题:为什么从 Microsoft Teams 下载受保护的文件无法解密?
- 这是 MIP SDK 不支持版本中的已知问题。 升级到最新版本的 MIP SDK。
问题:当来自不同租户的多个标签应用于一个文件时,如何检查应用了哪些标签?
- 在每个租户的用户上下文中查询 GetLabel。
问题:为什么我的 Web 应用程序无法使用“InternalError: 'KeyStoreWin32::OpenKey failure: NCryptOpenKey:-2147024894'”进行初始化?
- 在应用初始化期间,策略 SDK 可能无法加载配置文件。 在 Web 应用的环境变量设置中设置 WEBSITE_LOAD_USER_PROFILE=1,然后重启应用程序。
- 名称:WEBSITE_LOAD_USER_PROFILE
- 值:1
问题:配置 OnDiskEncrypted 缓存时,应用程序为何失败并出现“KeyStoreWin32::OpenKey failure: NCryptOpenKey:-2146893788”?
- 当登陆用户资料不可用时,Windows 可能会创建临时用户资料。 从 Windows 注册表中读取 OnDiskEncrypted 缓存链接与此临时配置文件会导致 MIP SDK 日志中的 OpenKey 失败,并被 Windows 操作系统事件日志捕获,其事件 ID 为 1511 和 1515。 若要解决此问题,请与管理员联系以修复创建临时配置文件时出现的问题。
元数据存储更改
我们宣布我们将对 Office 文件(Word、Excel、PowerPoint)的标签元数据存储位置进行更改,以支持 Office 365、SharePoint Online 和其他服务中的新功能。
元数据常见问题解答
问题:其他格式是否会受到影响,例如 PDF?
- 不,只对 Office 文件有影响,尤其是 Word、Excel 和 PowerPoint 文件。
问题:是否需要特定版本的 MIP SDK?
- MIP SDK 1.7 级更高版本完全兼容。
问:是否有使用此存储位置所需的特定版本的 Office 客户端?
- 2021 年 9 月之后发布的所有Microsoft 365 应用版客户端都支持此新元数据位置。 在租户管理员启用受保护的共同创作功能之前,不会使用新的存储位置。
问:现有元数据是否存储为自定义属性, custom.xml 是否保持最新?
- 否。 首次在启用新存储位置后保存文档时,标签元数据将移动到新位置。 通过
LabelingOptions.ExtendedProperties
保留写入的元数据保留在 custom.xml中。
问:是否可以在没有 MIP SDK 的情况下读取标签元数据?
- 是的,但你需要实现自己的代码来分析文件并提取信息。
问题:目前,通过从文件中提取键/值对字符串,可以轻松“读取”标签。 是否仍以这种方式读取元数据?
- 可行,仍可在 Office 文件 XML 中读取元数据。 应用程序必须从策略文件读取共同创作设置,才能知道已启用新功能集。 此设置定义标签数据读取/写入位置(custom.xml与labelinfo.xml)。 若要了解执行详细信息,请参阅 MS-OFFCRYPTO:LabelInfo 与自定义文档属性 | Microsoft Docs。
问:如何实现确定是否在标签策略中启用共同创作? 共同创作设置的状态从策略引擎返回。 应用程序可以从策略引擎读取原始字节,以确定共同创作状态。
问:标签如何迁移到新位置?
- 以下逻辑用于确定读取哪个部分并用于读取或写入标签数据。
操作 | 功能未启用 | 功能已启用 |
---|---|---|
读取 | custom.xml(未受保护)或 Doc SummaryInfo(受保护)中的标签。 | 如果标签存在于labelinfo.xml中,则它是有效标签。 如果labelinfo.xml中没有标签,则 custom.xml 或 Doc SummaryInfo 中的标签是有效标签。 |
写 | 所有新标签都将写入 custom.xml(未受保护)或 Doc SummaryInfo(受保护)。 | 所有新标签都将写入 labelinfo.xml。 |
文件分析
问题:能否使用文件 SDK 写入当前正在读取的同一个文件吗?
MIP SDK 不支持同时读取和写入同一文件。 任何标记的文件都 会导致输入文件的副本 ,并应用了标签操作。 应用程序必须使用标记的文件替换原始文件。
SDK 字符串处理
问题:SDK 如何处理字符串,我应该在我的代码中使用哪种字符串类型?
此 SDK 旨在跨平台使用,并使用 UTF-8(Unicode 转换格式 - 8 位)进行字符串处理。 具体的操作指南取决于所使用的平台:
平台 | 指南 |
---|---|
Windows 原生平台 | 对于 C++ SDK 客户端,使用 C++ 标准库类型 std::string 将字符串传入/传出 API 函数。 MIP SDK 在内部管理与 UTF-8 的转换。 从 API 返回 std::string 时,如果转换的是字符串,则必须要求使用 UTF-8 编码并相应管理。 在某些情况下,字符串作为 uint8_t 矢量 [如发布许可证 (PL)] 的一部分返回,但应视为不透明的 Blob。有关详细信息和示例,请参阅:
|
.NET | 对于 .NET SDK 客户端,所有字符串都使用默认的 UTF-16 编码,无需进行特殊转换。 MIP SDK 在内部管理与 UTF-16 的转换。 |
其他平台 | MIP SDK 支持的其他所有平台都原生支持 UTF-8。 |
内容标记
问题:MIP SDK 是否支持内容标记?
MIP SDK 不支持直接应用内容标记,包括任何文件上的页眉、页脚或水印。 将标签元数据写入文件时,文件 SDK 将写入 contentBits 元数据属性以指示已应用保护(如果已配置)。 它不会写入指示已应用页眉、页脚或水印的属性。 在应用程序中打开该文件时,应用程序应评估内容标记配置,并在保存时写入文件。
Android 上的保护和策略 SDK
问:应使用哪个共享库将 MIP SDK 集成到 Android 应用程序中?
MIP SDK Android 二进制文件包括libmip_core.so
和 libmip_protection_sdk.so
libmip_upe_sdk.so
lipmip_unified.so
。 libmip_unified.so
是包含核心、保护和策略共享库的建议库。
合规性
问:Microsoft信息保护 SDK 联邦信息处理标准(FIPS)140-2 是否合规?
请参阅 FIPS 140-2 验证。
问题和错误参考
错误:“不支持的文件格式”
问题:尝试保护或标记 PDF 文件时,为什么会遇到以下错误?
不支持的文件格式
此异常导致尝试保护或标记经过数字签名或密码保护的 PDF 文件。 有关保护和标记 PDF 文件的详细信息,请参阅 Microsoft 信息保护新增对 PDF 加密的支持。
错误:“NoPolicyException:标签策略不包含数据”
问题:尝试通过 MIP SDK 读取标签或列表标签时,为什么会遇到以下错误?
NoPolicyException:标签策略不包含数据、CorrelationId=GUID、CorrelationId.Description=PolicyProfile、NoPolicyError.Category=SyncFile、NoPolicyError.Category=SyncFile
此错误表示标签策略未在Microsoft Purview 合规门户中发布。 请按照创建和配置敏感度标签及其策略执行操作,以配置标记策略。
如果已发布标记策略,请确保用户帐户包含在标签策略配置的发布到部分的任何组中。 有关详细信息,请查看 “创建和发布敏感度标签”。
外部用户(包括来宾用户)无法访问其他组织的标签策略。 若要容纳这些用户,请实现重试机制。 如果引发 a NoPolicyException
,请将 FileEngineSettings
属性 ProtectionOnlyEngine 设置为 true,然后重试请求。 标记操作将不适用于该 IFileEngine
实例,但保护操作将可用。
错误:“System.ComponentModel.Win32Exception: LoadLibrary failed”
问题:使用 MIP SDK .NET 包装器时,为什么会遇到以下错误?
System.ComponentModel.Win32Exception: LoadLibrary failed for: [sdk_wrapper_dotnet.dll] when calling MIP.Initialize().
应用程序没有所需的运行时,或者未生成为 Release。 有关更多信息,请参阅确保确保应用具有所需的运行时。
错误:“ProxyAuthError exception”
问题:使用 MIP SDK 时,为什么会遇到以下错误?
“ProxyAuthenticatonError: 不支持代理身份验证”
MIP SDK 不支持使用经过身份验证的代理。 要消除此消息,代理管理员应将 Microsoft Purview 信息保护服务终结点设置为绕过代理。 “Office 365 URL 和 IP 地址范围”页面提供了这些终结点的列表。 MIP SDK 要求 *.protection.outlook.com
(第 9 行)和 Azure 信息保护服务终结点(第 73 行)绕过代理身份验证。
错误:使用流输出标记图像文件时出现“未知错误”
问题:尝试使用流输出为图像文件类型添加或从中移除标签或保护时,为何会收到“未知错误”?
使用流输出时,流必须具有读写权限才能修改图像文件的标签或保护。
问: 使用 MIP SDK 时是否有基于服务的限制?
保护 SDK 使用的保护服务或文件 SDK 中的保护操作,对于整个组织而言,每个请求数限制为 7,500 个。 也就是说,如果应用程序 A 每 10 秒生成 4,000 个请求,并且同一组织中的应用程序 B 每 10 秒生成 4,000 个请求,则这两个应用程序都可能开始接收 HTTP 429 Too Many Requests
响应。 当收到这些异常时,开发人员必须实现回退期。