Microsoft Entra Connect Sync:了解默认配置

本文介绍现成的配置规则。 它记录规则以及这些规则如何影响配置。 它还将引导你完成Microsoft Entra Connect Sync 的默认配置。目标是读者了解配置模型(名为声明性预配)在实际示例中的工作方式。 本文假定已使用安装向导安装和配置 Microsoft Entra Connect 同步。

若要了解配置模型的详细信息,请阅读 了解声明性预配

从本地到 Microsoft Entra ID 的现成规则

可以在开箱即用配置中找到以下表达式。

用户的现成规则

这些规则也适用于 iNetOrgPerson 对象类型。

用户对象必须满足以下条件才能同步:

  • 必须具有 sourceAnchor。
  • 在 Microsoft Entra ID 中创建对象后,sourceAnchor 将无法更改。 如果值在本地更改,则对象将停止同步,直到 sourceAnchor 更改回其以前的值。
  • 必须填充 accountEnabled (userAccountControl) 属性。 使用本地 Active Directory 时,此属性始终存在并填充。

以下用户对象不会同步到 Microsoft Entra ID

  • IsPresent([isCriticalSystemObject])。 确保不会同步 Active Directory 中的多个现成对象(例如内置的管理员帐户)。
  • IsPresent([sAMAccountName]) = False。 确保没有 sAMAccountName 属性的用户对象未同步。 这种情况实际上只会发生在从 NT4 升级的域中。
  • Left([sAMAccountName], 4) = "AAD_"Left([sAMAccountName], 5) = "MSOL_"。 请勿同步 Microsoft Entra Connect Sync 及其早期版本使用的服务帐户。
  • 不要同步在 Exchange Online 中不起作用的 Exchange 帐户。
    • [sAMAccountName] = "SUPPORT_388945a0"
    • Left([mailNickname], 14) = "SystemMailbox{"
    • (Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0))
    • (Left([sAMAccountName], 4) = "CAS_" && (InStr([sAMAccountName], "}")> 0))
  • 不要同步在 Exchange Online 中不起作用的对象。 CBool(IIF(IsPresent([msExchRecipientTypeDetails]),BitAnd([msExchRecipientTypeDetails],&H21C07000) > 0,NULL))
    此位掩码(&H21C07000)将筛选出以下对象:
    • 启用电子邮件的公用文件夹(在版本 1.1.524.0 的预览版中)
    • 系统助理邮箱
    • 邮箱数据库邮箱(系统邮箱)
    • 通用安全组(不适用于用户,但由于遗留原因而存在)
    • 非通用组(不适用于用户,但出于历史原因而存在)
    • 邮箱计划
    • 发现邮箱
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0)。 不同步任何复制牺牲者对象。

以下属性规则适用:

  • sourceAnchor <- IIF([msExchRecipientTypeDetails]=2,NULL,..)。 sourceAnchor 属性不是由链接邮箱贡献的。 根据假设,如果已找到链接的邮箱,实际的帐户会在稍后加入。
  • 仅当 mailNickName 具有值时,才会同步与 Exchange 相关的属性。
  • 如果有多片林,属性将会被按以下顺序消耗:
    1. 登录的相关属性(例如 userPrincipalName)将从具有已启用帐户的林提供。
    2. 可以在 Exchange GAL(全局地址列表)中找到的属性将从具有 Exchange 邮箱的林提供。
    3. 如果找不到邮箱,这些属性可来自于任何林。
    4. Exchange 相关的属性(GAL 中未显示的技术属性)从 mailNickname ISNOTNULL 的林提供。
    5. 如果有多个林满足这些规则之一,则连接器(林)的创建顺序(日期/时间)用于确定哪些林贡献属性。 连接的第一个林将是要同步的第一个林。

联系人的现成规则

联系人对象必须满足以下条件才能同步:

  • 必须具有邮件属性值。
  • 联系人必须启用邮件功能。 它使用以下规则进行验证:
    • IsPresent([proxyAddresses]) = True)。 必须填充 proxyAddresses 属性。
    • 可以在 proxyAddresses 属性或邮件属性中找到主电子邮件地址。 使用 @ 的存在来验证内容是否为电子邮件地址。 这两个规则中必须有一个被评估为成立。
      • (Contains([proxyAddresses], "SMTP:") > 0) && (InStr(Item([proxyAddresses], Contains([proxyAddresses], "SMTP:")), "@") > 0))。 是否有带有“SMTP:”的条目,如果存在,是否可以在字符串中找到 @?
      • (IsPresent([mail]) = True && (InStr([mail], "@") > 0)。 邮件属性是否已填充,如果是,是否可以在字符串中找到 @?

以下联系人对象不会同步到 Microsoft Entra ID

  • IsPresent([isCriticalSystemObject])。 确保不对标记为“关键”的联系人对象进行同步。 不应是任何使用默认配置的项。
  • ((InStr([displayName], "(MSOL)") > 0) && (CBool([msExchHideFromAddressLists])))
  • (Left([mailNickname], 4) = "CAS_" && (InStr([mailNickname], "}") > 0))。 这些对象在 Exchange Online 中不起作用。
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0)。 不要同步任何复制目标对象。

组的现成规则

组对象必须满足以下条件才能同步:

  • 必须少于 250,000 个成员。 这会统计为本地组中的成员数目。
    • 如果组在首次同步启动之前包含更多的成员,该组将不同步。
    • 如果成员数量从最初创建时有所增加,当成员数达到 250,000 时将停止同步,直到成员数量再次低于 250,000。
    • 注意:Microsoft Entra ID 限制成员数量为 250,000。 即使修改或删除此规则,也无法将组与更多成员同步。
  • 如果组是 分发组,则还必须启用邮件功能。 请参阅 Contact out-of-box rules(联系人的现成规则),了解实施此规则的情况。

以下组对象不会同步到 Microsoft Entra ID

  • IsPresent([isCriticalSystemObject])。 确保不会同步 Active Directory 中的多个现成对象(例如内置的管理员组)。
  • [sAMAccountName] = "MSOL_AD_Sync_RichCoexistence"。 DirSync 使用的传统组。
  • BitAnd([msExchRecipientTypeDetails],&amp;H40000000)。 角色组。
  • CBool(InStr(DNComponent(CRef([dn]),1),"\\0ACNF:")>0)。 不要同步任何被复制的受害对象。

ForeignSecurityPrincipal 现成规则

FSP 联接到 Metaverse 中的“任何”(*) 对象。 实际上,此联接仅适用于用户和安全组。 此配置可确保在 Microsoft Entra ID 中正确解析和表示跨林成员身份。

计算机现成规则

计算机对象必须满足以下条件才能同步:

  • userCertificate ISNOTNULL。 只有 Windows 10 计算机填充此属性。 此属性中具有值的所有计算机对象都已同步。

了解现成的规则方案

在本示例中,将使用具有一个帐户林 (A)、一个资源林 (R) 和一个 Microsoft Entra 目录的部署。

带有方案说明的图片

在此配置中,假设在帐户林中找到已启用的帐户,并在具有链接邮箱的资源林中找到已禁用的帐户。

我们的默认配置目标是:

  • 与登录相关的属性将从林与已启用的帐户同步。
  • 可以在 GAL(全局地址列表)中找到的属性从林与邮箱同步。 如果找不到邮箱,将使用任何其他林。
  • 如果找到链接的邮箱,则要导出到 Microsoft Entra ID 的对象必须有已链接并启用的帐户。

同步规则编辑器

可以使用工具“同步规则编辑器”(SRE)查看和更改配置,并在“开始”菜单中找到该配置的快捷方式。

同步规则编辑器图标

SRE 是一个资源工具包工具,它随 Microsoft Entra Connect Sync 一起安装。若要启动它,你必须是 ADSyncAdmins 组的成员。 启动时,会看到如下所示的内容:

入站同步规则

在此窗格中,你将看到为配置创建的所有同步规则。 表中的每一行都是一个同步规则。 在“规则类型”的左侧,列出了两种不同的类型:入站和出站。 入站和出站来自 Metaverse 视图。 本概述主要介绍入站规则。 同步规则的实际列表取决于 AD 中检测到的架构。 在上图中,帐户林 (fabrikamonline.com) 没有任何服务(如 Exchange 和 Lync),并且未为这些服务创建任何同步规则。 但在资源林 (res.fabrikamonline.com) 中,我们将找到这些服务的同步规则。 规则的内容因检测到的版本而异。 例如,在具有 Exchange 2013 的部署中,配置的属性流比在 Exchange 2010/2007 中要多。

同步规则

满足条件时,同步规则是具有一组流动属性的配置对象。 它还用于描述连接器空间中的对象如何与 metaverse 中的对象相关,称为 联接匹配。 同步规则具有一个优先级值,指示它们彼此之间的关系。 具有较低数值的同步规则具有较高的优先级,在属性流冲突中,较高优先级将赢得冲突解决。

例如,查看同步规则“In from AD – User AccountEnabled”。 在 SRE 中标记此行,然后选择 编辑

由于这是一条现成的规则,因此在打开该规则时会看到警告。 用户不应对现成规则进行任何更改,因此系统会询问意图是什么。 在这种情况下,你只想查看规则。 请选择“否”

同步规则警告

同步规则包含四个配置部分:说明、范围筛选器、联接规则和转换。

描述

第一部分提供名称和说明等基本信息。

同步规则编辑器中的“同步规则编辑器中的“说明”选项卡

还可以找到有关此规则与之相关的连接系统、它应用于的连接系统中的对象类型以及 Metaverse 对象类型的信息。 无论源对象类型是用户、iNetOrgPerson 还是联系人,Metaverse 对象类型始终为人员。 Metaverse 对象类型不应更改,因此它作为泛型类型创建。 可以将链接类型设置为 Join、StickyJoin 或 Provision。 此设置将与“联接规则”部分协同工作,稍后介绍此方面的内容。

还可以查看此同步规则用于密码同步。如果用户处于此同步规则的范围,则密码将从本地同步到云(假设你已启用密码同步功能)。

范围筛选器

“范围筛选器”部分用于配置何时应应用同步规则。 由于正在查看的同步规则的名称指示只应对已启用的用户应用该规则,因此对范围进行了配置,使得 AD 属性 userAccountControl 不能对 2 这个位进行设置。 当同步引擎在 AD 中找到用户时,当 userAccountControl 设置为十进制值 512(已启用普通用户)时,它会应用此同步规则。 当用户 userAccountControl 设置为 514(禁用正常用户)时,该规则不适用。

此屏幕截图显示了“编辑入站同步规则”窗口的“范围筛选器”部分。

范围筛选器具有可以嵌套的组和子句。 必须满足组内所有子句的条件,才能应用同步规则。 定义多个组时,必须至少满足一个组才能应用规则。 也就是说,组之间按逻辑或进行计算,组内按逻辑与进行计算。 可以在出站同步规则“Out to Microsoft Entra ID - Group Join”中找到此配置的示例。 有多个同步筛选器组,例如安全组(securityEnabled EQUAL True)和通讯组(securityEnabled EQUAL False)。

同步规则编辑器中的“范围”选项卡

此规则用于定义应将哪些组预配到Microsoft Entra ID。 通讯组必须启用邮件才能与 Microsoft Entra ID 同步,但对于安全组,不需要电子邮件。

联接规则

第三部分用于配置连接器空间中的对象与 Metaverse 中的对象的关系。 前面查看过的规则没有针对“联接规则”的任何配置,因此现在将查看“In from AD - User Join”

同步规则编辑器中的“联接规则”选项卡

联接规则的内容取决于安装向导中选择的匹配选项。 对于入站规则,评估从源连接器空间中的对象开始,联接规则中的每个组依次评估。 如果使用其中一个联接规则计算源对象以匹配 Metaverse 中的一个对象,则会联接这些对象。 如果已对所有规则进行评估但没有匹配项,则将使用描述页上的“链接类型”。 如果此配置设置为 Provision,则在目标(metaverse)中创建一个新对象(如果联接条件中至少有一个属性存在(具有值)。 将新对象设置到 Metaverse 也称为将对象投影到 Metaverse

只对联接规则评估一次。 当连接器空间对象与 Metaverse 对象连接时,只要同步规则的范围仍然得到满足,它们就会保持连接。

评估同步规则时,必须只有一个定义了联接规则的同步规则在范围内。 如果为一个对象找到了具有联接规则的多个同步规则,则会引发错误。 因此最佳做法是,当一个对象有多个同步规则在范围内时,只让一个同步规则有定义的联接。 在 Microsoft Entra Connect Sync 的现成配置中,可以通过查看名称并查找在名称末尾带有单词 Join 的规则来找到这些规则。 如果没有定义任何联接规则的同步规则,那么当另一个同步规则将对象联接在一起或在目标中预配新对象时,该同步规则将应用属性流。

查看上图,可以看到规则尝试将 objectSID 与 msExchMasterAccountSid (Exchange) 和 msRTCSIP-OriginatorSid (Lync) 相联接,而这正是我们在帐户资源林拓扑中所预期的。 可在所有林中找到相同的规则。 可以假设每个林可能是帐户或资源林。 如果有帐户存在于单个林中且不需要联接,此配置也能正常运行。

转换

变换部分定义了当对象被联接并满足范围筛选器时应用于目标对象的所有属性流动。 回到“In from AD - User AccountEnabled”同步规则,找到以下转换:

同步规则编辑器中的“同步规则编辑器中的“转换”选项卡

如果将此配置放在帐户-资源林部署的上下文中考虑,应在帐户林中找到已启用的帐户,在具有 Exchange 和 Lync 设置的资源林中找到已禁用的帐户。 查看的同步规则包含进行登录所需的属性,这些属性应从包含已启用帐户的林流动。 所有这些属性流都放在一个同步规则中。

转换可以具有不同类型的:常量、直接和表达式。

  • 常量流总是输出一个硬编码的值。 在上例中,始终在名为 accountEnabled 的 Metaverse 属性中设置值 True
  • 直接流始终将源中属性的值流向目标属性 as-is。
  • 第三个流类型为 Expression,它允许更高级的配置。

表达式语言为 VBA(Visual Basic for Applications),因此具有Microsoft Office 或 VBScript 体验的人员将识别格式。 属性括在方括号 [attributeName] 中。 属性名称和函数名称是区分大小写的,但同步规则编辑器会评估表达式,并在表达式无效时提供警告。 所有表达式在具有嵌套函数的单个行上表示。 为了展示配置语言的强大功能,下面是 pwdLastSet 的流程,其中插入了附加注释:

// If-then-else
IIF(
// (The evaluation for IIF) Is the attribute pwdLastSet present in AD?
IsPresent([pwdLastSet]),
// (The True part of IIF) If it is, then from right to left, convert the AD time format to a .NET datetime, change it to the time format used by Azure AD, and finally convert it to a string.
CStr(FormatDateTime(DateFromNum([pwdLastSet]),"yyyyMMddHHmmss.0Z")),
// (The False part of IIF) Nothing to contribute
NULL
)

有关属性流的表达式语言的详细信息,请参阅 了解声明性预配表达式

优先权

现在,你已经了解了一些单独的同步规则,但这些规则在配置中协同工作。 在某些情况下,属性值由多个同步规则提供给同一目标属性。 在这种情况下,属性优先级用于确定哪个属性获胜。 以属性 sourceAnchor 为例。 此属性是能够登录到 Microsoft Entra ID 的重要属性。 可以在两个不同的同步规则中看到此属性的属性流:“In from AD – User AccountEnabled”和“In from AD – User Common”。 由于有同步规则优先级,如果有多个对象联接到 Metaverse 对象,sourceAnchor 属性将先由具有已启用帐户的林提供。 如果没有已启用的帐户,同步引擎将使用全部提取同步规则“In from AD – User Common”。 此配置可确保即使已禁用帐户,仍存在 sourceAnchor。

入站同步规则

同步规则的优先级由安装向导按组设置。 组中的所有规则具有相同的名称,但它们连接到不同的目录。 安装向导将最高优先级提供给规则“In from AD – User Join”,并迭代所有连接的 AD 目录。 然后,它会按照预定义的顺序继续执行下一组规则。 在组中,以在向导中添加连接器的顺序来添加规则。 如果通过向导添加另一个连接器,则会重新排序同步规则,并在每个组中最后插入新的连接器规则。

汇总

现在,我们已足够了解同步规则,以便能够了解配置如何与不同的同步规则一起使用。 如果观察某个用户和提供给 Metaverse 的属性,会发现规则将按以下顺序应用:

名字 评论
In from AD – User Join 将连接器空间对象与 metaverse 联接的规则。
从 Active Directory 导入 – 用户帐户已启用 登录Microsoft Entra ID 和 Microsoft 365 所需的属性。 我们希望从已启用的帐户中获取这些属性。
In from AD – User Common from Exchange 在全局地址列表中找到的属性。 我们假设用户邮箱所在的林中具有最佳的数据质量。
In from AD – User Common 在全局地址列表中找到的属性。 如果未找到邮箱,任何其他联接对象都可以提供属性值。
In from AD – User Exchange 仅当检测到 Exchange 时才存在。 它会传输所有基础架构的 Exchange 属性。
In from AD – User Lync 仅当检测到 Lync 时才存在。 传递所有基础结构 Lync 属性。

后续步骤

概述主题