Microsoft 信息保护 (MIP) 软件开发工具包 (SDK) 版本发布历史记录和支持策略

服务

下一个正式发布 (GA) 版本发布后,每个 GA 版本的受支持时间为一年。 文档中可能不包含有关不受支持版本的信息。 修复程序和新功能仅适用于最新的 GA 版本。

不应在生产环境中部署预览版本。 相反,请使用最新的预览版本来测试下一个 GA 版本中即将提供的新功能或修复程序。 仅支持最新的预览版本。

版本历史记录

使用以下信息查看受支持版本中的新增内容或发生更改的内容。 最新版本会最先列出。

主要版本的 NuGet 包在 NuGet 中保持活动状态。 Microsoft 下载中心仅维护每个主要版本的最新版本。 1.4 之前的版本不可用。

注意

有关技术支持,请访问 Stack Overflow Microsoft 信息保护论坛,或者向 Microsoft 支持部门创建一个支持案例。

版本 链接 Status 终止支持
1.14 https://aka.ms/mipsdkbins 支持 待定
1.13 https://aka.ms/mipsdkbins113 支持 2024 年 10 月 27 日
1.12 https://aka.ms/mipsdkbins112 支持不足 2024 年 3 月 17 日
1.11 https://aka.ms/mipsdkbins111 支持不足 2023 年 6 月 9 日
1.10 https://aka.ms/mipsdkbins110 支持不足 2022 年 11 月 17 日
1.9 https://aka.ms/mipsdkbins19 支持不足 2022 年 8 月 23 日
1.8 https://aka.ms/mipsdkbins18 支持不足 2022 年 4 月 29 日
1.7 https://aka.ms/mipsdkbins17 支持不足 2022 年 1 月 14 日
1.6 https://aka.ms/mipsdkbins16 支持不足 2021 年 9 月 23 日
1.5 https://aka.ms/mipsdkbins15 支持不足 2021 年 4 月 16 日
1.4 https://aka.ms/mipsdkbins14 支持不足 2021 年 3 月 2 日

版本 1.14.128

发布日期: 2024 年 2 月 27 日

文件 SDK

  • 修复了使用 MSG 文件时使用 unicode 字符的 bug。
  • 修复了 MSG 文件中未正确显示朝鲜文字符的问题。
  • 修复了在未终止 null 时流未正确对齐的 bug。

保护 SDK

  • 添加了对 UTF16 编码的 JSON 预授权的支持。
  • 为过期的许可添加了检查,默认值FlightingFeature::PreLicenseValidityCheck为 true。
  • 更新了 EUL 和预授权,以公开标签名称和标签说明。

策略 SDK

  • 更新了中国云的策略同步 URL。

对于从 AD RMS 迁移到 RMS 的旧租户,汇报

  • 修复了引发错误的问题 LoadUserCert
  • 修复了导致脱机发布许可证损坏的问题,无法将其用于解密内容。
  • 修复了保护 SDK 不接受旧租户许可的 bug。

平台和依赖项更新

  • 已将 URI 分析程序更新为 0.9.7。
  • 已将 SQLite3 更新为 3.45.1。
  • 已将 Libgsf 更新为 1.14.52。

重大更改

  • 修复了配置文件的路径。applicationPath/mipmip_config.jsonapplicationPath/mip/mip_config.json 使用 配置文件 在日志文件中屏蔽 PII 的应用程序必须更新文件位置。

版本 1.13.209

发布日期: 2024 年 2 月 27 日

文件 SDK

  • 修复了使用 MSG 文件时使用 unicode 字符的 bug。
  • 修复了 MSG 文件中未正确显示朝鲜文字符的问题。
  • 修复了在未终止 null 时流未正确对齐的 bug。

策略 SDK

  • 更新了中国云的策略同步 URL。

保护 SDK

  • 修复了在没有所有者电子邮件的情况下缓存许可证的问题。
  • 添加了对 UTF16 编码的 JSON 预授权的支持。
  • 为过期的许可添加了检查,默认值FlightingFeature::PreLicenseValidityCheck为 true。
  • 更新了最终用户许可证(EULS)和许可,以公开标签名称和标签说明。

对于从 Active Directory Rights Management Service(AD RMS)迁移到 Rights Management Service(RMS)的旧租户,汇报

  • 修复了引发错误的问题 LoadUserCert
  • 修复了导致脱机发布许可证损坏的问题,无法将其用于解密内容。
  • 修复了保护 SDK 不接受旧租户许可的 bug。

平台和依赖项更新

  • 已将 OpenSSL 从 1.1.1-r 更新为 1.1.1-w。
  • 已将 URI 分析程序更新为 0.9.7。
  • 已将 SQLite3 更新为 3.45.1。
  • 已将 Libgsf 更新为 1.14.52。

重大更改

  • 修复了配置文件的路径。applicationPath/mipmip_config.jsonapplicationPath/mip/mip_config.json 使用 配置文件 在日志文件中屏蔽个人身份信息(PII)的应用程序必须更新文件位置。

版本 1.14.108

发布日期: 2023 年 10 月 27 日

文件 SDK

  • 修复了 SharePoint Online (SPO) 加密的文件.doc无效元数据的 bug。
  • 修复了以下问题:标记签名办公室和 PDF 文件使签名无效,并且无法与某些编辑器打开。
  • 修复了使用消息传递应用程序编程接口(MAPI)将某些文件转换为.msg格式时,构造.msg文件失败的 bug。
  • 修复了 MIP 文件 SDK 示例中的 bug,其中在发生故障时未删除损坏的输出文件。
  • 修复了解密 PDF 文件未删除所有标签元数据的问题。
  • 修复了使用空正文加密.msg文件引发异常的 bug。
  • 修复了.pdf以注释开头的文件作为 .pfiles 而不是本机保护.pdf文件的 bug。
  • 修复了使用相同标签更新非活动标签时引发异常的问题。
  • 尝试在仅保护文件引擎上使用策略操作时添加了异常。

策略 SDK

  • 将策略服务 URL 更改为面向 DoD、GCC-High 和中国主权云的全球终结点。

保护 SDK

  • 修复了以下 bug:解密或检查.msg文件时,非 RMS 保护的附件未引发错误。
  • 修复了以下 bug:未缓存 1 天以下的 EUL。
  • 添加了在使用模板保护时保留加密的应用程序数据的支持。
  • 添加了对拉取序列化模板数据(Windows/Linux/macOS)的支持。
    • 启用 using:GetTemplates设置::SetFetchSerializedTemplates。
    • 使用 TemplateDescriptor::GetSerializedTemplate()进行检索。
  • 修复了用户证书存储未加密的 bug。
  • 修复了发布和使用之间未一致提供已签名的应用数据的 bug。

平台和依赖项更新

  • 已升级到 Open SSL 3.0 以符合 FIPS。
  • 修复了删除某些审核事件的问题。
  • 公开了一个标志,用于控制 1DS 缓存清理的最大关闭计时器。
  • 添加了对日志文件中掩码 PII 的支持。 默认情况下,不会屏蔽 PII。
    • 在 mip_config.json中将 AllowPii 设置为 false,以使用 配置文件屏蔽 PII。 配置文件位于 mipConfiguration-GetPath>()/mip。
  • 添加了对默认情况下办公室文件的 CBC 加密的支持。
  • 修复了有关资源位置路径的 Android 异常。

重大更改

  • 已签名办公室文件和已签名 PDF 文件的错误代码已从 Mip::FileIOError 更改为 Mip::NotSupportedError。
  • 默认情况下,审核事件属性存储 PII 类型而不是 None 类型。 需要 PII 为 None 的自定义审核委托需要更新。
  • 签名的应用数据在发布期间返回受 DKE 保护的文档的额外条目。
  • 默认情况下,办公室文件使用 CBC 加密。 若要还原此项,请将 FlightingFeature::UseCbcFor办公室FileEncryption 设置为 false。

版本 1.13.187

发布日期: 2023 年 8 月 15 日

缺陷修复

  • MIP SDK 现在隐藏 Linux 上静态链接的 OpenSSL 的符号。
  • 修复了以下 bug:如果未设置旧算法标志,则非办公室复合文件正在使用 AES128-ECB。 这些文件应使用 AES256-CBC 并忽略旧算法标志。
  • 将审核事件的优先级提高到最高级别,确保审核事件更频繁地提交到审核终结点。

版本 1.13.182

发布日期: 2023 年 7 月 27 日

缺陷修复

  • 修复了在使用非 RMS 技术保护附件时从 MSG 文件中删除保护的问题。 引发警告而不是异常。

版本 1.13.176

发布日期: 2023 年 6 月 10 日

缺陷修复

  • 修复了在磁盘空间不足的情况下 CommitAsync() 无法返回的问题。
  • 修复了从 SharePoint 下载文件时,为 xlsb 文件创建 FileHandler 失败的问题。

平台和依赖项更新

  • 添加了对 Ubuntu 22.04 的支持。
  • 添加了对 Debian 11 的支持。
  • 添加了对 RedHat Enterprise Linux 9 的支持。
  • 取消了对 Ubuntu 18.04 的支持。
  • 删除了对 Debian 9 的支持。

版本 1.13.161

发布日期: 2023 年 3 月 28 日

缺陷修复

  • 修复了 .NET NuGet 包上的签名问题。
  • 修复了脱机发布设置缺失的问题 ProtectionProfile

版本 1.13.158

发布日期: 2023 年 3 月 17 日

文件 SDK

  • 添加了一个功能标志,使 MIP SDK 能够在密码块链接模式下发布办公室文件和电子邮件。
    • 通过 MipConfiguration.FeatureSettingsOverride(). 设置外部测试功能UseCBCForOfficeFileEncryption
  • 修复了使用密码块链(CBC)模式保护办公室文件和电子邮件的问题。 MIP SDK 现在可以使用由办公室生成的 CBC 模式保护内容。

保护 SDK

  • 添加了对保护 SDK 中脱机发布的预览支持。
    • 可以通过在 C++ 和 .NET 中设置为ProtectionProfileSettings.OfflinePublishingtrue启用脱机保护。

重大更改

  • PublishingSettings 对于重新发布,需要序列化的发布许可证或 ProtectionHandler 构造函数中的许可证,而不是在构造后设置任一/两者。
  • 已删除 SetPublishingLicenseForRepublishSetProtectionHandlerForRepublish
  • ProtectionDescriptorBuilder 使用 SetLabelInfo 而不是 SetLabelId
  • Insert 方法传入 mip::StorageDelegateIStorageDelegate 替换为 InsertOrReplace.

关键更新

MIP SDK 1.13 引入了对使用受 Word、Excel、PowerPoint、Outlook、Exchange Online、SharePoint Online 和 MIP SDK 启用的应用程序(选择加入 CBC 发布)生成的 AES256-CBC 保护的文件和电子邮件的支持。 如果应用程序使用文件 SDK 来使用这些格式中的任何一种,则必须将应用程序更新为 MIP SDK 1.13。 在 2023 年下半年,默认情况下,Microsoft 365 应用版、Exchange Online 和 SharePoint Online 开始使用 AES256-CBC 进行保护。 未更新的应用程序将无法正确解密文件和电子邮件。

MIP SDK 1.13 继续在电子编解码器(ECB)模式下使用 AES128 发布办公室文档和电子邮件。 默认情况下,MIP SDK 1.14 启用 AES256-CBC 发布。 如果想要提前测试 CBC 发布,请通过 < a0MipConfiguration.FeatureSettingsOverride()/> 启用UseCBCForOfficeFileEncryption功能标志。

无法更新到 MIP SDK 1.13 的应用程序可能开始遇到异常,具体细节如下: Something bad happened: AESCryptoWriter: Failed to transform final block

版本 1.12.101

发布日期: 2022 年 11 月 18 日

文件 SDK

  • 修复了以下问题:在标签名称中包含特殊字符可能会导致 Microsoft Outlook 无法打开邮件。
  • 修复了删除非活动标签保护时的 bug。
  • 修复了以下 bug:更改启用了共同身份验证的标签权限生成的受保护文档无法打开。
  • 已将 libgsf 升级到 1.14.50,将 LibXML2 升级到 2.9.14。
  • 已升级的极端内存配置文件 (XMP) 以使用版本 2.4.7

策略 SDK

  • 修复了无效元数据异常的 ComputeActionsbug。

保护 SDK

  • 添加了用于从 TenantInformation中检索 Intranet 和 Extranet URL 的访问器。
  • 公开了用于获取委派许可证的 C API。
  • 修复了删除子标签时父标签元数据不一致的 bug。
  • 修复了 的 CreateFromLicenseType身份验证缓存 bug。
  • 修复了在调用期间 GetTemplatesAsync() 清理引擎会导致崩溃的问题。
  • 添加了 GetLicenseRightsData 从发布许可证获取用户/objectId/puid 和权限。
  • 修复了以下 bug:如果没有描述符,则无法将描述符标记添加到许可证。
  • 修复了 Linux 上的 .NET 崩溃。
  • 修复了桌面空间问题;当 MIP 在保护内容时磁盘空间不足时,现在将报告错误。
  • 已将 OpenSSL 依赖项升级到 1.1.1-r.1。

平台和依赖项更新

  • 修复了未一致处理云的 bug。
  • 添加了对脱机发布预览功能的支持。
  • 修复了一个 bug,其中包装器缺少主权云方案的遥测云。
  • 从调试版本的审核遥测中删除了 PII。

重大更改

  • 如果两者均为usersWithDefaultRightsadditionalUsersAndRights空,CreateFromLicenseType则引发一个 BadInputError
  • 在类中添加了新的方法和GetLicenseRightsDataGetLicenseRightsDataAsyncProtectionEngine

版本 1.12.61

发布日期: 2022 年 6 月 9 日

文件 SDK

  • 文件 SDK 现在支持通过 FileEngineSettings.DataBoundary.
  • 修复了 GetCodePageMsgInspectorbug。
  • 修复了 BodyType 始终返回 TXTMsgInspectorbug
  • 修复了 Java 包装器中的 bug,其中使用 UserRoles threw java.util.Collections$UnmodifiableCollection 无法强制转换为 java.util.List 异常。
  • 修复了使用 2GB GetDecryptedTemporaryStreamAsync()解密文本文件>时出现 bug。

策略 SDK

  • 策略 SDK 现在支持通过 PolicyEngineSettings.DataBoundary.
  • 修复了某些条件策略更改导致崩溃的 bug。
  • 修复了以下问题:在应筛选时未筛选具有 DKE 保护的仅限加密标签的问题。

保护 SDK

  • 预览:添加了对脱机保护的支持。
    • 创建时,通过将设置为 ProtectionProfile.OfflinePublishing true ProtectionProfile启用脱机保护。
    • 缓存模板需要设置 ProtectionEngineSettings.SetTemplateRefreshArgs(std::chrono::hours) (C++) 或 ProtectionEngineSettings.TemplateRefreshArgs (.NET) 才能启用保护模板缓存。
  • 保护 SDK 现在支持通过 ProtectionEngineSettings.DataBoundary

重大更改

  • FileHandler.SetLabel() API 不再支持 rpmsg 文件作为输入。
  • 将纯文本 MSG 文件传递到 MsgInspector NotSupportedError 中 的结果
  • MsgInpector不再尝试解密属于 message.rpmsg 文件的附件
  • MsgInpector如果 message.rpmsg 文件具有 MSG 附件,则返回功能齐全的 MSG 文件。 可以使用 API 解密 FileHandler.RemoveProtection 这些 MSG 文件。
  • TelemetryDelegateAuditDelegateWriteEvent 方法现在需要第二个参数。 EventContextEventContext 类公开有关事件的目标云和数据边界的信息。

平台和依赖项更新

  • 添加了对所有三个 SDK 的支持,用于设置欧盟数据边界。
    • 当设置为欧盟时 DataBoundary ,所有遥测和审核事件将直接流向欧盟区域。
    • 设置为 DataBoundary 任何其他区域会导致将数据发送到最近的服务入口点。
  • 已将 libxml2 更新为 2.9.13。
  • 修复了特定于 Android 的崩溃。
  • 修复了 SDK 不完全遵循日志级别的问题

版本 1.11.96

发布日期: 2022 年 7 月 20 日

文件 SDK

  • 修复了GetDecryptedTemporaryStream大型文件类型的 MemoryStream bug
  • 修复了导致 PDF 加密期间因堆栈溢出崩溃而导致数据丢失的 bug
    • 使用 OptimizePdfMemory时,如果 /Info 是 ObjStm 具有内部间接对象,则返回而不是 PDFPARSER_ERROR_FORMAT 堆栈溢出
  • 修复了支持 MIP 库未在 Java 中加载的 bug
  • 修复了当扩展名具有尾随 null 终止符时 rpmsg ,具有受保护 MSG 文件附件的 MSG 文件将遇到损坏的 bug
  • 修复了 MSG 文件中带有链接附件的崩溃
  • 修复了以下 bug:使用适用于 Windows 的 Azure 信息保护 (AIP) 统一客户端应用无法正确遵循标签应用程序序列
  • 修复了以下 bug RemoveProtection :引发 LabelDisabledError 异常,指出指定了非活动标签
  • 修复了在输入文件受 templateID 保护时引发无效元数据异常的 bug DeleteLabel

策略 SDK

  • 修复了在调用期间 OnPolicyChanged 由于本机映射与托管映射不匹配而导致策略更改导致崩溃的问题

平台和依赖项更改

  • 修复了在使用 C# 或 Java 接口时可能无法发送遥测和审核数据的问题
  • 修复了未一致地处理具有相同基 URL 的云的 bug
  • 将 Adobe XMP 版本更新为 6.0.0,并在 2.1.0 storeAtts() 函数中推送了针对外籍漏洞的安全更新
  • .NET 公开的 EnableAuditAndTelemetryForSovereignClouds 标志
  • 修复了执行 vtable 安全性检查的控制流完整性导致的崩溃
    • 禁用了这些检查,因为 Android 不支持跨库 vtable 检查
  • 修复了 Windows 加密委托中的 bug,以便在免费漏洞后使用。 仅适用于在 Windows 上设置 EnableFipsValidatedCryptography 的应用程序
    • hashObject 在句柄之前清理向量,并在析构函数中清理句柄后释放后导致使用 BcryptData

版本 1.11.64

发布日期:2022 年 1 月 12 日

文件 SDK

  • 修复了 pfile 包装的 MSG 文件中使用不正确的内容格式的 bug。
  • 修复了 Inspector 类导致 rpmsg 文件崩溃的 bug。
  • 修复了以下 bug:SDK 无法正确压缩超过 4GB 的文件,这可能导致损坏。

保护 SDK

  • 修复了与在 iOS 上追逐 AD RMS 的域名系统(DNS)记录相关的问题。

平台和依赖项更新

  • 更新了 Java 示例应用中的 log4j。
  • 将 Android 上的 arm64 ABI 重命名为 arm64-v8a

版本 1.11.53

发布日期:2021 年 11 月 17 日

文件 SDK

  • 修复了以下 bug:mip::FileHandler 中的 IsModified() 针对包含受保护附件的纯文本 .MSG 文件返回 false 而不是 true。
  • 修复了解决元数据中的 XML 格式设置问题时出现的 bug,这些问题在某些情况下中断了标签,且没有保护。

策略 SDK

  • 引入了可防止策略同步中发生死锁的改进。

重大更改

  • 以前,当为“不转发”或“仅加密”和文件保护操作配置标签时,MIP SDK 不会在文件内容类型的标签列表中显示标签。

    • SDK 已更新以修复此问题。 在配置标签以应用于这两种内容类型的任一情况下,标签都不会进行筛选。
    • 此更改不会影响保护操作为“仅加密”或“不转发”的标签。
    • 最后,它不会影响要用于操作是预定义或用户定义的保护的文件的标签。
  • 更新了现有异常,以便更好地处理特定场景。 以下内容之前显示为 NetworkError::Category::FailureResponseCode

    • NetworkError::Category::ServiceUnavailable
      • 新的异常类别(NetworkError 异常)。
      • 当依赖服务不可用时返回。
      • 服务返回 503
    • NetworkError::Category::Throttled
      • 异常:NetworkError
      • 当向依赖服务发出过多请求时返回。
      • 服务返回 429

平台和依赖项更新

  • SDK 依赖项更新到了最新版本
  • 所有 MIP SDK 二进制文件都更新为使用 libxml2 静态库和适用于 Android 和 Windows 的 libgsf 动态库版本 2.9.12。
  • 引入了对 Linux 的代理支持。 下面是如何设置代理的示例。
export HTTP_PROXY="http://10.10.10.10:8080"

版本 1.10.115

发布日期:2022 年 2 月 25 日

  • 修复了 pfile 包装的 MSG 文件中使用不正确的内容格式的 bug。
  • 修复了 Inspector 类导致 rpmsg 文件崩溃的 bug。
  • 修复了以下 bug:SDK 无法正确压缩超过 4GB 的文件,这可能导致损坏。
  • 修复了检测受保护 MSG 文件时出现的 bug。 文件可能受到保护,但 SDK 将其视为纯文本。

版本 1.10.98

发布日期:2021 年 9 月 29 日

缺陷修复

  • 修复了 iOS 中未启用 bitcode 的 bug

版本 1.10.97

发布日期:2021 年 9 月 17 日

缺陷修复

  • 修复了在向 MSG 文件应用保护标签时 MSG 文件上的附件损坏的 bug。

版本 1.10.93

发布日期:2021 年 8 月 23 日

常规更改

  • 添加了 MipConfiguration 类。
    • 该类用于控制以前直接在 MipContext 上设置的配置设置。
    • 委托、日志记录位置等都设置为此对象的一部分。
    • 有关详细信息,请查看 MipContext 概念
  • MipContext::Create() 构造函数更改为仅接受新 MipConfiguration 对象。
  • 如果属性设置为 en-US 区域设置, .Locale 则所有引擎设置都默认为 nullen-US 区域设置。
  • 修复了 SDK 无法完全遵循日志记录级别设置的问题。

文件 SDK

  • 添加了对从 MSG 文件读取标签和向其写入标签的支持。
  • FileHandler::IsLabeledOrProtected() 现在支持 MSG 文件。
  • 文件 SDK 现在支持解密未受保护的 MSG 文件上的受保护附件。
    • 此更改仅适用于文件,不适用于 MSG 或 ZIP 文件等容器。
  • 添加了新的静态方法 mip::FileHandler::GetFileStatus()
    • 此函数会返回一个新的 mip::FileStatus 对象,该对象指示文件是已标记、受保护还是包含受保护的对象。
    • FileStatus 公开了三个属性:IsProtectedIsLabeledContainsProtectedObjects
    • ContainsProtectedObjects 对于具有受保护附件的 MSG 文件非常有用。
  • 当调用 FileHandler::RemoveProtection() 具有受保护附件的纯文本 MSG 文件时,会从附件中删除保护。
  • 修复了当循环调用 IFileHandler.SetProtection() 时销毁 IProtectionHandler 的 bug。 IProtectionHandler 使用后不再销毁实例。

策略 SDK

  • 内容标记变量 ${Event.DateTime} 现在默认设置为本地时间,而不是 UTC。
    • 可以使用外部测试功能 EventDateTimeTokenUseUtc将此变量设置回上一个默认值。
  • 修复了以下 bugIsActive:在从中检索标签时未返回与从中PolicyEngine检索标签时相同的值PolicyHandler

保护 SDK

  • 添加了新的更具体的错误类型,这些错误类型同时显示在保护 SDK 和文件 SDK 中。 请参阅“中断性变更”部分。

重大更改

  • 引入了新的自定义设置来监管默认审核设置。
    • 在审核委托中添加了新属性来设置审核设置。
    • LabelGroupData 类不再有 IsAuditEnabled() 方法。
    • 可以改为在加载策略后使用 GetEnableAuditSetting() 在策略中获取 EnableAudit 设置。 默认审核设置 Undefined 与旧版本中不同 true
  • 允许将文档的时区传递给 ComputeActions 以允许计算操作,就像文档与应用标签的计算机位于不同的时区一样。
    • 当通过服务代表用户应用标签时非常有用,其中服务器的本地时间不一定与用户相同。
    • 现在,我们默认使用不显示时区的本地时间,而不是以 UTC 格式返回 ${Event.DateTime}
  • 更新了现有异常,以便更好地处理特定场景。
    • NoPermissionsError::Category::NotPremiumLicenseUser
      • 之前显示为 NoPermissionsError::Category::AccessDenied
      • 这是由未授权用户尝试撤销受保护内容引起的。
    • NoPermissionsError::Category::NotOwner
      • 之前显示为 NoPermissionsError::Category::AccessDenied
      • 这是由用户尝试撤销他们不拥有的文档引起的。
    • ServiceDisabledError::Extent::Tenant
      • 之前显示为 ServiceDisabledError::Extent::User
      • 当目标 Azure Rights Management 服务被禁用时返回。
    • NoPermissionsError::Category::AccessDenied
      • 之前显示为 NetworkError::Category::FailureResponseCode
      • 当用户因许可或加入控件而无权发布时返回。
    • BadInputError::ErrorCode::DoubleKey
      • 之前显示为 NetworkError::Category::FailureResponseCode
      • 当双密钥加密 (DKE) 参数不正确时返回。
    • CustomerKeyUnavailableError
      • 新异常。
      • 当租户配置为自带密钥(BYOK)且无法访问密钥时返回。
      • 服务返回 HTTP424。
    • NetworkError::Category::FunctionNotImplemented
      • 新异常。
      • 当服务返回 HTTP501(未实现)时返回。
    • 以下内容之前显示为 NetworkError::Category::FailureResponseCode
      • TemplateArchivedError:已存档尝试应用模板 ID 的应用程序。
      • LicenseNotRegisteredError:未注册文档发布许可证进行吊销。
      • NoPermissionsError::Category::UserNotFound:提供的用户在目标租户中不存在。
      • NoPermissionsError::Category::InvalidEmail:提供了无效的电子邮件地址。
      • NoPermissionsError::Category::AccessDenied:提供的标识不是 RMS 识别的主体,也不是有效的委托人。
      • BadInputError::ErrorCode::LicenseNotTrusted:提供的发布许可证不是来自受信任的发布者。 (不在 C API 中)
      • BadInputError::ErrorCode::ParameterParsing:由各种 XML、JSON 或其他分析问题返回(不在 C API 中)

平台和依赖项更新

  • 添加了对 Debian 10 的支持。
  • 添加了对 Ubuntu 20.04 的支持。

版本 1.9.90

发布日期:2021 年 7 月 7 日

常规更改

  • 修复了文件 SDK 中旧文档无法在 32 位 Windows 上解密的 bug。
  • 在 iOS 版本上启用位码。
  • 更新了 Ubuntu 16.04 以使用 OpenSSL 1.1.1k。
  • 修复了解密以前由第三方电子数据展示工具处理的 MSG 文件时出现的问题。

版本 1.9.78

发布日期:2021 年 4 月 29 日

常规更改

  • 添加了一个新参数,允许开发人员提供自定义场景 ID 以关联错误。
    • 如果需要创建支持案例来诊断服务端错误,此场景 ID 可能有助于进行故障排除。
    • 文件 SDK:创建 FileHandler 时,通过 FileExecutionState 设置 applicationScenarioID
    • 保护 SDK:各种 API 现在支持传入场景 ID。
      • mip::ProtectionCommonSettings(mApplicationScenarioId)
      • mip::GetTemplatesSettings::CreateGetTemplatesSettings()->SetApplicationScenarioId()
      • mip::ProtectionHandler::PublishingSettings()->SetApplicationScenarioId()
      • mip::ProtectionHandler::ConsumptionSettings()->SetApplicationScenarioId()
      • mip::PolicyEngine::SetSessionId()
  • 添加了 Workload 枚举和同意检查。
    • HasWorkloadConsent()GetWorkloadConsent() 添加到了 FileEnginePolicyEngine
  • 向策略 SDK .NET 包装器添加了同步 API:AddEngine()ListEngines()DeleteEngine()UnloadEngine()
  • 添加了对通过 ProtectionProfile::Settings::AddRedirectionUri() 重定向保护请求的支持
  • 添加了可与 LoggerDelegate 结合使用以将自定义上下文数据写入日志的记录器上下文。
    • 此 API 可用于将服务中的错误事件关联到单个操作或事件。
    • 以下 API 支持提供记录器上下文:
      • LoggerDelegate::WriteToLogWithContext
      • TaskDispatcherDelegate::DispatchTaskExecuteTaskOnIndependentThread
      • FileEngine::Settings::SetLoggerContext(const std::shared_ptr<void>& loggerContext)
      • FileProfile::Settings::SetLoggerContext(const std::shared_ptr<void>& loggerContext)
      • ProtectionEngine::Settings::SetLoggerContext(const std::shared_ptr<void>& loggerContext)
      • ProtectionProfile::Settings::SetLoggerContext(const std::shared_ptr<void>& loggerContext)
      • PolicyEngine::Settings::SetLoggerContext(const std::shared_ptr<void>& loggerContext)
      • PolicyProfile::Settings::SetLoggerContext(const std::shared_ptr<void>& loggerContext)
      • FileHandler::IsProtected()
      • FileHandler::IsLabeledOrProtected()
      • FileHanlder::GetSerializedPublishingLicense()
      • PolicyHandler::IsLabeled()

平台和依赖项更新

  • 添加了对 CentOS 8 的支持
  • 添加了对 iOS Frameworks 的支持
  • 将 OpenSSL 更新到了版本 1.1.1k
  • 将 SQLite 更新到了 3.34.1

重大更改

  • 更改了启用了 AIP Analytics 的租户的默认审核行为。 现在,除了配置 AIP Analytics 功能的服务端组件之外,还必须在敏感度标签策略中将 EnableAudit 属性设置为 true。
    • Set-LabelPolicy -Identity Global -AdvancedSettings @{EnableAudit="True"}
    • 有关设置高级策略设置的详细信息,请查看 Docs 文章。
  • 将函数 GetApplicationScenarioId() 添加到了 FileExecutionState
  • 移除了 ContentFormat 枚举。
  • 添加了具体错误,其中包含一组以前通过字符串/错误代码在 NetworkError 下公开的错误类别。
    • NoPermissionsError::Category::UserNotFound
    • NoPermissionsError::Category::AccessDenied
    • NoPermissionsError::Category::AccessExpired
    • NoPermissionsError::Category::UserNotFound
  • Microsoft.RightsManagement.Exceptions.UnknownTenantException 引发的服务现在显示为 ServiceDisabledError 而不是 Network Error

缺陷修复

  • 修复了调用 mip::FileHandler::IsLabeledOrProtected() 时的内存泄漏问题。
  • 修复了 FileHandler::InspectAsync() 调用不正确观察程序失败的 bug。
  • 修复了 SDK 尝试将共同创作标签格式应用于不支持共同创作的 Office 格式(DOC、PPT、XLS)的 bug。
  • 修复了与 FileEngine 处置相关的 .NET 包装器中的崩溃。 本机 PolicyEngine 对象在一段时间内仍存在,并且会尝试刷新策略,从而导致崩溃。
  • 修复了 SDK 由于缺少 SiteID 属性而忽略旧版 AIP 应用的标签的 bug。

版本 1.8.97

发布日期:2021 年 2 月 24 日

  • 修复了子标签未正确筛选并包含所有类型的标签(即使未请求)的 bug。
  • 修复了标签元数据不完整时标签未在 RemoveProtection() 上维护的 bug。

版本 1.8.94

发布日期:2021 年 2 月 8 日

  • 修复了 NuGet 包中的以下 bug:C++ 项目的调试配置部署了发布二进制文件。 版本 1.8.86 可能会导致本机 C++ 应用崩溃。 确保更新到 1.8.94 或更高版本。
  • 修复了移除保护时需要策略引擎的 bug。
    • 如果无法加载策略引擎并且存在标签元数据,则删除保护后,策略引擎将取消卡。
  • 修复了以下 bug:如果文件已更改为另一个受保护的标签,则生成空 labelInfo.xml

版本 1.8.86

发布日期:2021 年 1 月 13 日

常规更改

  • 添加了在 ARM 上对 MAC 的支持。
  • 为 Mac 签署了所有 dylib 文件。
  • 所有三个软件开发工具包(SDK)都完全支持所有云。
  • TelemetryConfiguration 重命名为 DiagnosticConfiguration
  • 更新了 MipContext 以接受 DiagnosticConfiguration,而不是 TelemetryConfiguration
  • 公开了新的 AuditDelegate
  • 多个自定义设置已更改其名称,并在版本 1.9 中删除。 这些剪切程序设置将继续与版本 1.8 中的更新名称并行运行。
新名称 旧名称
is_debug_audit is_debug_telemetry
is_audit_disabled is_built_in_audit_disabled

文件 SDK

  • 添加了对具有双密钥加密的用户定义标签的支持。
  • 添加了 API MsgInspector.BodyType,以公开 MSG 文件的正文编码类型。
  • 添加了 API 以支持具有用户定义权限的双密钥加密。
  • 添加了 mip::FileHandler 允许调用方禁用审核发现事件发送的标志。 这修复了使用 ClassifyAsync() API 会导致重复的发现事件的场景。
  • 修复了以下 bug:
    • 对 XPS 文件设置保护失败。
    • 从 SharePoint Online 上传/下载并删除自定义权限后,无法打开文件。
    • RemoveProtection() 函数将接受 message.rpmsg 输入。 现在仅接受 MSG 文件。
    • 尝试跟踪或撤销未受保护的文件时发生的崩溃。

策略 SDK

  • 从默认元数据属性中移除 ActionId,以确保 Microsoft Office 和 SharePoint Online 标记文档之间的一致性。
  • 添加了对特定于 Azure Purview 的标签的支持。
  • 添加了通过每个遥测和审核的委托来替代遥测和审核的功能。
    • 审核委托提供的功能可将 AIP 审核事件发送到 AIP Analytics 以外的目标或者发送到 AIP Analytics 及其之外的其他目标。
  • 添加了允许调用方发现审核发现事件发送的标志 mip::PolicyHandler 。 这修复了使用 ClassifyAsync() API 会导致重复的发现事件的场景。
  • 修复了某些方案中无法打开加密策略数据库的 bug。
  • 公开了允许开发人员替代默认 MIP SDK 审核管道并将事件发送到其自己的基础结构的新 AuditDelegate
  • mip::ClassifierUniqueIdsAndContentFormatsGetContentFormat() 现在返回 std::string,而不是 mip::ContentFormat。 此更改在 .NET 和 Java 包装器中复制。
  • ContentFormat.Default 现为 ContentFormat.File

保护 SDK

  • 添加了一个 ProtectionEngineSettings.SetAllowCloudServiceOnly 属性,该属性禁止在 true 时连接到 Active Directory Rights Management Services 群集。 仅使用云环境。
  • 添加了对获取委派许可证的支持。
    • 委派许可证使服务能够代表用户获取对内容的许可证。
    • 这样,服务就可以代表用户查看权限数据并解密,而无需额外调用服务。

Java 包装器(公共预览版)

  • 向 Java 包装器添加了对 Track 和 Revoke 的支持。
  • 向 Java 包装器添加了流支持

C API

  • 从 C API 中移除了 MIP_FLIGHTING_FEATURE_KEEP_PDF_LINEARIZATION 标志。

版本 1.7.147

文件 SDK

  • 文件格式的 .PBIX 次要 bug 修复。

版本 1.7.145

发布日期:2020 年 11 月 13 日

常规更改

  • 更新了 NuGet 包,以便仅在有更新时复制依赖项,而不是始终复制。
  • .NET 上的调试配置使用本机库的发布版本。 我们发现,如果客户在调试模式下将 .NET 解决方案部署到远程服务器,需要安装 VC++ 调试运行时,而这并不简单。 如果需要调试本机库,请将 SDK Redistributable 中的 DLL 复制到项目文件夹(https://ala.ms/mipsdkbins
  • 修复了为 .NET Core 项目生成警告的 bug。

版本 1.7.133

发布日期:2020 年 9 月 23 日

常规 SDK 更改

  • 适用于 Windows 和 Ubuntu 18.04 上的 Java 的公共预览版。
  • .NET Core 现在在 Windows 上受支持。
  • Ubuntu 18.04 上对 .NET Core 的公共预览版支持。
  • 当存储缓存类型设置为 OnDiskEncrypted. 时,改进了密钥存储的本地日志记录
  • 在 .NET 包装器上启用了功能外部测试
  • 将 SDK 遥测行为还原到了 1.6 之前。 选择仅限最小遥测时,会发送最少的一组使用事件。

文件 SDK

  • 修复了 MSGInspector 中的 UTF-16/UTF-8 正文转换。
  • 将文件 SDK 保护的文件的默认最大文件大小限制设置为 6GB。
    • 由于解密大型文件至少需要文件大小的可用内存,因此进行了一项更改。
    • 可以由自定义设置 max_file_size_for_protection 替代。
  • 添加了对线性化 PDF 的支持。
  • 修复了在更改事件时未更新 LastModifiedDate 的 bug。
  • 修复了创建受保护 PDF 时的内存泄漏问题。
  • 文件 SDK 支持吊销跟踪的文件。
  • FileEngine::Settings::SetLabelFilter 已弃用,请改用 ConfigureFunctionality

策略 SDK

  • 策略 SDK 现在支持“仅加密”标记操作。
  • 修复了未从缓存引擎正确加载 mip::Identity 的 bug。
  • 修复了分类 API 中分类 GUID 比较区分大小写的 bug。
  • 通过添加新字段扩充了审核事件。

保护 SDK

  • 修复了未从缓存引擎正确加载 mip::Identity 的 bug。
  • 为新创建的发布许可证添加了隐式注册。
  • 添加了对加密算法的支持,该算法用于支持 Office 文件中的 DKE。
  • 使 documentIdowner 参数成为了可选参数。

C API

  • 添加了缺少的标识和 DKE API。
  • AuthDelegate 从配置文件移到了跨所有 SDK 的引擎。
  • 适用于 C 的发布策略 SDK 示例
  • MIP_CC_CreateProtectionEngineSettingsWithIdentity 已弃用,请改用 MIP_CC_CreateProtectionEngineSettingsWithIdentityAndAuthCallback
  • MIP_CC_CreateProtectionEngineSettingsWithEngineId 已弃用,请改用 MIP_CC_CreateProtectionEngineSettingsWithEngineIdAndAuthCallback
  • MIP_CC_CreateProtectionProfileSettings 签名已更改。
  • MIP_CC_CreatePolicyEngineSettingsWithIdentity 已弃用,使用 MIP_CC_CreatePolicyEngineSettingsWithIdentityAndAuthCallback
  • MIP_CC_CreatePolicyEngineSettingsWithEngineId 已弃用,使用 MIP_CC_CreatePolicyEngineSettingsWithEngineIdAndAuthCallback
  • MIP_CC_PolicyEngineSettings_SetLabelFilter 已弃用,使用 MIP_CC_PolicyEngineSettings_ConfigureFunctionality
  • MIP_CC_CreatePolicyProfileSettings 签名已更改。

重大更改

通用

  • TelemetryConfiguration::isTelemetryOptedOut 已重命名为 isMinimalTelemetryEnabled

C API

  • mip_cc_document_state 使用新值 mip_cc_metadata_version_format contentMetadataVersionFormat 更新

版本 1.6.103

发布日期:2020 年 4 月 16 日

常规 SDK 更改

  • 对所有非 ADRMS HTTP 通信强制实施了 TLS 1.2。
  • 将 iOS/macOS HTTP 实现从 NSURLConnection 迁移到了 NSURLSession。
  • 将 iOS 遥测组件从 Aria SDK 迁移到了 1DS SDK。
  • 遥测组件现在在 iOS、macOS 和 Linux 上使用 MIP 的 HttpDelegate。 (以前仅限 win32)。
  • 改进了 C API 的类型安全性。
  • 将 AuthDelegate 从配置文件移到了 C++、C# 和 Java API 中的引擎。
  • AuthDelegate 从 Profile::Settings 的构造函数移到了 Engine::Settings
  • 向 NoPolicyError 添加了 Category,以提供有关策略同步失败的原因的详细信息。
  • 添加了 PolicyEngine::GetTenantId 方法。
  • 添加了对所有云的显式支持。
    • 用于设置目标云(GCC High、21-Vianet 等)的新 Engine::Settings::SetCloud 方法。
    • 已识别的云不再需要现有的 Engine::Settings::SetCloudEndpointBaseUrl 方法调用。
  • 为 iOS 二进制文件启用了位码。

文件 SDK

  • 向 C# 和 Java 包装器添加了 IFileHandler::InspectAsync
  • 通过 FileProfile::AcquirePolicyAuthToken 触发策略令牌获取以允许应用程序预热其令牌缓存的新支持。
  • MsgInspector::GetAttachments 将返回 vector<shared_ptr<MsgAttachmentData>>,而不是 vector<unique_ptr<MsgAttachmentData>>
  • TelemetryConfiguration::isOptedOut 设置现在完全禁用遥测。 以前会发送一组最少的遥测数据。

策略 SDK

  • 通过 PolicyProfile::AcquireAuthToken 触发令牌获取以允许应用程序预热其令牌缓存的新支持。
  • 默认情况下会筛选自己的密钥(HYOK)标签。
  • 与已删除标签关联的元数据现已删除。
  • 如果缓存的标签策略与敏感度策略之间存在不匹配,则会清除策略缓存。
  • 对版本控制元数据的新支持:
    • 文件格式可能会重新设置其标签元数据的位置/格式。 在这种情况下,应用程序应向 MIP 提供所有元数据,MIP 确定哪个元数据为“true”。
    • ContentLabel::GetExtendedProperties 现在将返回 vector<MetadataEntry>,而不是 vector<pair<string, string>>
    • MetadataAction::GetMetadataToAdd 现在将返回 vector<MetadataEntry>,而不是 vector<pair<string, string>>
    • ExecutionState::GetContentMetadata 现在应返回 vector<MetadataEntry>,而不是 vector<pair<string, string>>
    • ExecutionState::GetContentMetadataVersion 应返回应用程序为当前文件格式识别的最高版本的元数据(通常为 0)。
    • PolicyEngine::GetWxpMetadataVersion 返回由租户管理员配置的 Office 文档的元数据版本(0 = 默认值、1 = 共同身份验证格式)。
    • C API 中的等效更改:
      • MIP_CC_ContentLabel_GetExtendedProperties
      • MIP_CC_MetadataAction_GetMetadataToAdd
      • mip_cc_metadata_callback
      • mip_cc_document_state
      • MIP_CC_PolicyEngine_GetWxpMetadataVersion
  • TelemetryConfiguration::isOptedOut 设置现在完全禁用遥测。 以前会发送一组最少的遥测数据。

保护 SDK

  • 对文档跟踪的注册和吊销的新支持。
  • 对发布时生成预许可证的新支持。
  • 公开了保护服务使用的公共 Microsoft TLS 证书。
    • GetMsftCertGetMsftCertPEM
    • 如果应用程序替代 HttpDelegate 接口,它必须信任此 CA 颁发的服务器证书。
    • 此要求有望在 2020 年底取消。

版本 1.5.124

发布日期:2020 年 3 月 2 日

常规 SDK 更改

  • Java API(仅限 Windows)
  • 取消异步 MIP 任务
    • 所有异步调用都使用 Cancel() 方法返回 mip::AsyncControl 对象
  • 延迟加载依赖的二进制文件
  • (可选)屏蔽特定的遥测/审核属性
    • 可通过 mip::TelemetryConfiguration::maskedProperties 进行配置
  • 改进了异常:
    • 所有错误都包括说明字符串中的可操作关联 ID
    • 网络错误包含“Category”、“BaseUrl”、“RequestId”和“StatusCode”字段
  • 改进了 C API 结果/错误详细信息

文件 SDK

  • 无网络检查(如果文件已标记或受保护)
    • mip::FileHandler::IsLabeledOrProtected()
    • 轻微的误报风险(例如,如果文件包含僵尸标签元数据)
  • 筛选与特定保护类型关联的标签
    • 可通过 mip::FileEngine::Settings::SetLabelFilter() 进行配置
  • 向文件 SDK 公开策略数据
    • mip::FileEngine::GetPolicyDataXml()

策略 SDK

  • 水印/页眉/页脚操作的动态内容标记:
    • ${Item.Label}、${Item.Name}、${User.Name}、${Event.DateTime} 等字段由 MIP 自动填充
    • mip::Identity 可以使用动态内容标记所使用的用户友好“名称”字段进行构造
    • 可通过 mip::PolicyEngine::Settings::SetVariableTextMarkingType() 进行配置
  • 无网络检查(如果内容已标记)
    • mip::PolicyHandler::IsLabeled()
    • 轻微的误报风险(例如,如果内容包含僵尸标签元数据)
  • 标签策略缓存 TTL
    • 默认值:30 天
    • 可通过 mip::PolicyProfile::SetCustomSettings() 进行配置
  • 中断性变更
    • 将 PolicyEngine.Settings.LabelFilter 从枚举列表更新成了可为空的位字段。

保护 SDK

  • 预许可
    • 预许可证与加密内容以及以前检索到的用户证书一起存在,这允许对内容进行脱机解密
    • mip::ProtectionHandler::ConsumptionSettings 可以使用预许可证进行构造
    • mip::ProtectionEngine::LoadUserCert|Async() 根据 mip::ProtectionProfile 的缓存策略提取存储的用户证书
  • 特定于服务器的功能检查
    • 检查用户的租户是否支持“仅加密”功能(仅在 Azure RMS 中提供)
    • mip::ProtectionEngine::IsFeatureSupported()
  • 提取 RMS 模板时提供更丰富的详细信息
  • 中断性变更
    • mip::ProtectionEngine::GetTemplates()vector<shared_ptr<string>> 返回值替换成了 vector<shared_ptr<mip::TemplateDescriptor>> (C++)
    • mip::ProtectionEngine::Observer::OnGetTemplatesSuccess() 回调 shared_ptr<vector<string>> 参数替换成了 vector<shared_ptr<mip::TemplateDescriptor>> (C++)
    • IProtectionEngine.GetTemplates|Async() 返回值 List<string> 替换成了 List<TemplateDescriptor>。 (C#)
    • MIP_CC_ProtectionEngine_GetTemplates() mip_cc_guid* 参数替换成了 mip_cc_template_descriptor* (C API)

C API

  • 中断性变更:更新了大多数函数以包含 mip_cc_error* 参数,可以为 NULL

错误/异常更新

  • 错误处理摘要:
    • AccessDeniedError:用户尚未被授予访问内容的权限
      • NoAuthTokenError:应用未提供身份验证令牌
      • NoPermissionsError:用户未获得特定内容的权限,但引用者/所有者可用
      • ServiceDisabledError:服务已对用户/设备/平台/租户禁用
    • AdhocProtectionRequiredError:在设置标签之前必须设置即席保护
    • BadInputError:用户/应用输入无效
      • InsufficientBufferError:用户/应用的缓冲区输入无效
      • LabelDisabledError:已识别标签 ID,但已禁用
      • LabelNotFoundError:无法识别的标签 ID
      • TemplateNotFoundError:无法识别的模板 ID
    • ConsentDeniedError:未授予用户/应用同意所需的操作
    • 已弃用的ApiError:此 API 已弃用
    • FileIOError:无法读取/写入文件
    • InternalError:意外的内部错误
    • NetworkError
      • ProxyAuthenticationError:需要代理身份验证
      • 类别=BadResponse:服务器返回了不可读的 HTTP 响应(重试可能会成功)
      • Category=Canceled:无法建立 HTTP 连接,因为用户/应用已取消操作(重试可能成功)
      • 类别=FailureResponseCode:服务器返回了泛型失败响应(重试可能会成功)
      • 类别=NoConnection:未能建立 HTTP 连接(重试可能会成功)
      • 类别=Offline:由于应用程序处于脱机模式而未能建立 HTTP 连接(重试不会成功)
      • 类别=Proxy:由于代理问题而未能建立 HTTP 连接(重试可能不会成功)
      • 类别=SSL:由于 SSL 问题而未能建立 HTTP 连接(重试可能不会成功)
      • Category=Throttled:服务器返回的“已限制”响应(回退/重试可能成功)
      • 类别=超时:超时后未能建立 HTTP 连接(重试可能成功)
      • 类别=UnexpectedResponse:服务器返回了意外数据(重试可能会成功)
    • NoPolicyError:未为标签配置租户或用户
    • NotSupportedError:操作在当前状态下不受支持
    • OperationCancelledError:操作已取消
    • PrivilegedRequiredError:除非分配方法 = privileged
  • 变化
    • 移除了未使用的 PolicySyncError。 替换成了 NetworkError
    • 移除了未使用的 TransientNetworkError。 替换成了 NetworkError 类别

版本 1.4.0

发布日期:2019 年 11 月 6 日

此版本引入了对 .NET 包中保护 SDK 的支持 (Microsoft.InformationProtection.File)。

SDK 更改

  • 性能改进和 bug 修补程序
  • 已将 StorageType 枚举重命名为 CacheStorageType
  • libc++(而不是 gnustl)的 Android 链接
  • 删除了以前弃用的 API
    • File/Policy/Profile::Settings 必须使用 MipContext 初始化
    • File/Policy/Profile::Settings 路径、应用程序信息、记录器委托、遥测和日志级别 getters/setter 已移除。 这些属性由 MipContext 管理
  • Apple 平台上更好的静态库支持
    • 整体静态库
      • libmip_file_sdk_static.a
      • libmip_upe_sdk_static.a
      • libmip_protection_sdk_static.a
      • libmip_upe_and_protection_sdk_static.a
    • 提取到单独的库中的第三方依赖项
      • libsqlite3.a
      • libssl.a
  • 移除了 mip_telemetry.dll(合并到了 mip_core.dll 中)

文件 SDK

  • RPMSG
    • 加密
    • 添加了对 string8 解密的支持
  • 可配置的 PFILE 扩展行为(默认值,{extension})。PFILE 或 P{extension})
    • ProtectionSettings::SetPFileExtensionBehavior

策略 SDK

  • 完成 C API
  • 配置与保护关联的标签筛选
    • PolicyEngine::Settigns::SetLabelFilter()

保护 SDK

  • 删除了以前弃用的 API
    • 移除了 ProtectionEngine::CreateProtectionHandlerFromDescriptor[Async](使用 ProtectionEngine::CreateProtectionHandlerForPublishing[Async])
    • 移除了 ProtectionEngine::CreateProtectionHandlerFromPublishingLicense[Async](使用 ProtectionEngine::CreateProtectionHandlerForConsumption[Async])
  • 完成 C# API
  • 完成 C API
    • v1.3 C API 预览中的 C API 规范化更改:
      • 已将 mip_cc_storage_type 重命名为 mip_cc_cache_storage_type
      • 已将 MIP_CC_AddProtectionProfileEngine 重命名为 MIP_CC_ProtectionProfile_AddEngine
      • 已将 MIP_CC_CreateProtectionEngineSettingsForExistingEngine 重命名为 MIP_CC_CreateProtectionEngineSettingsWithEng
      • 已将 MIP_CC_CreateProtectionEngineSettingsForNewEngine 重命名为 MIP_CC_CreateProtectionEngineSettingsWithIdentity
      • 已将 MIP_CC_SetProtectionProfileSettingsHttpDelegate 重命名为 MIP_CC_ProtectionProfileSettings_SetHttpDelegate
      • 已将 MIP_CC_CreateProtectionHandlerForConsumption 重命名为 MIP_CC_ProtectionEngine_CreateProtectionHandlerForConsumption
      • 已将 MIP_CC_CreateProtectionHandlerForPublishing 重命名为 MIP_CC_ProtectionEngine_CreateProtectionHandlerForPublishing
      • 已将 MIP_CC_GetProtectionEngineId 重命名为 MIP_CC_ProtectionEngine_GetEngineId
      • 已将 MIP_CC_GetProtectionEngineTemplates 重命名为 MIP_CC_ProtectionEngine_GetTemplates
      • 已将 MIP_CC_GetProtectionEngineTemplatesSize 重命名为 MIP_CC_ProtectionEngine_GetTemplatesSize
      • 已将 MIP_CC_SetTelemetryConfigurationHttpDelegate 重命名为 MIP_CC_TelemetryConfiguration_SetHttpDelegate
      • 已将 MIP_CC_SetTelemetryConfigurationHostName 重命名为 MIP_CC_TelemetryConfiguration_SetHostName
      • 已将 MIP_CC_SetTelemetryConfigurationIsLocalCachingEnabled 重命名为 MIP_CC_TelemetryConfiguration_SetIsLocalCachingEnabled
      • 已将 MIP_CC_SetTelemetryConfigurationIsNetworkDetectionEnabled 重命名为 MIP_CC_TelemetryConfiguration_SetIsNetworkDetectionEnabled
      • 已将 MIP_CC_SetTelemetryConfigurationIsTelemetryOptedOut 重命名为 MIP_CC_TelemetryConfiguration_SetIsTelemetryOptedOut
      • 已将 MIP_CC_SetTelemetryConfigurationLibraryName 重命名为 MIP_CC_TelemetryConfiguration_SetLibraryName
      • 移除了 MIP_CC_ProtectionEngine_GetRightsForLabelIdSize,并更新了 MIP_CC_ProtectionEngine_GetRightsForLabelId 以填充 mip_cc_string_list,而不是逗号分隔的字符串缓冲区
      • 移除了 MIP_CC_ProtectionHandler_GetRightsSize,并更新了 MIP_CC_ProtectionHandler_GetRights 以填充 mip_cc_string_list,而不是逗号分隔的字符串缓冲区
      • 添加了 MIP_CC_ProtectionEngine_GetEngineIdSize,并更新了 MIP_CC_ProtectionEngine_GetEngineId 以填充字符串缓冲区,而不是 mip_cc_guid
      • MIP_CC_CreateProtectionDescriptorFromUserRights 现在采用“mip_cc_dictionary”参数,而不是“mip_cc_dictionary”
      • MIP_CC_ProtectionEngineSettings_SetCustomSettings 现在采用“mip_cc_dictionary-”参数,而不是“mip_cc_dictionary”
      • MIP_CC_ProtectionProfileSettings_SetCustomSettings 现在采用“mip_cc_dictionary-”参数,而不是“mip_cc_dictionary”
      • MIP_CC_TelemetryConfiguration_SetCustomSettings 现在采用“mip_cc_dictionary-”参数,而不是“mip_cc_dictionary”
      • MIP_CC_CreateMipContext 采用“isOfflineOnly”和“loggerDelegateOverride”参数

版本 1.3.0

发布日期:2019 年 8 月 22 日

新功能

  • mip::MipContext 是最新的最高级别对象。
  • 现在支持解密受保护的 MSG 文件。
  • 支持通过 mip::FileInspectormip::FileHandler::InspectAsync() 检查 message.rpmsg 文件。
  • 磁盘上的缓存现在可以选择性地进行加密。
  • 保护 SDK 现在支持中国云客户。
  • Android 上的 ARM64 支持。
  • iOS 上的 ARM64e 支持。
  • 现在可以禁用最终用户许可证 (EUL) 缓存。
  • .pfile 加密可通过 mip::FileEngine::EnablePFile 禁用
  • 通过减少 HTTP 调用数提高了保护操作的性能
  • 移除了 mip::Identity 中的委托标识详细信息,并将 DelegatedUserEmail 添加到了 mip::FileEngine::Settingsmip::ProtectionSettingsmip::PolicyEngine::Settingsmip::ProtectionHandlerPublishingSettingsConsumptionSettings
  • 以前返回 LabelId 的函数现在将返回 mip::Label 对象。

更改

  • 在以前的版本中,我们需要你调用 mip::ReleaseAllResources。 版本 1.3 将此替换成了 mip::MipContext::~MipContextmip::MipContext::Shutdown
  • mip::LabelingOptionsmip::ExecutionState::GetNewLabelActionSource 中移除了 ActionSource
  • mip::ProtectionEngine::CreateProtectionHandlerFromDescriptor 替换成了 mip::ProtectionEngine::CreateProtectionHandlerForPublishing
  • mip::ProtectionEngine::CreateProtectionHandlerFromPublishingLicense 替换成了 mip::ProtectionEngine::CreateProtectionHandlerForConsumption
  • 已将 mip::PublishingLicenseContext 重命名为 mip::PublishingLicenseInfo,并更新为包含富字段,而不是原始序列化字节。
  • mip::PublishingLicenseInfo 在分析发布许可证 (PL) 后,包含与 MIP 相关的数据。
  • mip::TemplateNotFoundErrormip::LabelNotFoundError 应用程序通过 MIP 传递无法识别的模板 ID 或标签 ID 时引发。
  • 添加了通过 AcquireToken()mip::AuthDelegate::OAuth2Challenge() 的声明参数对基于标签的条件访问的支持。 此功能尚未通过合规中心门户公开。

版本 1.2.0

发布日期:2019 年 4 月 15 日

新功能

  • 遥测组件现在使用与 MIP 的其余部分相同的 HTTP 堆栈,即使客户端应用程序已使用 HttpDelegate 替代它也是如此。
  • 客户端应用程序可以通过在配置文件中替代 TaskDispatcherDelegate 来控制异步任务的线程行为。
  • RPMSG 加密现在处于预览版。
  • 将文件/策略 SDK 异常处理行为与保护 SDK 保持一致:
    • 如果代理配置为要求身份验证,则所有 SDK 都会引发 ProxyAuthError。
    • 如果应用程序实现 mip::AuthDelegate::AcquireOAuth2Token 时提供了空的身份验证令牌,则所有 SDK 都会引发 NoAuthTokenError。
  • 改进了策略 SDK 的 HTTP 缓存,从而将所需的 HTTP 调用数减少了一半。
  • 更丰富的日志/审核/遥测,改进了失败检测和调试。
  • 支持外部/外部标签,以促进向 AIP 标签的迁移。
  • 启用了对第三方应用程序的支持,以便从 SCC 下载敏感度类型。
  • 公开了更多的遥测设置,并且可配置(缓存/线程行为等)。

SDK 更改

  • mip_common.dll 拆分成了 mip_core.dll 和 mip_telemetry.dll。
  • 已将 mip::ContentState 重命名为 mip::DataState,以描述应用程序如何在高级别与数据交互。
  • FileHandler::SetLabel 会引发 mip::AdhocProtectionRequiredError 异常,以通知应用程序在应用标签之前必须先应用即席保护。
  • 取消操作时会引发 mip::OperationCancelledError 异常(例如,由于关闭或 HTTP 取消)。
  • 新 API:
    • mip::ClassificationResult::GetSensitiveInformationDetections
    • mip::FileEngine::GetLastPolicyFetchTime
    • mip::FileEngine::GetDefaultSensitivityLabel
    • mip::FileEngine::GetPolicyId
    • mip::FileEngine::HasClassificationRules
    • mip::FileEngine::Settings::SetPolicyCloudEndpointBaseUrl
    • mip::FileHandler::GetDecryptedTemporaryFileAsync
    • mip::FileHandler::Observer::OnGetDecryptedTemporaryFileFailure
    • mip::FileHandler::Observer::OnGetDecryptedTemporaryFileSuccess
    • mip::File/Policy/ProtectionProfile::SetTaskDispatcherDelegate
    • mip::File/Policy/ProtectionProfile::SetTelemetryConfiguration
    • mip::HttpRequest::GetBody 返回 std::vector<uint8_t>(而不是 std::string)
    • mip::HttpRequest::GetId
    • mip::PolicyEngine::GetLastPolicyFetchTime
    • mip::PolicyEngine::GetPolicyId
    • mip::PolicyEngine::HasClassificationRules
    • mip::PolicyEngine::Settings::SetCloudEndpointBaseUrl
    • mip::ProtectionDescriptor::GetContentId
    • (接口)mip::TaskDispatcherDelegate

新要求

  • 在进程终止之前(在清除对所有配置文件、引擎和处理程序的引用之后)必须先调用 mip::ReleaseAllResources
  • (接口)mip::ExecutionState::GetClassificationResults 返回类型和“classificationIds”参数已更改
  • (接口)mip::FileExecutionState::GetAuditMetadata 可由应用程序实现,以指定要向租户管理员审核仪表板显示的详细信息(例如发件人、收件人、上次修改时间等)
  • (接口)mip::FileExecutionState::GetClassificationResults 返回类型已更改,现在需要 FileHandler 参数
  • (接口)mip::FileExecutionState::GetDataState 应由应用程序实现,以指定应用程序如何与 contentIdentifier 交互
  • (接口)mip::HttpDelegate 接口需要“CancelOperation”和“CancelAllOperations”方法
  • (接口)mip::HttpDelegate 接口“Send”和“SendAsync”返回 mip::HttpOperation,而不是 mip::HttpResponse
  • (接口)mip::HttpResponse::GetBody 返回 std::vector<uint8_t> 而不是 std::string
  • (接口)mip::HttpResponse 接口需要“GetId”方法实现
  • mip::ContentLabel::GetCreationTime 返回 std::chrono::time_point 而不是 std::string
  • mip::FileEngine::CreateFileHandlerAsync 不再接受“contentIdentifier”参数
  • mip::PolicyHandler::NotifyCommitedActions 已重命名为 mip::PolicyHandler::NotifyCommittedActions

版本 1.1.0

发布日期:2019 年 1 月 15 日

此版本引入了对以下平台的支持:

  • .NET
  • iOS SDK(策略 SDK)
  • Android SDK(策略 SDK 和保护 SDK)

新功能

  • ADRMS 支持
  • 保护 SDK 操作是真正异步的(在 Win32 上),允许同时执行非阻止加密/解密操作
    • 应用程序回调(AuthDelegate、HTTPDelegate 等)现在可以在 -any- 后台线程上调用
  • 现在可以通过 mip::Label::GetCustomSettings 读取 IT 管理员设置的自定义标签属性
  • 现在可以直接从文件中检索序列化发布许可证,而无需通过 mip::FileHandler::GetSerializedPublishingLicense 执行任何 HTTP 操作
  • 应用程序会收到有关 HTTP 操作是否需要通过mip::FileProfile::Observer::OnAddPolicyEngineStarting/mip::PolicyProfile::Observer::OnAddEngineStarting 完成 mip::FileEngine/mip::PolicyEngine 创建的通知
  • 使用便捷方法 mip::P rotectionDescriptor::D oesContentExpire,检测受保护内容是否具有过期日期
  • 分类:
    • 敏感度类型(CC#、passport #'s 等的正则表达式)可以从 SCC 服务获取
      • 通过设置 mip::FileEngine::Settings/mip::PolicyEngine::Settings 标志启用功能
      • 通过 mip::FileEngine::ListSensitivityTypes/mip::PolicyEngine::ListSensitivityTypes 读取类型
    • 外部文档扫描程序实用工具的分类结果可以馈送到 MIP,以基于文档内容驱动推荐/所需标签
      • 通过 mip::FileExecutionState::GetClassificationResults/mip::ExecutionState::GetClassificationResults 将结果传递给 MIP
      • mip::ApplyLabelAction 和 mip::RecommendLabelAction 可由 mip::PolicyEngine::ComputeActions 在分类结果与指示必需/推荐标签的策略规则匹配时返回

新要求

  • 创建 mip::FileProfile、mip::PolicyProfile 和 mip::ProtectionProfile 时强制填充 ID/名称/版本字段 mip::ApplicationInfo
  • 创建 mip::FileHandlers 时,应用程序必须实现新的 mip::FileExecutionState

新异常

  • mip::NoAuthTokenError 如果应用程序的 AuthDelegate 返回空令牌(由于取消)
    • 适用于以下项的创建:
      • mip::FileEngine
      • mip::FileHandler
      • mip::P olicyEngine
      • mip::P rotectionHandler
  • 如果未为标签配置租户,则引发 mip::NoPolicyError
    • 适用于以下项的创建:
      • mip::FileEngine
      • mip::P olicyEngine
  • 如果为特定用户/设备/平台/租户禁用 RMS 服务,则引发 mip::ServiceDisabledError
    • 适用于以下项的创建:
      • mip::FileHandler
      • mip::P rotectionHandler
  • mip::NoPermissionsError 在用户无权解密文档或内容过期时引发
    • 适用于以下项的创建:
      • mip::FileHandler
      • mip::P rotectionHandler

后续步骤