本文提供了有关常见问题的解答(常见问题解答),以及有关已知问题和常见错误的故障排除指南。
常见问题
问题: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 和其他服务中的新功能。
元数据 FAQ
问题:其他格式会受到影响吗,例如 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。
问题:如何判断标签策略中是否启用了协作编辑? 协作编辑设置的状态由策略引擎返回。 应用可以从策略引擎读取原始字节以判断协作编辑状态。
问题:标签是如何迁移到新位置的?
- 以下逻辑用于确定读取哪个部分并用于读取或写入标签数据。
Action | 功能未启用 | 功能已启用 |
---|---|---|
读取 | custom.xml(未受保护)或 Doc SummaryInfo(受保护)中的标签。 | 如果 labelinfo.xml 中存在标签,则该标签为有效标签。 如果 labelinfo.xml 中没有标签,则 custom.xml 或 Doc SummaryInfo 中的标签为有效标签。 |
写入 | 所有新标签都将写入 custom.xml(未受保护)或 Doc SummaryInfo(受保护)。 | 所有新标签都将写入 labelinfo.xml。 |
文件分析
问题:我可以使用 File 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 不支持直接应用内容标记,包括任何文件上的页眉、页脚或水印。 当标签元数据写入文件时,File SDK 会写入 contentBits 元数据属性以指示已应用保护(如果已配置)。 它不会写入用于指示页眉、页脚或水印是否已应用的属性。 当应用打开该文件时,应由应用评估内容标记配置,并在保存时将其写入文件。
适用于 Android 的 Protection 和 Policy SDK
问题:在 Android 应用中集成 MIP SDK 应使用哪个共享库?
MIP SDK Android 二进制文件包含 libmip_core.so
、libmip_protection_sdk.so
、libmip_upe_sdk.so
和 lipmip_unified.so
。 libmip_unified.so
是推荐使用的库,包含核心、保护和策略的共享库。
合规性
问题:Microsoft Information Protection 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 合规性门户中未发布标签策略。 请按照创建和配置敏感度标签及其策略执行操作,以配置标记策略。
如果已发布标签策略,请确保用户帐户包含在标签策略配置的“发布到”部分的任何用户组中。 更多信息,请参阅创建并发布敏感度标签。
外部用户(包括来宾用户)无法访问其他组织的标签策略。 为了支持这些用户,应实现重试机制。 如果抛出 NoPolicyException
,请将 FileEngineSettings
属性 ProtectionOnlyEngine 设置为 true,然后重试请求。 该 IFileEngine
实例将无法进行标签操作,但仍可执行保护操作。
错误:“System.ComponentModel.Win32Exception: LoadLibrary failed”
问题:在使用 MIP SDK .NET Wrapper 时,为什么会出现以下错误?
System.ComponentModel.Win32Exception: 调用 MIP.Initialize() 时 LoadLibrary 失败:[sdk_wrapper_dotnet.dll] 。
您的应用未安装所需运行时,或未以 Release 模式构建。 有关更多信息,请参阅确保确保应用具有所需的运行时。
错误:“ProxyAuthError exception”
问题:在使用 MIP SDK 时,为什么会出现以下错误?
“ProxyAuthenticatonError: 不支持代理身份验证”
MIP SDK 不支持使用经过身份验证的代理。 要消除此消息,代理管理员应将 Microsoft Purview 信息保护服务终结点设置为绕过代理。 “Office 365 URL 和 IP 地址范围”页面提供了这些终结点的列表。 MIP SDK 要求 *.protection.outlook.com
(第 9 行)和 Azure 信息保护服务终结点(第 73 行)绕过代理身份验证。
错误:使用流输出标记图像文件时出现“未知错误”
问题:尝试通过流对图像文件类型添加或移除标签或保护时,为什么会出现“未知错误”?
使用流输出时,流必须具有读写权限才能修改图像文件的标签或保护。
限制
问题:使用 MIP SDK 时是否存在基于服务的限流?
Rights Management Service(由保护 SDK 或 File SDK 中的保护操作使用)对整个组织的限制为每 10 秒最多 7,500 次请求。 也就是说,如果同一组织中的应用 A 每 10 秒发送 4,000 个请求,应用 B 也发送 4,000 个请求,则两个应用可能都会开始收到 HTTP 429 Too Many Requests
响应。 开发人员在收到这些异常时必须实现退避机制。 MIP SDK 的未来版本将在内部实现此回退期。