本文介绍如何在将用户、组和成员身份从Microsoft Entra ID预配到本地Active Directory 域服务(AD DS)时,Microsoft Entra云同步预配引擎处理对象。 了解此行为有助于规划部署、预测创建、更新或删除时发生的情况,以及排查意外结果问题。
有关该功能及其支持的方案的简介,请参阅从Microsoft Entra ID到Active Directory的预配概述。
预配流程
Microsoft Entra ID是权威来源。 在每个同步周期中,预配服务:
- 读取范围。 它根据 范围筛选器确定哪些用户和组在范围内。
- 匹配。 对于每个作用域内对象,它查找要更新的现有 AD 对象。 有关详细信息,请参阅 匹配的工作原理。
- 应用属性映射。 它使用已配置的属性映射将 Microsoft Entra ID 属性转换成 AD 属性。
- 写入。 它通过云同步预配代理创建、更新或删除 AD 对象,该代理将请求转换为轻型目录访问协议 (LDAP) 操作。
预配服务以增量方式处理变更。 仅评估自上一个周期以来发生更改的对象,从而使增量周期保持高效。
匹配的工作原理
引擎使用持久定位点,而不是名称或可分辨名称,因此可以在不中断链接的情况下重命名或移动对象。
- 预配服务会在其预配的每个对象上标记
User_<objectId>(用户为Group_<objectId>,组为msDS-ExternalDirectoryObjectId)。 此属性是Microsoft Entra ID对象与其 AD 对应项之间的联接定位点。 - 在每个周期中,引擎会在目标域中搜索与源对象匹配的
msDS-ExternalDirectoryObjectIdAD 对象。- 找到匹配项 → 现有 AD 对象会被就地更新。
- 找不到匹配项 → 在目标容器中创建一个新的 AD 对象。
这种先匹配再创建的行为意味着预配过程是幂等的。 重新运行循环不会为同一Microsoft Entra ID标识创建重复对象。
注释
msDS-ExternalDirectoryObjectId和相关定位点属性由服务管理,在Microsoft Entra 管理中心中不可编辑。
如何预配用户
- 云原生用户 作为目标容器中的新 AD 用户对象创建。
- 将授权源(SOA)转换为云 的用户将与其现有的 AD 对象匹配并就地更新。 其 原始组织单位(OU)由 默认目标容器表达式保留,因此云更新会流回到用户的原始位置。 有关详细信息,请参阅 配置目标容器。
- 如果需要,可以将企业到企业(B2B)来宾用户预配到 AD 中。
- 通过保留 SOA 转换用户上的安全标识符(SID)等关键属性来维护标识连续性。
由于在填充该属性时,用户的本地位置派生自其 onPremisesDistinguishedName 属性,因此你配置的目标容器仅适用于还没有该位置的用户。 若要移动已预配的用户,请参阅 将预配的用户移动到其他组织单位。
用户 SOA 场景
下表说明了针对两种预配方向,如何根据用户的授权源来预配用户。
| 用例 | 用户SOA | 同步方向 | 同步的工作原理 |
|---|---|---|---|
| 没有 AD 帐户的云原生用户 | 云 | Microsoft Entra ID 到 AD | 在配置的目标容器中创建新的 AD 用户。 |
| 已转换为 SOA 的用户 | 云 | Microsoft Entra ID 到 AD | 匹配现有 AD 用户并就地更新该用户。 保留原始 OU 和 SID。 |
| B2B 来宾用户 | 云 | Microsoft Entra ID 到 AD | 当来宾用户属于处理范围时,创建 AD 用户。 |
| 同步的用户 | On-premises | Microsoft Entra ID 到 AD | 不预配用户。 Active Directory仍然具有权威性。 |
| 同步的用户 | On-premises | 从 AD 到 Microsoft Entra ID | 将用户预配到 Microsoft Entra ID。 |
| 已转换为 SOA 的用户 | 云 | 从 AD 到 Microsoft Entra ID | 不预配用户。 由于以云端为权威源,直接在 AD 中所做的更改会被忽略。 |
写回 Microsoft Entra ID 的本地属性
当 Cloud Sync 将用户预配到Active Directory时,它会将生成的本地值写回到Microsoft Entra ID中的用户对象:
| Attribute | 写回的值 |
|---|---|
onPremisesDistinguishedName |
AD 用户对象的可分辨名称(DN),其中包括其 OU 路径。 |
onPremisesSamAccountName |
分配给 AD 用户对象的 SAM 帐户名称。 |
onPremisesSecurityIdentifier |
AD 用户对象的安全标识符 (SID)。 |
onPremisesUserPrincipalName |
AD 用户对象的用户主体名称(UPN)。 |
onPremisesDomainName |
用户被预配到的 AD 域。 |
这种回写就是为什么云原生用户在首次预配周期后会有一个 onPremisesDistinguishedName 值。
属性更新
在 Microsoft Entra ID 中所做的属性更改会在下一个周期同步到 AD。 由于 云是事实来源,因此,在 AD 中直接对管理的属性所做的更改可能会在下一个同步周期内被覆盖。
如何预配组和成员身份
- 仅预配安全组。 不支持电子邮件的组和通讯组不受支持。
- 组将预配为 通用安全组,并通过同一
msDS-ExternalDirectoryObjectId锚点进行匹配。 - 成员身份按每个成员分别确定。 仅当该成员具有 AD 帐户时,才会写入成员引用。 当配置还预配用户且该成员处于范围内时,云托管成员会获得一个 AD 帐户。 是否预配父组本身取决于其权威源。
- 默认情况下,向本地用户预配成员身份处于关闭状态,必须在范围向导中显式启用。 请参阅 本地用户的组成员身份。
- 没有符合条件成员的范围内组会以空成员身份进行预配。
组成员身份 SOA 场景
对象在被预配之前必须处于作用域内,这同样适用于用户和组。 仅当成员具有可供引用指向的 AD 帐户时,才会写入成员引用。 本地同步成员已有一个。 仅当配置还预配用户且该成员处于范围内时,云托管成员才会获得 AD 帐户。 因此,在同时预配这两者的配置中,选择一个组,该组的成员为你要预配的用户。 在仅限组的配置中,云托管成员没有 AD 帐户,因此无法写入其成员身份引用。
下表说明了当源为 Microsoft Entra ID 时如何预配组成员资格。
| Configuration | SOA 父组 | 成员用户 SOA | 同步的工作原理 |
|---|---|---|---|
| 仅限群组 | 云 | On-premises | 为该组预配所有成员引用。 这些成员已经拥有通过目录同步获得的 AD 帐户。 |
| 仅限群组 | 云 | 云 | 预配没有成员引用的组。 |
| 仅限群组 | 云 | Mixed | 预配该组,并且仅包含本地成员的成员引用。 |
| 用户和用户组 | 云 | On-premises | 为该组预配所有成员引用。 |
| 用户和用户组 | 云 | 云 | 预配该组,为每个范围内成员创建 AD 帐户,并写入所有成员引用。 |
| 用户和用户组 | 云 | Mixed | 为该组预配所有成员引用。 本地部署成员已拥有 AD 帐户,而纳入范围的云托管成员则通过用户预配获得 AD 帐户。 |
Important
仅当启用本地用户的成员身份预配时,写入本地成员引用的行才适用。 默认情况下,此设置处于关闭状态。 在范围界定向导的“配置组成员身份”步骤中启用它,如“本地用户的组成员身份”中所述。
下表说明了当源为 Active Directory 时如何预配组成员身份。
| SOA 父组 | 成员用户 SOA | 同步的工作原理 |
|---|---|---|
| On-premises | On-premises | 为该组预配所有成员引用。 |
| On-premises | 云 | 预配该组并包含所有成员引用,包括 SOA 已转换到云的成员。 |
| On-premises | Mixed | 预配该组并包含所有成员引用,包括 SOA 已转换到云的成员。 |
| On-premises | None | 预配一个空组。 |
| 云 | 任意 | 不预配该组。 |
嵌套组的成员关系行为
作业 AAD2ADGroupProvisioning 处理嵌套组成员身份引用,如下表所述。
| 用例 | 父组类型 | 成员组类型 | 同步的工作原理 |
|---|---|---|---|
| Microsoft Entra 父安全组的成员仅包括 Microsoft Entra 安全组成员。 | Microsoft Entra安全组 | Microsoft Entra安全组 | 为父组配置所有成员组引用。 |
| Microsoft Entra 父级安全组具有已同步的组成员。 | Microsoft Entra安全组 | 同步的 AD DS 安全组 | 预配父组,但未预配 AD DS 组引用。 |
| Microsoft Entra 父级安全组具有 SOA 已转换到云端的同步组成员。 | Microsoft Entra安全组 | 经 SOA 转换的 AD DS 安全组 | 为父组配置所有成员组引用。 |
| 转换以云拥有组为成员的同步父组的 SOA。 | 经 SOA 转换的 AD DS 安全组 | Microsoft Entra安全组 | 为父组配置所有成员组引用。 |
| 将具有其他同步组作为成员的已同步父组的 SOA 进行转换。 | 经 SOA 转换的 AD DS 安全组 | 同步的 AD DS 安全组 | 预配父组,但未预配 AD DS 组引用。 |
| 转换其成员为其他 SOA 转换组的同步父组的 SOA。 | 经 SOA 转换的 AD DS 安全组 | 经 SOA 转换的 AD DS 安全组 | 为父组配置所有成员组引用。 |
删除的工作原理
删除行为取决于对象类型和生命周期事件。 可以禁用 AD 用户帐户,但 AD 组没有禁用状态。
| Microsoft Entra ID中的触发器 | 在 Active Directory 中的影响 |
|---|---|
| 用户已被软删除 | 已禁用匹配的 AD 用户帐户。 |
| 用户被硬删除 | 将删除匹配的 AD 用户帐户。 |
| 用户超出范围 | 已禁用匹配的 AD 用户帐户。 |
| 一个组已被硬删除 | 匹配的 AD 组已被删除。 |
| 成员已从Microsoft Entra ID中的组中删除 | 相应的成员引用项已从 AD 组中删除。 |
Warning
在生产环境中应用测试配置之前,请验证测试配置中的作用域更改。 当对象离开范围时,请查看预配日志以确认生成的操作。 不能禁用 AD 组,因此不要对组应用用户取消预配行为。
密码回写
可将 Microsoft Entra ID 中的密码更改同步到匹配 AD 帐户的“密码写回”功能不适用于云管理用户。 这些用户可以使用预配创建的 AD 帐户通过无密码身份验证访问基于 Kerberos 的应用程序。 有关详细信息,请参阅 云托管用户如何登录到应用程序。
同步频率
预配服务按定期计划运行。 每个周期都会以增量方式检测到变更。
常见任务
以下任务已在配置向 Active Directory 预配中进行了分步介绍。
| Task | Description |
|---|---|
| 将预配的用户移动到其他组织单位 | 更改已预配的用户的 OU。 |
| 保留组的原始组织单位 | 将已转换为 SOA 的组保留在其当前所在的 OU 中。 |
| 保留组的原始公用名 | 保留 SOA 转换组的现有名称。 |
| 回滚已转换为 SOA 的用户或组 | 将对象返回到本地控件。 |