重要
自 2024 年 6 月 30 日起,Microsoft Entra Connect 同步中的组写回 v2 公共预览版不再可用。 此功能从此日期开始停止使用,并且 Microsoft Entra Connect 同步不再支持将云安全组预配到 Active Directory。 该功能将在停止使用日期之后继续运行;但是,将不再获得支持,并且可能随时停止运行,恕不另行通知。
我们在 Microsoft Entra 云同步中提供了名为到 Active Directory 的组预配的类似功能,可用于替代通过组写回 v2 将云安全组预配到 Active Directory 的操作。 我们正在努力增强 Microsoft Entra Cloud Sync 的这项功能,以及我们在 Microsoft Entra Cloud Sync 中开发的其他新功能。
在“Microsoft Entra Connect 同步”中使用此预览功能的客户应将其配置从“Microsoft Entra Connect 同步”切换为“Microsoft Entra 云同步”。可以选择将所有混合同步移动到 Microsoft Entra Cloud Sync(如果它支持你的需求)。 你还可以并行运行 Microsoft Entra 云同步,并仅将目标为 Active Directory 的云安全组预配移动到 Microsoft Entra 云同步。
对于将 Microsoft 365 组预配到 Active Directory 的客户,可以继续使用组写回 v1 实现此功能。
可以使用用户同步向导来评估只移动到 Microsoft Entra 云同步的操作。
本文介绍如何使用 Microsoft Entra Connect Sync(前 Azure Active Directory Connect)将组写回迁移到 Microsoft Entra Cloud Sync。此方案 仅适用于 当前正在使用 Microsoft Entra Connect 组写回 v2 的客户。 本文中概述的过程仅适用于云创建且使用通用范围写回的安全组。
此场景仅支持以下内容:
写回到 Active Directory 的已启用邮件的组和通讯组列表将继续使用 Microsoft Entra Connect 组写回,但会恢复为组写回 v1 的行为。 在此场景中,禁用 Group Writeback v2 后,所有 Microsoft 365 组将独立于 Microsoft Entra 管理中心中的 Writeback Enabled 设置被写回 Active Directory。 有关详细信息,请参阅 Microsoft Entra Cloud Sync 常见问题解答中的 Active Directory 预配。
先决条件
至少具有 混合标识管理员 角色的 Microsoft Entra 帐户。
至少具有域管理员权限的本地 Active Directory 帐户。
需要访问
adminDescription
属性并将其复制到msDS-ExternalDirectoryObjectId
属性。具有 Windows Server 2016 操作系统或更高版本的本地 Active Directory 域服务环境。
Active Directory 架构属性
msDS-ExternalDirectoryObjectId
是不可或缺的。使用内部版本 1.1.1367.0 或更高版本预配代理。
预配代理必须能够与端口 TCP/389(LDAP)和 TCP/3268(全局编录)上的域控制器通信。
全局目录查找需要筛选掉无效的成员身份引用。
写回的组的命名约定
默认情况下,当写回命名组时,Microsoft Entra Connect Sync 使用以下格式:
- 默认格式:
CN=Group_<guid>,OU=<container>,DC=<___domain component>,DC=\<___domain component>
- 示例:
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=<display name>_<last 12 digits of object ID>,OU=<container>,DC=<___domain component>,DC=\<___domain component>
- 示例:
CN=Sales_e9305786a271,OU=WritebackContainer,DC=contoso,DC=com
默认情况下,Microsoft Entra Cloud Sync 使用新格式,即使Microsoft Entra Connect Sync 中未启用具有云显示名称功能的写回组可分辨名称功能也是如此。如果使用默认Microsoft Entra Connect Sync 命名,然后迁移组,使其由 Microsoft Entra Cloud Sync 管理,则将该组重命名为新格式。 使用以下部分,允许 Microsoft Entra Cloud Sync 使用 Microsoft Entra Connect 中的默认格式。
使用默认格式
如果要Microsoft Entra Cloud Sync 使用与 Microsoft Entra Connect Sync 相同的默认格式,则需要修改属性的属性流表达式 CN
。 两种可能的映射为:
表达式 | 语法 | 说明 |
---|---|---|
使用 DisplayName 的云同步默认表达式 |
Append(Append(Left(Trim([displayName]), 51), "_"), Mid([objectId], 25, 12)) |
Microsoft Entra Cloud Sync 使用的默认表达式(即新格式)。 |
不使用 DisplayName 的云同步新表达式 |
Append("Group_", [objectId]) |
使用 Microsoft Entra Connect Sync 的默认格式的新表达式。 |
有关详细信息,请参阅 添加属性映射 - Microsoft Entra ID 到 Active Directory。
步骤 1:将 adminDescription 复制到 msDS-ExternalDirectoryObjectID
若要验证组成员身份引用,Microsoft Entra Cloud Sync 必须查询该属性的 msDS-ExternalDirectoryObjectID
Active Directory 全局目录。 此索引属性可在 Active Directory 林中的所有全局目录之间进行复制。
可以使用以下 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
$properties = @('displayName', '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}
}
可以使用以下 PowerShell 脚本检查上述脚本的结果。 还可以确认所有组的值 adminDescription
都等于 msDS-ExternalDirectoryObjectID
值。
# Provide the DistinguishedName of your Group Writeback target OU
$gwbOU = 'OU=Groups,DC=Contoso,DC=com'
# Get all groups written back to Active Directory
$properties = @('displayName', 'Samaccountname', 'adminDescription', 'msDS-ExternalDirectoryObjectID')
$groups = Get-ADGroup -Filter * -SearchBase $gwbOU -Properties $properties |
Where-Object {$_.adminDescription -ne $null} |
Select-Object $properties
$groups | select displayName, adminDescription, 'msDS-ExternalDirectoryObjectID', @{Name='Equal';Expression={$_.adminDescription -eq $_.'msDS-ExternalDirectoryObjectID'}}
步骤 2:将 Microsoft Entra Connect 同步服务器置于暂存模式下并禁用同步计划程序
启动Microsoft Entra Connect 同步向导。
选择配置。
选择 “配置暂存模式 ”,然后选择“ 下一步”。
输入 Microsoft Entra 凭据。
选中“ 启用暂存模式 ”复选框,然后选择“ 下一步”。
选择配置。
选择退出。
在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。
禁用同步计划程序:
Set-ADSyncScheduler -SyncCycleEnabled $false
第三步:创建自定义组入站规则
在 Microsoft Entra Connect 同步规则编辑器中,您创建了一个入站同步规则,用于排除邮件属性为 NULL
的组。 入站同步规则是一种联接规则,其目标属性为cloudNoFlow
。 此规则将告知 Microsoft Entra Connect 不要同步这些组的属性。 要创建此同步规则,可以选择使用用户界面,或使用提供的脚本通过 PowerShell 创建它。
在用户界面中创建自定义组入站规则
在 “开始 ”菜单上,启动同步规则编辑器。
在 “方向”下,从下拉列表中选择“ 入站 ”,然后选择“ 添加新规则”。
在 “说明 ”页上,输入以下值,然后选择“ 下一步” :
- 名称:为规则指定有意义的名称。
- 说明:添加有意义的说明。
- 连接系统:选择要为其编写自定义同步规则的 Microsoft Entra 连接器。
- 连接的系统对象类型:选择 组。
- Metaverse 对象类型:选择 组。
- 链接类型:选择 “联接”。
- 优先级:提供系统中唯一的值。 建议使用小于 100 的值,使其优先于默认规则。
- 标记: 将字段留空。
在 范围筛选器 页上,添加以下值,然后选择“ 下一步” :
属性 操作员 值 cloudMastered
EQUAL
true
mail
ISNULL
在“ 加入规则 ”页上,选择“ 下一步”。
在“ 添加转换 ”页上,对于 FlowType,选择 “常量”。 对于 目标属性,请选择 cloudNoFlow。 对源,请选择True。
选择 添加 。
在 PowerShell 中创建自定义组入站规则
在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。
导入模块。
Import-Module ADSync
为同步规则优先级(0-99)提供唯一值。
[int] $inboundSyncRulePrecedence = 88
运行以下脚本:
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 创建它。
在用户界面中创建自定义组出站规则
在 “方向”下,从下拉列表中选择“ 出站 ”,然后选择“ 添加规则”。
在 “说明 ”页上,输入以下值,然后选择“ 下一步” :
- 名称:为规则指定有意义的名称。
- 说明:添加有意义的说明。
- 连接系统:选择要为其编写自定义同步规则的 Active Directory 连接器。
- 连接的系统对象类型:选择 组。
- Metaverse 对象类型:选择 组。
- 链接类型:选择 JoinNoFlow。
- 优先级:提供系统中唯一的值。 建议使用小于 100 的值,使其优先于默认规则。
- 标记:将字段留空。
在 “范围筛选器” 页上,对于 属性,选择 cloudNoFlow。 对于 运算符 ,请选择 EQUAL。 对于 值,请选择 True。 然后,选择“下一步”。
在“ 加入规则 ”页上,选择“ 下一步”。
在“转换”页上选择“添加”。
在 PowerShell 中创建自定义组入站规则
在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。
导入模块。
Import-Module ADSync
为同步规则优先级(0-99)提供唯一值。
[int] $outboundSyncRulePrecedence = 89
获取用于组写回功能的 Active Directory 连接器。
$connectorAD = Get-ADSyncConnector -Name "Contoso.com"
运行以下脚本:
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 完成配置
在 Microsoft Entra Connect 服务器上,以管理员身份打开 PowerShell 提示。
导入
ADSync
模块:Import-Module ADSync
运行完整的同步周期:
Start-ADSyncSyncCycle -PolicyType Initial
禁用租户的组写回功能。
警告
此操作不可逆。 禁用组写回 v2 后,所有 Microsoft 365 组都会写回到 Active Directory,这与 Microsoft Entra 管理中心中的 “已启用写回” 设置无关。
Set-ADSyncAADCompanyFeature -GroupWritebackV2 $false
再次运行完整同步周期:
Start-ADSyncSyncCycle -PolicyType Initial
重新启用同步调度程序
Set-ADSyncScheduler -SyncCycleEnabled $true
步骤 6:从暂存模式中删除 Microsoft Entra Connect Sync 服务器
- 启动Microsoft Entra Connect 同步向导。
- 选择配置。
- 选择 “配置暂存模式 ”,然后选择“ 下一步”。
- 输入 Microsoft Entra 凭据。
- 清除 “启用暂存模式 ”复选框,然后选择“ 下一步”。
- 选择配置。
- 选择退出。
步骤 7:配置 Microsoft Entra Cloud Sync
现在,这些组已从 Microsoft Entra Connect Sync 的同步范围中移除,可以设置和配置 Microsoft Entra Cloud Sync 来接管安全组的同步。 有关详细信息,请参阅使用 Microsoft Entra 云同步将组预配到 Active Directory。