在环境中启用对 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 密码套件 服务。

实例类型 弃用日期 状态
美国政府实例 2021 年 3 月 31 日 完成
公共实例 2022 年 1 月 31 日 完成
中国世纪互联运营的Microsoft Entra实例 2023 年 6 月 持续

对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。
  • 确保使用 Microsoft GraphMicrosoft Graph PowerShell) 脚本的应用程序和 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 的 OS (例如,Windows 10) 也支持旧版 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
    • DisabledByDefault00000000
    • Enabled00000001
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
    • DisabledByDefault00000000
    • 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 Graph PowerShell 和 Microsoft Graph) (托管Microsoft Entra集成应用程序和Windows PowerShell脚本可以使用 .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 反馈社区提交产品反馈。