Microsoft 信息保护 (MIP) Sdk (SDK) 版本发布历史记录和支持策略

服务

下一 GA (正式版) 正式版支持一年。 文档可能不包含有关不受支持版本的信息。 修补程序和新功能仅适用于最新的 GA 版本。

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

发布历史记录

使用以下信息查看受支持发行版的新增功能或已更改内容。 首先列出最新的版本。

注意

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

以前版本的下载

NuGet主要发行版的程序包在 NuGet。 Microsoft 下载中心仅维护每个主要版本的最新版本。 1.4 之前的版本不可用。

版本 链接 状态 支持结束
1.11 https://aka.ms/mipsdkbins 当前版本 TBD
1.10 https://aka.ms/mipsdkbins110 支持 TBD
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.11.53

发布日期 2021 年 11 月 17 日

文件 SDK

  • 修复了 mip::FileHandler 中的 IsModified () 对于纯文本 返回 false 而不是 true 的 bug。包含受保护附件的 MSG 文件。
  • 修复了 bug 解决元数据中的 XML 格式设置问题,这些问题在某些情况下会中断标签,无法提供保护。

策略 SDK

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

中断性变更

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

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

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

平台和依赖项更新

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

版本 1.10.98

发布日期 2021 年 9 月 29 日

Bug 修复

  • 修复了 iOS 中未启用位码的 bug

版本 1.10.97

发布日期: 2021 年 9 月 17 日

Bug 修复

  • 修复了将保护标签应用于 MSG 文件时 MSG 文件附件已损坏的 bug。

版本 1.10.93

发布日期: 2021 年 8 月 23 日

常规更改

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

文件 SDK

  • 添加了对 MSG 文件读取和写入标签的支持。
    • 用于标记此文件的模式与任何其他文件类型相同。
    • 必须 enable_msg_file_type 自定义设置才能启用 MSG 文件处理。
    • 附件将受到保护, 但不进行 标记。
    • 有关自定义enable_msg_file_type的详细信息,请参阅 Set enable_msg_file_type 并使用文件 SDK 保护 .msg 文件。
  • FileHandler::IsLabeledOrProtected() 现在支持 MSG 文件。
  • 文件 SDK 现在支持对未受保护的 MSG 文件解密受保护的附件。
    • 这仅适用于文件,而仅适用于 MSG 或 ZIP 文件等容器。
  • 添加了新的静态方法 mip::FileHandler::GetFileStatus()
    • 此函数返回一个新对象,用于指示文件是已标记、 mip::FileStatus 受保护还是包含受保护对象。
    • FileStatus 公开三个属性 IsProtectedIsLabeled :、 和 ContainsProtectedObjects
    • ContainsProtectedObjects 对于具有受保护附件的 MSG 文件很有用。
  • 使用 FileHandler::RemoveProtection() 受保护的附件对纯文本 MSG 文件进行调用时,将从附件中删除保护。
  • 修复了在 IProtectionHandler 循环中调用 时 IFileHandler.SetProtection() 被销毁的 bug。 IProtectionHandler 实例不再在使用后被销毁。

策略 SDK

  • 内容标记变量 ${Event.DateTime} 现在默认为本地时间,而不是 UTC。
    • 可以使用航班功能 将此选项设置回以前的默认值 EventDateTimeTokenUseUtc
  • 修复了 bug,其中 在 中返回的值与从 检索标签时 IsActivePolicyHandler 返回的值不同 PolicyEngine

保护 SDK

  • 添加了将在"保护"和"文件 SDK"中显示的新更具体的错误类型。 请参阅中断性变更部分。

中断性变更

  • 引入了新的自定义设置来管理默认审核设置。
    • 在 audit Delegate 中添加了新属性以设置审核设置。
    • LabelGroupData 类不再具有 IsAuditEnabled() 方法。
    • 加载策略 GetEnableAuditSetting() 后,可以使用 获取 EnableAudit 策略中的设置。 在旧版本中,默认 Undefined 审核 true 设置将一样支持 。
  • 允许将文档的时区传递到 ComputeActions,以允许计算操作,就像文档存在于应用标签计算机的不同时区一样。
    • 当通过服务代表用户应用标签时非常有用,因为服务器的本地时间不一定与用户的相同。
    • 我们现在默认为本地时间而不显示时区 ${Event.DateTime} ,而不是返回 UTC 格式。
  • 更新了现有异常,以更好地处理特定方案。
    • 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 中的一个 bug,其中旧文档无法解密 32 位 Windows。
  • 在 iOS 版本上启用位码。
  • 更新了 Ubuntu 16.04 以使用 OpenSSL 1.1.1k。
  • 修复了解密之前由第三方电子数据展示工具处理的 MSG 文件的问题。

版本 1.9.78

发布日期: 2021 年 4 月 29 日

常规更改

  • 添加了一个新参数,允许开发人员提供用于关联错误的自定义方案 ID。
    • 如果需要支持案例来诊断服务端错误,此方案 ID 可能有助于故障排除。
    • 文件 SDK:通过 创建 applicationScenarioID 集时 FileExecutionState
    • 保护 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 包装器添加了同步 AddEngine()ListEngines() API:、、、。 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 框架的支持
  • 将 OpenSSL 更新到版本 1.1.1k
  • 将 SQLite 更新到 3.34.1

中断性变更

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

Bug 修复

  • 修复了调用 时的内存泄漏 mip::FileHandler::IsLabeledOrProtected()
  • 修复了错误观察程序 FileHandler::InspectAsync() 调用错误的 bug。
  • 修复了 SDK 尝试将共同创作标签格式应用到不支持共同创作的 Office 格式的 bug (DOC、PPT、XLS) 。
  • 修复了 .NET 包装器中与处置相关的 FileEngine 崩溃。 本机 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。
    • 如果无法加载策略引擎并且存在标签元数据,则删除保护后将丢弃该引擎。
  • 修复了将文件更改为另一个受保护标签 labelInfo.xml 时生成空的 bug。

版本 1.8.86

发布日期: 2021 年 1 月 13 日

常规更改

  • 添加了对 Mac 在 ARM 的支持。
  • 为 Mac 的所有 dylib 文件签名。
  • 所有云都完全支持所有三个 SDK。
  • 重命名 TelemetryConfigurationDiagnosticConfiguration
  • 更新 MipContext 为接受 DiagnosticConfiguration 而不是 TelemetryConfiguration
  • 公开新的 AuditDelegate
  • 多个自定义设置的名称已更改,将在版本 1.9 中删除。 它们将继续与版本 1.8 中的更新名称并行运行。
新名称 旧名称
is_debug_audit is_debug_telemetry
is_audit_disabled is_built_in_audit_disabled

文件 SDK

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

策略 SDK

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

保护 SDK

  • 添加了 ProtectionEngineSettings.SetAllowCloudServiceOnly 一个 属性,该属性在 true 时Active Directory Rights Management Services群集的任何连接。 将仅使用云环境。
  • 添加了对获取委派许可证的支持。
    • 通过代理许可证,服务可以代表用户获取内容许可证。
    • 这样,服务即可查看权限数据并代表用户进行解密,而无需对服务进行其他调用。

Java包装器 (公共预览版)

  • 添加了对跟踪和撤销的支持,Java包装器。
  • 为包装器添加了Java支持

C API

  • 已从 MIP_FLIGHTING_FEATURE_KEEP_PDF_LINEARIZATION C API 中删除了此标志。

版本 1.7.147

文件 SDK

  • PBIX 文件格式的小 bug 修复。

版本 1.7.145

发布日期: 2020 年 11 月 13 日

常规更改

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

版本 1.7.133

发布日期:2020 年 9 月 23 日

常规 SDK 更改

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

文件 SDK

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

策略 SDK

  • 策略 SDK 现在支持"仅加密"标记操作。
  • 修复了 mip::Identity 未正确从缓存引擎加载的 bug。
  • 修复了分类 GUID 比较在分类 API 中区分大小写的 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 的类型安全性。
  • 使用 C++、C# 和 api 将 AuthDelegate 从配置文件Java引擎。
  • AuthDelegate 从 的构造函数 Profile::Settings 移动到 Engine::Settings
  • 向 NoPolicyError 添加了"类别",提供有关策略同步失败原因详细信息。
  • 添加了 PolicyEngine::GetTenantId 方法。
  • 添加了对所有云的显式支持。
    • 设置 Engine::Settings::SetCloud 目标云的新方法 (GCC High、21-Vianet 等) 。
    • 对于 Engine::Settings::SetCloudEndpointBaseUrl 已识别的云,不再需要现有方法调用。
  • 为 iOS 二进制文件启用了位码。

文件 SDK

  • 添加到 IFileHandler::InspectAsync C# 和 Java 包装器
  • 通过 对 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::设置::SetLabelFilter () 进行配置
  • 向文件 SDK 公开策略数据
    • mip::FileEngine::GetPolicyDataXml ()

策略 SDK

  • 水印/页眉/页脚操作的动态内容标记:
    • MIP 会自动填充 ${Item.Label}、${Item.Name}、${User.Name}、${Event.DateTime} 等字段
    • 可以使用动态内容标记使用的用户友好"名称"字段构造 mip::Identity
    • 可通过 mip::P olicyEngine::设置::SetVariableTextMarkingType () 进行配置
  • 无网络检查内容是否带有标签
    • mip::P olicyHandler::IsLabeled ()
    • 误报的轻微风险 (例如,如果内容包含僵尸标签元数据)
  • 标签策略缓存 TTL
    • 默认值:30 天
    • 可通过 mip::P olicyProfile::SetCustomSettings () 进行配置
  • 中断性变更
    • 更新了 PolicyEngine。设置。LabelFilter from of enums list to nullable bitfield.

保护 SDK

  • 预许可证
    • 预许可证与加密内容以及以前检索的用户证书一起存在,允许对内容进行脱机解密
    • mip::P rotectionHandler::ConsumptionSettings 可以使用预许可证构造
    • mip::P rotectionEngine::LoadUserCert|Async () 提取根据 mip::P rotectionProfile 的缓存策略存储的用户证书
  • 服务器特定的功能检查
    • 检查用户的租户是否支持"仅加密"功能 (仅在 Azure RMS)
    • mip::P rotectionEngine::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:需要代理身份验证
      • Category=BadResponse:服务器返回的不可读 HTTP 响应 (重试可能)
      • Category=Cancelled:无法建立 HTTP 连接,因为操作已由用户/应用取消 (重试可能会成功)
      • Category=FailureResponseCode:服务器返回了一个泛型失败响应 (重试可能会成功)
      • Category=NoConnection:无法建立 HTTP 连接 (重试可能)
      • Category=Offline:无法建立 HTTP 连接,因为应用程序处于脱机 (重试不会成功)
      • Category=Proxy:由于代理问题无法建立 HTTP 连接 (重试可能不会成功)
      • Category=SSL:由于 SSL 问题,无法建立 HTTP 连接 (重试可能不会成功)
      • Category=Throttled:服务器返回的"受限"响应 (/重试可能会成功)
      • Category=Timeout:超时后未能建立 HTTP 连接 (重试可能会成功)
      • Category=UnexpectedResponse:服务器返回了意外 (重试可能)
    • NoPolicyError:未为标签配置租户或用户
    • NotSupportedError:当前状态不支持的操作
    • OperationCancelledError:操作已取消
    • PrivilegedRequiredError:无法修改标签,除非分配方法 = priviledged
  • 更改
    • 删除了未使用的 PolicySyncError。 替换为 NetworkError
    • 删除了未使用的 TransientNetworkError。 替换为 NetworkError 类别

版本 1.4.0

发布日期:2019 年 11 月 6 日

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

SDK 更改

  • 性能改进和 bug 修复
  • 将 StorageType 枚举重命名为 CacheStorageType
  • 指向 libc++ 而不是 gnustl 的 Android 链接
  • 删除了以前已弃用 API
    • 文件/策略/配置文件::设置必须使用 MipContext 初始化
    • 文件/策略/配置文件::设置路径、应用程序信息、记录器委托、遥测和日志级别 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 解密的支持
  • 默认 {extension} (可配置的 PFILE 扩展行为。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 文件。
  • 支持通过 和 检查 message.rpmsg mip::FileInspector 文件 mip::FileHandler::InspectAsync()
  • 磁盘缓存现在可以选择性地加密。
  • 保护 SDK 现在支持中国云客户。
  • Android 上的 Arm64 支持。
  • iOS 上的 Arm64e 支持。
  • 现在可以禁用 EUL (缓存) 最终用户许可证。
  • .pfile 加密可以通过 mip::FileEngine::EnablePFile
  • 通过减少 HTTP 调用数来提高保护操作的性能
  • 从 中删除了委托标识详细信息,而是添加到 mip::IdentityDelegatedUserEmailmip::FileEngine::Settingsmip::ProtectionSettings 、、 mip::PolicyEngine::Settings 和 的 和 mip::ProtectionHandlerPublishingSettingsConsumptionSettings
  • 以前返回 LabelId 的函数现在返回 mip::Label 对象。

更改

  • 在以前的版本中,我们要求你调用 mip::ReleaseAllResources 。 版本 1.3 将替换为 mip::MipContext::~MipContextmip::MipContext::Shutdown
  • 已从 ActionSourcemip::LabelingOptions 中删除 mip::ExecutionState::GetNewLabelActionSource
  • 替换为 mip::ProtectionEngine::CreateProtectionHandlerFromDescriptormip::ProtectionEngine::CreateProtectionHandlerForPublishing
  • 替换为 mip::ProtectionEngine::CreateProtectionHandlerFromPublishingLicensemip::ProtectionEngine::CreateProtectionHandlerForConsumption
  • 重命名为 mip::PublishingLicenseContextmip::PublishingLicenseInfo 并更新为包含丰富字段,而不是原始序列化字节。
  • mip::PublishingLicenseInfo 包含分析发布许可证后与 MIP 相关的数据 (PL) 。
  • mip::TemplateNotFoundErrormip::LabelNotFoundError 当应用程序通过 MIP 传递无法识别的模板 ID 或标签 ID 时引发。
  • 通过 和 的 claims 参数添加了对基于标签的条件 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.dllmip_telemetry.dll。
  • 将 mip::ContentState 重命名为 mip::D ataState,描述应用程序如何与高级别的数据交互。
  • 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::设置::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::P olicyEngine::GetLastPolicyFetchTime
    • mip::P olicyEngine::GetPolicyId
    • mip::P olicyEngine::HasClassificationRules
    • mip::P olicyEngine::设置::SetCloudEndpointBaseUrl
    • mip::P rotectionDescriptor::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::P olicyHandler::NotifyCommitedActions 重命名为 mip::P olicyHandler::NotifyCommittedActions

版本 1.1.0

发布日期:2019 年 1 月 15 日

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

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

新功能

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

新要求

  • 创建 mip::FileProfile、mip::P olicyProfile 和 mip::P rotectionProfile 时强制填充 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

下一步

  • 有关 受支持平台 等的信息,请参阅 MIP SDK 常见问题解答和问题。
  • 请参阅 MIP SDK 安装和配置,了解如何开始使用 MIP SDK。