范围筛选器和属性映射 - Microsoft Entra ID 到 Active Directory

可以根据业务需求自定义默认的属性映射。 因此,可以更改或删除现有属性映射或者创建新的属性映射。

基于属性的范围的屏幕截图。

以下文档内容将指导你使用 Microsoft Entra 云同步进行属性范围界定,以便从 Microsoft Entra ID 预配到 Active Directory。 如果要查找有关执行 AD 到 Microsoft Entra ID 的属性映射的信息,请参阅属性映射 - Active Directory 到 Microsoft Entra ID

Microsoft Entra ID 到 Active Directory 配置的架构

目前,AD 架构不可发现,并且存在固定的映射集。 下表提供 Microsoft Entra ID 到 Active Directory 配置的默认映射和架构。

目标属性 源属性 映射类型 说明
adminDescription Append("Group_",[objectId]) Expression CANNOT UPDATE IN UI - DO NOT UPDATE

用于筛选出 AD 到云同步

UI 中不可见
cn Append(Append(Left(Trim([displayName]),51),"_"),Mid([objectId],25,12)) 表达式
description Left(Trim([description]),448) Expression
displayName displayName 直接
isSecurityGroup True 返回的常量 CANNOT UPDATE IN UI - DO NOT UPDATE

UI 中不可见
member 成员 直接 CANNOT UPDATE IN UI - DO NOT UPDATE

UI 中不可见
msDS-ExternalDirectoryObjectId Append("Group_",[objectId]) Expression CANNOT UPDATE IN UI - DO NOT UPDATE

用于在 AD 中加入 - 匹配

UI 中不可见
对象 GUID CANNOT UPDATE IN UI - DO NOT UPDATE

只读 - AD 中的定位点

UI 中不可见
parentDistinguishedName OU=Users,DC=<配置开始时选择的域>,DC=com 常数 UI 中的默认值
UniversalScope True 返回的常量 CANNOT UPDATE IN UI - DO NOT UPDATE

UI 中不可见

请注意,并非所有上述映射在门户中都可见。 有关如何添加属性映射的详细信息,请参阅属性映射

sAmAccountName 自定义映射

默认情况下,sAMAccount 属性不会从 Microsoft Entra ID 同步到 Active Directory。 因此,在 Active Directory 中创建新组时,会为其提供随机生成的名称。

使用 ADSI 编辑器的 sAMAccountName 屏幕截图。

如果要为 sAMAccountName 创建自己的唯一值,可以使用表达式创建到 sAMAccountName 的自定义映射。 例如,可以执行以下操作:Join("_", [displayName], "Contoso_Group")

门户中 sAMAccountName 表达式的屏幕截图。

这将采用 displayName 值并向其添加“Contoso_Group”。 因此,新的 sAMAccountName 会类似于 Marketing_Contoso_Group

使用表达式后 sAMAccountName 值的屏幕截图。

重要

如果决定为 sAMAccountName 创建自定义属性映射,则必须确保它在 Active Directory 中是唯一的。

范围筛选器目标容器

默认目标容器为 OU=User,DC=<在配置启动时选择的域>,DC=com。 可以将它更改为你自己的自定义容器。

还可以使用具有 Switch() 函数的属性映射表达式来配置多个目标容器。 使用此表达式时,如果 displayName 值为 Marketing 或 Sales,则会在相应的 OU 中创建该组。 如果没有匹配项,则会在默认 OU 中创建该组。

Switch([displayName],"OU=Default,OU=container,DC=contoso,DC=com","Marketing","OU=Marketing,OU=container,DC=contoso,DC=com","Sales","OU=Sales,OU=container,DC=contoso,DC=com")

范围筛选器表达式的屏幕截图。

下面是它的另一个示例。 假设你有以下 3 个组,它们的 displayName 属性值如下:

  • NA-Sales-Contoso
  • SA-Sales-Contoso
  • EU-Sales-Contoso

可以使用以下 switch 语句筛选和预配这些组:

Switch(Left(Trim([displayName]), 2), "OU=Groups,DC=contoso,DC=com", "NA","OU=NorthAmerica,DC=contoso,DC=com", "SA","OU=SouthAmerica,DC=contoso,DC=com", "EU", "OU=Europe,DC=contoso,DC=com")

默认情况下,此语句会将所有组预配到 Active Directory 中的 OU=Groups,DC=contoso,DC=com 容器。 但是,如果组以 NA 开头,它会将该组预配到 OU=NorthAmerica,DC=contoso,DC=com。 同样,如果组以 SA 开头,它会将该组预配到 OU=SouthAmerica,DC=contoso,DC=com,如果以 EU 开头,会预配到 OU=Europe,DC=contoso,DC=com。

有关详细信息,请参阅在 Microsoft Entra ID 中编写属性映射表达式的参考

属性范围筛选

支持基于属性的范围筛选。 可以根据某些属性限定组的范围。 但是请注意,Microsoft Entra ID 到 Active Directory 配置的特性映射部分与传统特性映射部分略有不同。

基于属性的范围的屏幕截图。

支持的子句

范围筛选器包含一个或多个子句。 子句通过评估每个组的属性来确定允许哪些组通过范围筛选器。 例如,你可能有一个子句要求组“displayName”属性等于“Marketing”,因此仅预配 Marketing 组。

默认安全分组

默认安全分组将应用于创建的每个子句顶部并使用“AND”逻辑。 它包含以下条件:

  • securityEnabled IS True AND
  • dirSyncEnabled IS FALSE AND
  • mailEnabled IS FALSE

默认安全分组始终首先应用,在处理单个子句时使用 AND 逻辑。 然后,子句将遵循下面概述的逻辑。

单个子句定义单个属性值的单个条件。 如果在单个范围筛选器中创建多个子句,则将使用“AND”逻辑评估它们。 “AND”逻辑意味着所有子句必须评估为“true”方可预配用户。

基于 AND 子句属性的范围的屏幕截图。

最后,可为组创建多个范围筛选器。 如果存在多个范围筛选器,则使用“OR”逻辑评估它们。 “OR”逻辑意味着,如果配置的任意范围筛选器中的子句赋值为“true”,就会预配该组。

基于 OR 子句属性的范围的屏幕截图。

支持的运算符

支持以下运算符:

运算符 说明
&
ENDS_WITH
EQUALS 如果评估的属性与输入字符串值完全匹配(区分大小写),则子句返回“true”。
GREATER_THAN 如果评估的属性大于值,则子句返回“true”。 范围筛选器上指定的值必须为整数,并且用户上的属性必须是整数 [0,1,2,...]。
GREATER_THAN_OR_EQUALS 如果评估的属性大于或等于值,则子句返回“true”。 范围筛选器上指定的值必须为整数,并且用户上的属性必须是整数 [0,1,2,...]。
INCLUDES
IS FALSE 如果评估的属性包含为 false 的布尔值,则子句返回“true”。
IS_MEMBER_OF
不是 NULL 如果评估的属性不为空,则子句返回“true”。
为 NULL 如果评估的属性为空,则子句返回“true”。
IS TRUE 如果评估的属性包含为 true 的布尔值,则子句返回“true”。
!&L
NOT EQUALS 如果评估的属性与输入字符串值不匹配(区分大小写),则子句返回“true”。
NOT REGEX MATCH 如果评估的属性与正则表达式模式不匹配,则子句返回“true”。 如果属性为 null/空,则返回“false”。
PRESENT
REGEX Match 如果评估的属性与正则表达式模式匹配,则子句返回“true”。 示例:([1-9][0-9]) 与介于 10 和 99 之间的任意数字匹配(区分大小写)。
VALID CERT MATCH

使用正则表达式进行筛选

更高级的筛选器可能会使用 REGEX MATCH。 这样,你就可以将属性作为字符串来搜索其中是否有该属性的子字符串。 例如,假设你有若干个组,它们都具有如下说明:

Contoso-Sales-US Contoso-Marketing-US Contoso-Operations-US Contoso-LT-US

现在,你只想将 Sales、Marketing 和 Operations 组预配到 Active Directory。 你可以使用 REGEX MATCH 来实现此目的。

REGEX MATCH description (?:^|\W)Sales|Marketing|Operations(?:$|\W)

此 REGEX MATCH 将搜索说明中是否有我们提供的以下任何字词,并仅预配这些组。

基于 REGEX MATCH 的范围的屏幕截图。

创建基于属性的筛选器

若要创建基于属性的筛选器,请执行以下步骤:

  1. 单击“添加属性筛选器
  2. 在“名称”框中,提供筛选器的名称
  3. 从下拉列表的“目标属性”下选择目标属性
  4. 在“运算符”下,选择一个运算符。
  5. 在“”下,指定一个值。
  6. 单击“ 保存”。

基于设置属性的范围的屏幕截图。

有关详细信息,请参阅属性映射在 Microsoft Entra ID 中编写属性映射表达式的参考

后续步骤