范围筛选器和属性映射 - 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 中创建新组时,会为其提供随机生成的名称。
如果要为 sAMAccountName 创建自己的唯一值,可以使用表达式创建到 sAMAccountName 的自定义映射。 例如,可以执行以下操作:Join("_", [displayName], "Contoso_Group")
这将采用 displayName 值并向其添加“Contoso_Group”。 因此,新的 sAMAccountName 会类似于 Marketing_Contoso_Group
重要
如果决定为 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”方可预配用户。
最后,可为组创建多个范围筛选器。 如果存在多个范围筛选器,则使用“OR”逻辑评估它们。 “OR”逻辑意味着,如果配置的任意范围筛选器中的子句赋值为“true”,就会预配该组。
支持的运算符
支持以下运算符:
运算符 | 说明 |
---|---|
& | |
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 将搜索说明中是否有我们提供的以下任何字词,并仅预配这些组。
创建基于属性的筛选器
若要创建基于属性的筛选器,请执行以下步骤:
- 单击“添加属性筛选器”
- 在“名称”框中,提供筛选器的名称
- 从下拉列表的“目标属性”下选择目标属性
- 在“运算符”下,选择一个运算符。
- 在“值”下,指定一个值。
- 单击“ 保存”。
有关详细信息,请参阅属性映射和在 Microsoft Entra ID 中编写属性映射表达式的参考。