教程:为混合环境启用 Microsoft Entra 域服务中的密码同步

对于混合环境,可以使用 Microsoft Entra Connect 将 Microsoft Entra 租户配置为与本地 Active Directory 域服务(AD DS)环境同步。 默认情况下,Microsoft Entra Connect 不会同步Microsoft Entra 域服务所需的旧 NT LAN 管理器(NTLM)和 Kerberos 密码哈希。

若要将域服务与从本地 AD DS 环境同步的帐户一起使用,需要配置 Microsoft Entra Connect 以同步 NTLM 和 Kerberos 身份验证所需的密码哈希。 配置 Microsoft Entra Connect 之后,本地帐户创建或密码更改事件也会将旧密码哈希同步到 Microsoft Entra ID。

如果使用无本地 AD DS 环境的仅限云帐户,则无需执行这些步骤。

在本教程中,学习以下内容:

  • 为什么需要旧版 NTLM 和 Kerberos 密码哈希
  • 如何为 Microsoft Entra Connect 配置旧密码哈希同步

如果没有 Azure 订阅,请在开始之前 创建帐户

先决条件

若要完成本教程,需要以下各资源:

使用 Microsoft Entra Connect 的密码哈希同步

Microsoft Entra Connect 用于将用户帐户和组等对象从本地 AD DS 环境同步到 Microsoft Entra 租户。 在此过程中,密码哈希同步使帐户能够在本地 AD DS 环境中使用相同的密码,并Microsoft Entra ID。

若要对托管域上的用户进行身份验证,域服务需要采用适合 NTLM 和 Kerberos 身份验证的格式的密码哈希。 Microsoft Entra ID 不会以 NTLM 或 Kerberos 身份验证所需的格式存储密码哈希,除非为租户启用域服务。 出于安全考虑,Microsoft Entra ID 也不以明文形式存储任何密码凭据。 因此,Microsoft Entra ID 无法基于用户的现有凭据自动生成这些 NTLM 或 Kerberos 密码哈希。

Microsoft Entra Connect 可被配置为同步域服务所需的 NTLM 或 Kerberos 密码哈希。 请确保已完成为 密码哈希同步启用 Microsoft Entra Connect 的步骤。 如果已有 Microsoft Entra Connect 实例, 请下载并更新到最新版本 ,以确保可以同步 NTLM 和 Kerberos 的旧密码哈希。 此功能在早期版本的 Microsoft Entra Connect 或旧版 DirSync 工具中不可用。 Microsoft Entra Connect 版本 1.1.614.0 或更高版本是必需的。

重要

安装和配置的 Microsoft Entra Connect 应仅用于与本地 AD DS 环境同步。 不支持在域服务托管域中安装 Microsoft Entra Connect,以将对象同步回 Microsoft Entra ID。

启用密码哈希同步

安装 Microsoft Entra Connect 并配置为与 Microsoft Entra ID 同步后,现在配置 NTLM 和 Kerberos 的旧密码哈希同步。 PowerShell 脚本用于配置所需的设置,然后启动完整密码同步到 Microsoft Entra ID。 当Microsoft Entra Connect 密码哈希同步过程完成时,用户可以通过使用旧 NTLM 或 Kerberos 密码哈希的域服务登录到应用程序。

  1. 在安装了 Microsoft Entra Connect 的计算机上,从“开始”菜单中打开 Microsoft Entra Connect > 同步服务

  2. 选择“ 连接器 ”选项卡。列出了用于在本地 AD DS 环境和 Microsoft Entra ID 之间建立同步的连接信息。

    “类型”中会列出“Windows Microsoft Entra ID (Microsoft)”(适用于 Microsoft Entra 连接器)或“Active Directory 域服务”(适用于本地 AD DS 连接器)。 记下下一步中 PowerShell 脚本中使用的连接器名称。

    列出 Sync Service Manager 中的连接器名称

    在此示例屏幕截图中,使用以下连接器:

    • Microsoft Entra 连接器命名为 contoso.onmicrosoft.com - Microsoft Entra ID
    • 本地的 AD DS 连接器被命名为 onprem.contoso.com
  3. 将以下 PowerShell 脚本复制并粘贴到安装了 Microsoft Entra Connect 的计算机。 该脚本触发包含旧密码哈希的完整密码同步。 将 $azureadConnector$adConnector 变量更新为上一步中的连接器名称。

    在每个 AD 林中运行此脚本,以将本地帐户 NTLM 和 Kerberos 密码哈希同步到 Microsoft Entra ID。

    # Define the Azure AD Connect connector names and import the required PowerShell module
    $azureadConnector = "<CASE SENSITIVE AZURE AD CONNECTOR NAME>"
    $adConnector = "<CASE SENSITIVE AD DS CONNECTOR NAME>"
    
    Import-Module "C:\Program Files\Microsoft Azure AD Sync\Bin\ADSync\ADSync.psd1"
    Import-Module "C:\Program Files\Microsoft Azure Active Directory Connect\AdSyncConfig\AdSyncConfig.psm1"
    
    # Create a new ForceFullPasswordSync configuration parameter object then
    # update the existing connector with this new configuration
    $c = Get-ADSyncConnector -Name $adConnector
    $p = New-Object Microsoft.IdentityManagement.PowerShell.ObjectModel.ConfigurationParameter "Microsoft.Synchronize.ForceFullPasswordSync", String, ConnectorGlobal, $null, $null, $null
    $p.Value = 1
    $c.GlobalParameters.Remove($p.Name)
    $c.GlobalParameters.Add($p)
    $c = Add-ADSyncConnector -Connector $c
    
    # Disable and re-enable Azure AD Connect to force a full password synchronization
    Set-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector -TargetConnector $azureadConnector -Enable $false
    Set-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector -TargetConnector $azureadConnector -Enable $true
    

    根据目录在帐户和组数方面的大小,将旧密码哈希同步到 Microsoft Entra ID 可能需要一些时间。 密码在同步到 Microsoft Entra ID 之后,将同步到托管域。

后续步骤

在本教程中,你学习了:

  • 为什么需要旧版 NTLM 和 Kerberos 密码哈希
  • 如何为 Microsoft Entra Connect 配置旧密码哈希同步