在环境中启用对 TLS 1.2 的支持,以便弃用 Microsoft Entra TLS 1.1 和 1.0

为了改善租户的安全状况,并符合行业标准,Microsoft Entra ID 将很快停止支持以下传输层安全性(TLS)协议和密码:

  • TLS 1.1
  • TLS 1.0
  • 3DES 密码套件 (TLS_RSA_WITH_3DES_EDE_CBC_SHA)

此更改可能对组织造成的影响

应用程序是否与 Microsoft Entra ID 通信或进行身份验证? 如果这些应用程序无法使用 TLS 1.2 进行通信,则可能无法按预期工作。 这种情况包括:

  • Microsoft Entra Connect
  • Microsoft Graph PowerShell
  • Microsoft Entra 应用程序代理连接器
  • PTA 代理
  • 旧版浏览器
  • 与 Microsoft Entra ID 集成的应用程序

进行此更改的原因

由于以下原因,正在弃用这些协议和密码:

TLS 1.0TLS 1.13DES 密码套件服务将按以下计划弃用。

实例类型 弃用日期 Status
美国政府实例 2021 年 3 月 31 日 完成
公共实例 2022 年 1 月 31 日 完成
由世纪互联在中国运营的Microsoft Entra 实例 2024 年 11 月 30 日 持续

对 Microsoft Entra 服务的 TLS 1.3 支持

除了支持 TLS 1.2 外,Microsoft Entra 还对其终结点推出对 TLS 1.3 的支持,以符合安全最佳做法(NIST - SP 800-52 Rev. 2)。 通过此更改,Microsoft Entra 终结点将同时支持 TLS 1.2 和 TLS 1.3 协议。

在环境中启用 TLS 1.2 支持

若要确保与 Microsoft Entra ID 和 Microsoft 365 服务建立安全连接,请将客户端应用和客户端和服务器操作系统(OS)配置为支持 TLS 1.2 和当代密码套件。

在客户端上启用 TLS 1.2 的指南

  • 更新 Windows 和你用于“WinHTTP”的默认 TLS。
  • 识别并减少对不支持 TLS 1.2 的客户端应用和操作系统的依赖。
  • 为与 Microsoft Entra ID 通信的应用程序和服务启用 TLS 1.2。
  • 更新和配置 .NET Framework 安装以支持 TLS 1.2。
  • 确保应用程序和 PowerShell(使用 Microsoft GraphMicrosoft Graph PowerShell)脚本托管并在支持 TLS 1.2 的平台上运行。
  • 确保 Web 浏览器具有最新更新。 我们建议你使用新的 Microsoft Edge 浏览器(基于 Chromium)。 有关详细信息,请参阅 Microsoft Edge Stable 渠道发行说明
  • 确保 Web 代理支持 TLS 1.2。 若要详细了解如何更新 Web 代理,请咨询 Web 代理解决方案的供应商。

有关详细信息,请参阅以下文章:

更新 Windows OS 和你用于 WinHTTP 的默认 TLS。

这些操作系统本机支持将 TLS 1.2 用于通过 WinHTTP 进行客户端-服务器通信:

  • Windows 8.1、Windows 10 及更高版本
  • Windows Server 2012 R2、Windows Server 2016 及更高版本

验证你是否尚未在这些平台上明确禁用 TLS 1.2。

默认情况下,Windows 早期版本(如 Windows 8 和 Windows Server 2012)不会使用 WinHTTP 为安全通信启用 TLS 1.2 或 TLS 1.1。 对于这些更早版本的 Windows:

  1. 安装更新 3140245
  2. “在客户端或服务器操作系统上启用 TLS 1.2”部分中启用注册表值。

你可以配置这些值以将 TLS 1.2 和 TLS 1.1 添加到 WinHTTP 的默认安全协议列表中。

有关详细信息,请参阅如何在客户端上启用 TLS 1.2

注意

默认情况下,支持 TLS 1.2(例如 Windows 10)的 OS 也支持旧版 TLS 协议。 使用 TLS 1.2 进行连接时,不会及时响应,或者连接重置时,OS 可能会尝试使用较旧的 TLS 协议(例如 TLS 1.0 或 1.1)连接到目标 Web 服务。 如果网络繁忙,或者数据包在网络中丢弃,则通常会发生这种情况。 临时回退到旧版 TLS 后,OS 将重试建立 TLS 1.2 连接。

Microsoft停止支持旧版 TLS 后,此类回退流量的状态是什么? OS 仍可能尝试使用旧版 TLS 协议建立 TLS 连接。 但是,如果Microsoft服务不再支持旧版 TLS 协议,则基于 TLS 的旧连接不会成功。 这将强制 OS 改用 TLS 1.2 再次尝试连接。

识别并减少对不支持 TLS 1.2 的客户端的依赖

更新以下客户端以提供不间断访问:

  • Android 版本 4.3 及更早版本
  • Firefox 版本 5.0 及更早版本
  • Windows 7 上的 Internet Explorer 版本 8-10 及更早版本
  • Windows Phone 8.0 上的 Internet Explorer 10
  • OS X 10.8.4 上的 Safari 6.0.4 及更早版本

有关详细信息,请参阅针对 SSLLabs.com 提供的连接到 www.microsoft.com 的各种客户端的握手模拟

在与 Microsoft Entra ID 通信的常见服务器角色上启用 TLS 1.2

在客户端或服务器操作系统上启用 TLS 1.2

注册表字符串

对于 Windows 2012 R2、Windows 8.1 及更高版本的操作系统,默认启用 TLS 1.2。 因此,除非使用不同的值设置以下注册表值,否则不会显示这些值。

若要在操作系统级别手动配置和启用 TLS 1.2,可以添加以下 DWORD 值:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
    • DisabledByDefault000000000
    • Enabled00000001
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
    • DisabledByDefault000000000
    • Enabled00000001
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\。NETFramework\v4.0.30319
    • SchUseStrongCrypto00000001

若要使用 PowerShell 脚本启用 TLS 1.2,请参阅 Microsoft Entra Connect 的 TLS 1.2 强制实施。

如何检查正在使用的 TLS 协议

下面是检查正在使用的 TLS 的两种方法:

  • 浏览器安全设置
  • Windows 中的 Internet 属性

若要检查使用 Internet 属性使用的 TLS 协议,请执行以下步骤:

  1. Windows+R 打开 “运行 ”框。

  2. 键入 inetcpl.cpl ,然后选择“ 确定”。 然后, 将打开“Internet 属性” 窗口。

  3. “Internet 属性 ”窗口中,选择“ 高级 ”选项卡并向下滚动以检查与 TLS 相关的设置。

    显示 Internet 属性中与 TLS 相关的设置的屏幕截图。

更新和配置 .NET Framework 以支持 TLS 1.2

托管Microsoft Entra 集成应用程序和 Windows PowerShell 脚本(使用 Microsoft Graph PowerShellMicrosoft Graph)可以使用 .NET Framework。

安装 .NET 更新以启用强加密

确定 .NET 版本

首先,确定已安装的 .NET 版本。

安装l .NET 更新

安装 .NET 更新,以便启用强加密。 某些版本的 .NET Framework 可能需要更新才能启用强加密。

使用以下准则:

  • .NET Framework 4.6.2 及更高版本支持 TLS 1.2 和 TLS 1.1。 检查注册表设置。 无需进行其他更改。

  • 更新 .NET Framework 4.6 及更早版本以支持 TLS 1.2 和 TLS 1.1。

    有关详细信息,请参阅 .NET Framework 版本和依赖项

  • 是否在 Windows 8.1 或 Windows Server 2012 上使用 .NET Framework 4.5.2 或 4.5.1? 然后,还可从 Microsoft 更新目录获取相关更新和详细信息。

对于跨网络通信并运行启用了 TLS 1.2 的系统的任何计算机,请设置以下注册表 DWORD 值。

  • 对于在 32 位 OS 上运行的 32 位应用程序或在 64 位 OS 上运行的 64 位应用程序,请更新以下子项值:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\。NETFramework\v2.0.50727

      • SystemDefaultTlsVersions00000001
      • SchUseStrongCrypto00000001
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\。NETFramework\v4.0.30319

      • SystemDefaultTlsVersions00000001
      • SchUseStrongCrypto00000001
  • 对于在 64 位 OS 上运行的 32 位应用程序,请更新以下子项值:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\。NETFramework\v2.0.50727
      • SystemDefaultTlsVersionsdword:00000001
      • SchUseStrongCryptodword:00000001
    • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\。NETFramework\v4.0.30319
      • SystemDefaultTlsVersionsdword:00000001
      • SchUseStrongCryptodword:00000001

例如,在以下内容上设置这些值:

  • Configuration Manager 客户端
  • 未安装在站点服务器上的远程站点系统角色
  • 站点服务器本身

有关详细信息,请参阅以下文章:

登录日志中的新遥测概述

为了帮助你识别环境中仍使用旧版 TLS 的任何客户端或应用,请查看 Microsoft Entra 登录日志。 对于通过旧版 TLS 登录的客户端或应用,Microsoft Entra ID 会将“其他详细信息”中的“旧版 TLS”字段标记为 True 仅当通过旧版 TLS 登录时才会显示旧版 TLS 字段。 如果在日志中看不到任何旧版 TLS,则可以切换到 TLS 1.2。

要查找使用旧版 TLS 协议的登录尝试,管理员可以通过以下方式查看日志:

  • 在 Azure Monitor 中导出和查询日志。
  • 以 JavaScript 对象表示法 (JSON) 格式下载过去 7 天的日志。
  • 使用 PowerShell 筛选和导出登录日志。

将在下面介绍这些方法。

可以使用 Azure Monitor 查询登录日志。 Azure Monitor 是一款功能强大的日志分析、监视和警报工具。 将 Azure Monitor 用于:

  • Microsoft Entra 日志
  • Azure 资源日志
  • 独立软件工具的日志

注意

需要Microsoft Entra ID P1 或 P2 许可证才能将报告数据导出到 Azure Monitor。

若要使用 Azure Monitor 查询旧版 TLS 条目:

  1. 将 Microsoft Entra 日志与 Azure Monitor 日志集成中,请按照有关如何访问 Azure Monitor 中的 Microsoft Entra 登录日志的说明进行操作。

  2. 在查询定义区域中,粘贴以下 Kusto 查询语言查询:

    // Interactive sign-ins only
    SigninLogs
    | where AuthenticationProcessingDetails has "Legacy TLS"
        and AuthenticationProcessingDetails has "True"
    | extend JsonAuthProcDetails = parse_json(AuthenticationProcessingDetails)
    | mv-apply JsonAuthProcDetails on (
        where JsonAuthProcDetails.key startswith "Legacy TLS"
        | project HasLegacyTls=JsonAuthProcDetails.value
    )
    | where HasLegacyTls == true
    
    // Non-interactive sign-ins
    AADNonInteractiveUserSignInLogs
    | where AuthenticationProcessingDetails has "Legacy TLS"
        and AuthenticationProcessingDetails has "True"
    | extend JsonAuthProcDetails = parse_json(AuthenticationProcessingDetails)
    | mv-apply JsonAuthProcDetails on (
        where JsonAuthProcDetails.key startswith "Legacy TLS"
        | project HasLegacyTls=JsonAuthProcDetails.value
    )
    | where HasLegacyTls == true
    
    // Workload Identity (service principal) sign-ins
    AADServicePrincipalSignInLogs
    | where AuthenticationProcessingDetails has "Legacy TLS"
        and AuthenticationProcessingDetails has "True"
    | extend JsonAuthProcDetails = parse_json(AuthenticationProcessingDetails)
    | mv-apply JsonAuthProcDetails on (
        where JsonAuthProcDetails.key startswith "Legacy TLS"
        | project HasLegacyTls=JsonAuthProcDetails.value
    )
    | where HasLegacyTls == true
    
  3. 选择“运行”以执行查询。 与查询匹配的日志条目显示在查询定义下方的“结果”选项卡中。

  4. 若要了解有关旧版 TLS 请求源的信息,请查找以下字段:

    • UserDisplayName
    • AppDisplayName
    • ResourceDisplayName
    • UserAgent

在 Microsoft Entra 管理中心查看有关日志条目的详细信息

获取日志后,可以在 Microsoft Entra 管理中心获取有关旧版基于 TLS 的登录日志条目的更多详细信息。 执行以下步骤:

  1. Azure 门户中,搜索并选择“Microsoft Entra ID”

  2. 在“概述”页菜单中,选择“登录日志”。

  3. 为用户选择登录日志条目。

  4. 选择"其他详细信息"选项卡。 (如果看不到此选项卡,请首先选择右上角的省略号 (...) 以查看选项卡的完整列表。

  5. 检查旧版 TLS(TLS 1.0、1.1 或 3DES)的值是否设置为。 如果看到该特定字段和值,则尝试使用旧版 TLS 进行登录。 如果尝试使用 TLS 1.2 进行登录,则不会显示该字段。

有关详细信息,请参阅 Microsoft Entra ID 中的登录日志

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区