将 Microsoft Entra Connect Sync 组写回 V2 迁移到 Microsoft Entra 云同步

重要

2024 年 6 月 30 日之后,Microsoft Entra Connect Sync 将不再提供组写回 V2 (GWB) 的公共预览版。 此功能将于该日期停止使用,Connect Sync 不再支持将云安全组预配到 Active Directory。 该功能将在停止使用日期之后继续运行;但是,在此日期之后将不再获得支持,并且可能随时停止运行,恕不另行通知。

我们在 Microsoft Entra Cloud Sync 中提供了类似的功能,称为将组预配到 Active Directory,可以用来代替使用组写回 V2 将云安全组预配到 Active Directory。 我们正致力于在 Cloud Sync 中增强此功能,并增强我们在 Cloud Sync 中开发的其他新功能。

在 Connect Sync 中使用此预览功能的客户应将其配置从 Connect Sync 切换到 Cloud Sync。可以选择将所有混合同步移动到 Cloud Sync(如果其支持这种需求)。 还可以并行运行 Cloud Sync,并仅将云安全组预配移动到 Cloud Sync 中的 Active Directory。

对于将 Microsoft 365 组预配到 Active Directory 的客户,可以继续使用组写回 v1 实现此功能。

可以通过使用用户同步向导来评估只移动到 Cloud Sync 的操作。

以下文档介绍如何使用 Microsoft Entra Connect Sync(以前称为 Azure AD Connect)将组写回迁移到 Microsoft Entra Cloud Sync。此方案仅适用于当前使用 Microsoft Entra Connect 组写回 v2 的客户。 本文档中概述的过程仅适用于使用通用范围写回的云创建的安全组。

重要

此方案仅适用于当前使用 Microsoft Entra Connect 组写回 v2 的客户

此外,仅以下项支持此方案:

邮件启用的组和写回 AD 的 DL 会继续与 Microsoft Entra Connect 组写回一起使用,但将还原到组写回 V1 的行为,因此在此方案中,在禁用组写回 V2 后,所有 M365 组都将独立于 Entra 管理中心的“已启用写回”设置写回 AD。 有关详细信息,请参阅使用 Microsoft Entra 云同步预配到 Active Directory 常见问题解答

先决条件

实现此方案需要满足以下先决条件。

  • 至少具有混合标识管理员角色的 Microsoft Entra 帐户。
  • 至少具有域管理员权限的本地 AD 帐户 - 访问 adminDescription 属性并将其复制到 msDS-ExternalDirectoryObjectId 属性所必需的
  • 具有 Windows Server 2016 操作系统或更高版本的本地 Active Directory 域服务环境。
    • AD 架构属性所需 - msDS-ExternalDirectoryObjectId
  • 使用内部版本 1.1.1367.0 或更高版本预配代理。
  • 预配代理必须能够与端口 TCP/389 (LDAP) 和 TCP/3268(全局目录)上的域控制器通信。
    • 全局目录查找需要筛选出无效的成员身份引用

写回的组的命名约定

默认情况下,Microsoft Entra Connect Sync 在写回命名组时使用以下格式。

  • 默认格式:CN=Group_<guid>,OU=<容器>,DC=<域组件>,DC=<域组件>

  • 示例:CN=Group_3a5c3221-c465-48c0-95b8-e9305786a271,OU=WritebackContainer,DC=contoso,DC=com

为了更轻松地查找从 Microsoft Entra ID 写回到 Active Directory 的组,Microsoft Entra Connect Sync 添加了一个选项,使用云显示名称来写回组名称。 为此,请在初始设置组写回 v2 期间选择“带云显示名称的写回组可分辨名称”。 如果启用此功能,Microsoft Entra Connect 将使用以下新格式,而不是默认格式:

  • 新格式:CN=<显示名称>_<对象 ID 的最后 12 位数字>,OU=<容器>,DC=<域组件>,DC=<域组件>

  • 示例:CN=Sales_e9305786a271,OU=WritebackContainer,DC=contoso,DC=com

重要

默认情况下,Microsoft Entra 云同步将使用新格式,即使 Microsoft Entra Connect Sync 中未启用带有云显示名称功能的写回组可分辨名称也不例外。如果使用默认的 Microsoft Entra Connect Sync 命名,然后迁移该组以便由 Microsoft Entra 云同步管理,则该组将重命名为新格式。 使用以下部分以允许 Microsoft Entra 云同步使用 Microsoft Entra Connect 的默认格式。

使用默认格式

如果希望云同步使用与 Microsoft Entra Connect Sync 相同的默认格式,则需要修改 CN 属性的属性流表达式。 两种可能的映射为:

表达式 语法 说明
使用 DisplayName 的云同步默认表达式 Append(Append(Left(Trim([displayName]), 51), "_"), Mid([objectId], 25, 12)) Microsoft Entra 云同步使用的默认表达式(即新格式)
不使用 DisplayName 的云同步新表达式 Append("Group_", [objectId]) 使用 Microsoft Entra Connect Sync 的默认格式的新表达式。

有关更多信息,请参阅添加属性映射 - Microsoft Entra ID 到 Active Directory

步骤 1 - 将 adminDescription 复制到 msDS-ExternalDirectoryObjectID

若要验证组成员身份引用,Microsoft Entra Cloud Sync 必须查询 Active Directory 全局目录中的 msDS-ExternalDirectoryObjectID 属性。 这是一个索引属性,可在 Active Directory 林中的所有全局目录中复制。

  1. 在本地环境中,打开 ADSI Edit。

  2. 复制组的 adminDescription 属性中的值

    adminDescription 属性的屏幕截图。

  3. 粘贴到 msDS-ExternalDirectoryObjectID 属性

    msDS-ExternalDirectoryObjectID 属性的屏幕截图。

以下 PowerShell 脚本可用于帮助自动执行此步骤。 此脚本将获取 OU=Groups,DC=Contoso,DC=com 容器中的所有组,并将 adminDescription 属性值复制到 msDS-ExternalDirectoryObjectID 属性值。 在使用此脚本之前,请使用组写回目标组织单位 (OU) 的 DistinguishedName 更新变量 $gwbOU


# Provide the DistinguishedName of your Group Writeback target OU
$gwbOU = 'OU=Groups,DC=Contoso,DC=com'

# Get all groups written back to Active Directory
Import-module ActiveDirectory
$properties = @('Samaccountname', 'adminDescription', 'msDS-ExternalDirectoryObjectID')
$groups = Get-ADGroup -Filter * -SearchBase $gwbOU -Properties $properties | 
    Where-Object {$_.adminDescription -ne $null} |
        Select-Object $properties

# Set msDS-ExternalDirectoryObjectID for all groups written back to Active Directory 
foreach ($group in $groups) {
    Set-ADGroup -Identity $group.Samaccountname -Add @{('msDS-ExternalDirectoryObjectID') = $group.adminDescription}
} 

步骤 2 - 将 Microsoft Entra Connect Sync 服务器置于暂存模式并禁用同步计划程序

  1. 启动 Microsoft Entra Connect Sync 向导

  2. 单击“配置”。

  3. 选择“配置暂存模式”,然后单击“下一步”

  4. 输入 Microsoft Entra 凭据

  5. 勾选“启用暂存模式”框,然后单击“下一步”

    启用暂存模式的屏幕截图。

  6. 单击“配置”。

  7. 单击“退出”

    暂存模式成功的屏幕截图。

  8. 在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。

  9. 禁用同步计划程序:

    Set-ADSyncScheduler -SyncCycleEnabled $false  
    

步骤 3 - 创建自定义组入站规则

在 Microsoft Entra Connect Synchronization Rules 编辑器中,需要创建一个入站同步规则,用于筛选掉邮件属性为 NULL 的组。 入站同步规则是目标属性为 cloudNoFlow 的联接规则。 此规则将告知 Microsoft Entra Connect 不要同步这些组的属性。 要创建此同步规则,可以选择使用用户界面,或使用提供的脚本通过 PowerShell 创建它。

在用户界面中创建自定义组入站规则

  1. 从“开始”菜单启动“同步规则编辑器”。

  2. 在“方向”下拉列表中选择“入站”,然后选择“添加新规则”。

  3. 在“说明”页上,输入以下内容并选择“下一步”:

    • 名称: 为规则指定一个有意义的名称

    • 说明: 添加有意义的说明

    • 连接的系统:选择要为其编写自定义同步规则的 Microsoft Entra 连接器

    • 连接的系统对象类型:组

    • Metaverse 对象类型:组

    • 链接类型: 联接

    • 优先级:提供在系统中唯一的值。 建议小于 100,以便优先于默认规则。

    • 标记:留空

      入站同步规则的屏幕截图。

  4. 在范围筛选器页上,添加以下内容,然后选择“下一步”

    属性 操作员
    cloudMastered EQUAL
    mail ISNULL

    范围筛选器的屏幕截图。

  5. 在“联接”规则页上,选择“下一步”。

  6. 在“转换”页上添加一个“常量”转换:将 True 流送到 cloudNoFlow 属性。 选择 添加

    转换的屏幕截图。

在 PowerShell 中创建自定义组入站规则

  1. 在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。

  2. 导入 模块。

    Import-Module ADSync
    
  3. 为同步规则优先级 [0-99] 提供唯一值。

    [int] $inboundSyncRulePrecedence = 88
    
  4. 执行以下脚本:

     New-ADSyncRule  `
     -Name 'In from AAD - Group SOAinAAD coexistence with Cloud Sync' `
     -Identifier 'e4eae1c9-b9bc-4328-ade9-df871cdd3027' `
     -Description 'https://learn.microsoft.com/entra/identity/hybrid/cloud-sync/migrate-group-writeback' `
     -Direction 'Inbound' `
     -Precedence $inboundSyncRulePrecedence `
     -PrecedenceAfter '00000000-0000-0000-0000-000000000000' `
     -PrecedenceBefore '00000000-0000-0000-0000-000000000000' `
     -SourceObjectType 'group' `
     -TargetObjectType 'group' `
     -Connector 'b891884f-051e-4a83-95af-2544101c9083' `
     -LinkType 'Join' `
     -SoftDeleteExpiryInterval 0 `
     -ImmutableTag '' `
     -OutVariable syncRule
    
     Add-ADSyncAttributeFlowMapping  `
     -SynchronizationRule $syncRule[0] `
     -Source @('true') `
     -Destination 'cloudNoFlow' `
     -FlowType 'Constant' `
     -ValueMergeType 'Update' `
     -OutVariable syncRule
    
     New-Object  `
     -TypeName 'Microsoft.IdentityManagement.PowerShell.ObjectModel.ScopeCondition' `
     -ArgumentList 'cloudMastered','true','EQUAL' `
     -OutVariable condition0
    
     New-Object  `
     -TypeName 'Microsoft.IdentityManagement.PowerShell.ObjectModel.ScopeCondition' `
     -ArgumentList 'mail','','ISNULL' `
     -OutVariable condition1
    
     Add-ADSyncScopeConditionGroup  `
     -SynchronizationRule $syncRule[0] `
     -ScopeConditions @($condition0[0],$condition1[0]) `
     -OutVariable syncRule
    
     Add-ADSyncRule  `
     -SynchronizationRule $syncRule[0]
    
     Get-ADSyncRule  `
     -Identifier 'e4eae1c9-b9bc-4328-ade9-df871cdd3027'
    

步骤 4 - 创建自定义组出站规则

还需要一个链接类型为 JoinNoFlow 的出站同步规则,以及将 cloudNoFlow 属性设置为 True 的范围筛选器。 此规则将告知 Microsoft Entra Connect 不要同步这些组的属性。 要创建此同步规则,可以选择使用用户界面,或使用提供的脚本通过 PowerShell 创建它。

在用户界面中创建自定义组入站规则

  1. 在“方向”下拉列表中选择“出站”,然后选择“添加规则”。

  2. 在“说明”页上,输入以下内容并选择“下一步”:

    • 名称: 为规则指定一个有意义的名称
    • 说明: 添加有意义的说明
    • 连接的系统:选择要为其编写自定义同步规则的 AD 连接器
    • 连接的系统对象类型:组
    • Metaverse 对象类型:组
    • 链接类型: JoinNoFlow
    • 优先级:提供在系统中唯一的值。 建议小于 100,以便优先于默认规则。
    • 标记:留空

    出站同步规则的屏幕截图。

  3. 在“范围筛选器”页上,选择“cloudNoFlow”、“等于”、“True”。 然后,选择“下一步”。

    出站范围筛选器的屏幕截图。

  4. 在“联接”规则页上,选择“下一步”。

  5. 在“转换”页上选择“添加”。

在 PowerShell 中创建自定义组入站规则

  1. 在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。

  2. 导入 模块。

    Import-Module ADSync
    
  3. 为同步规则优先级 [0-99] 提供唯一值。

    [int] $outboundSyncRulePrecedence = 89
    
  4. 获取用于组写回的 Active Directory 连接器。

    $connectorAD = Get-ADSyncConnector -Name "Contoso.com"
    
  5. 执行以下脚本:

     New-ADSyncRule  `
     -Name 'Out to AD - Group SOAinAAD coexistence with Cloud Sync' `
     -Identifier '419fda18-75bb-4e23-b947-8b06e7246551' `
     -Description 'https://learn.microsoft.com/entra/identity/hybrid/cloud-sync/migrate-group-writeback' `
     -Direction 'Outbound' `
     -Precedence $outboundSyncRulePrecedence `
     -PrecedenceAfter '00000000-0000-0000-0000-000000000000' `
     -PrecedenceBefore '00000000-0000-0000-0000-000000000000' `
     -SourceObjectType 'group' `
     -TargetObjectType 'group' `
     -Connector $connectorAD.Identifier `
     -LinkType 'JoinNoFlow' `
     -SoftDeleteExpiryInterval 0 `
     -ImmutableTag '' `
     -OutVariable syncRule
    
     New-Object  `
     -TypeName 'Microsoft.IdentityManagement.PowerShell.ObjectModel.ScopeCondition' `
     -ArgumentList 'cloudNoFlow','true','EQUAL' `
     -OutVariable condition0
    
     Add-ADSyncScopeConditionGroup  `
     -SynchronizationRule $syncRule[0] `
     -ScopeConditions @($condition0[0]) `
     -OutVariable syncRule
    
     Add-ADSyncRule  `
     -SynchronizationRule $syncRule[0]
    
     Get-ADSyncRule  `
     -Identifier '419fda18-75bb-4e23-b947-8b06e7246551'
    

步骤 5 - 使用 PowerShell 完成配置

  1. 在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。

  2. 导入 ADSync 模块:

    Import-Module ADSync
    
  3. 运行完全同步周期:

    Start-ADSyncSyncCycle -PolicyType Initial
    
  4. 为租户禁用组写回功能:

    警告

    此操作不可逆。 禁用组写回 V2 后,所有 Microsoft 365 组都将独立于 Entra 管理中心的“已启用写回”设置写回 AD。

    Set-ADSyncAADCompanyFeature -GroupWritebackV2 $false 
    
  5. 运行完全同步周期(再次):

    Start-ADSyncSyncCycle -PolicyType Initial
    
  6. 重新启用同步计划程序:

    Set-ADSyncScheduler -SyncCycleEnabled $true  
    

    PowerShell 执行的屏幕截图。

步骤 6 - 通过暂存模式删除 Microsoft Entra Connect Sync 服务器

  1. 启动 Microsoft Entra Connect Sync 向导
  2. 单击“配置”。
  3. 选择“配置暂存模式”,然后单击“下一步”
  4. 输入 Microsoft Entra 凭据
  5. 取消勾选“启用暂存模式”框,然后单击“下一步”
  6. 单击“配置”。
  7. 单击“退出”

步骤 7 - 配置 Microsoft Entra Cloud Sync

现在,这些组已从 Microsoft Entra Connect Sync 的同步范围中移除,可以设置和配置 Microsoft Entra Cloud Sync 来接管安全组的同步。 请参阅使用 Microsoft Entra Cloud Sync 将组预配到 Active Directory

后续步骤