预配到 Active Directory 时使用目录扩展

目录扩展将属性添加到Microsoft Entra ID拥有的Microsoft Entra架构。 从Microsoft Entra ID预配到Active Directory时,可以将该属性放入两个用途:确定预配的对象,或将值传递到Active Directory属性中。 这两种用法对用户和组都适用。

本文将分别讲解其中每种情况的一个示例。 选择每个步骤中的 “组 或 用户 ”选项卡,以遵循所需的示例。 你的选择将贯穿本文的其余部分。

Tab Example Use
组 WritebackEnabled 仅预配扩展属性值为 true 的组。
用户 EmployeeCode 将扩展值写入Active Directory用户属性。

有关目录扩展的背景信息,请参阅目录扩展,以便将Microsoft Entra ID预配到Active Directory。 有关常规映射界面和表达式语法,请参阅 配置向 Active Directory 进行预配。

注释

Microsoft Entra ID 为组提供一个内置的 isWritebackEnabled 属性,可通过 Microsoft Graph 进行设置。 可以使用 属性值筛选直接筛选该属性,因此不需要自定义扩展属性来控制写回哪些组。 如果需要限定内置属性未涵盖的值,请使用本文中的步骤。

组也支持属性映射。 对于其授权来源已转换为 Microsoft Entra ID 的组,GroupDN 扩展会保留原始组织单位和公用名。 若要创建该扩展,请参阅 “保留组的组织单位和名称”。 有关读取它的表达式,请参阅 “保留组的原始组织单位”。

在您开始之前

这两个示例都需要相同的起点:

  • 与 Microsoft Entra ID 同步用户的工作环境。
  • 连接到目标Active Directory域的正常预配代理。
  • 用于Active Directory配置的Microsoft Entra ID,或创建配置的权限。

然后,每个示例都需要自己的对象。

此示例使用以下环境:

  • 四个同步用户:Britta Simon、Lola Jacobson、Anna Ringdahl 和 John Smith。
  • Active Directory中的三个组织单位:销售、营销和组。
  • Britta Simon 和 Anna Ringdahl 用户帐户驻留在 Sales 组织单位中。
  • Lola Jacobson 和 John Smith 用户帐户驻留在 Marketing 组织单位中。
  • 组 OU 是预配来自 Microsoft Entra ID 的组的位置。

使用云同步进行组写回的示意图。

可以使用本文中创建的环境进行测试或更熟悉云同步。

小窍门

在ms-vscode.powershell使用 Visual Studio Code 和扩展,以获得执行 Microsoft Graph PowerShell SDK cmdlet 的更好体验。

安装和连接 Microsoft Graph PowerShell SDK

  1. 如果尚未安装,请按照 Microsoft Graph PowerShell SDK 文档安装 Microsoft Graph PowerShell SDK 的主要模块: Microsoft.Graph。

  2. 使用管理权限打开 PowerShell。

  3. 若要设置执行策略,请运行以下命令(出现提示时全部按“[A] 是”):

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  4. 连接到租户(请务必在登录时代表接受):

    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All", "User.ReadWrite.All", "Group.ReadWrite.All"
    

    重要

    以交互方式进行身份验证。 不要在脚本中放置帐户密码。

创建 CloudSyncCustomExtensionsApp 应用程序和服务主体

这两个示例将扩展存储在同一个应用程序上,因此只需执行此操作一次。

重要

Microsoft Entra Cloud Sync 的目录扩展仅支持标识符 URI 为 api://<tenantId>/CloudSyncCustomExtensionsApp 的应用程序,以及由 Microsoft Entra Connect 创建的标识符为 的租户架构扩展应用程序。

  1. 获取租户 ID:

    $tenantId = (Get-MgOrganization).Id
    $tenantId
    

    注释

    这会输出当前租户 ID。 可以通过导航到 Microsoft Entra 管理中心>Entra ID>概述 来确认此租户 ID。

  2. 使用上一步中的 $tenantId 变量,检查 CloudSyncCustomExtensionsApp 是否存在。

    $cloudSyncCustomExtApp = Get-MgApplication -Filter "identifierUris/any(uri:uri eq 'api://$tenantId/CloudSyncCustomExtensionsApp')"
    $cloudSyncCustomExtApp
    
  3. 如果存在 CloudSyncCustomExtensionsApp,请跳到下一步。 否则,请创建新的 CloudSyncCustomExtensionsApp 应用:

    $cloudSyncCustomExtApp = New-MgApplication -DisplayName "CloudSyncCustomExtensionsApp" -IdentifierUris "api://$tenantId/CloudSyncCustomExtensionsApp"
    $cloudSyncCustomExtApp
    
  4. 检查 CloudSyncCustomExtensionsApp 应用程序是否关联了服务主体。 如果你刚才创建了新应用,请跳到下一步。

    Get-MgServicePrincipal -Filter "AppId eq '$($cloudSyncCustomExtApp.AppId)'"
    
  5. 如果刚刚创建新应用或未返回服务主体,请为 CloudSyncCustomExtensionsApp 创建服务主体:

    New-MgServicePrincipal -AppId $cloudSyncCustomExtApp.AppId
    

注释

在Microsoft Entra ID中创建目录扩展不需要重启预配代理。 仅当代理需要发现新添加的Active Directory架构属性时,才重启代理。

准备要预配的对象

在Microsoft Entra ID中创建两个组。 一个是销售组,另一个是市场营销组。

  1. 请以至少混合身份管理员的身份登录Microsoft Entra 管理中心。
  2. 浏览到 Entra ID>群组>所有群组。
  3. 在顶部,选择新建组。
  4. 确保“组类型”设置为“安全”。
  5. 对于 组名称,请输入 Sales。
  6. 对于 成员身份类型,请将其保留在分配状态。
  7. 选择“创建”。
  8. 使用 Marketing 作为 组名称重复此过程。

现在,将用户添加到创建的组。

  1. 浏览到 Entra ID>群组>所有群组。
  2. 在顶部的搜索框中输入“Sales”。
  3. 选择新的 “销售 ”组。
  4. 在左侧,选择“ 成员”。
  5. 在顶部,选择“ 添加成员”。
  6. 选中 Britta Simon 和 Anna Ringdahl,然后单击 选择。
  7. 在最左侧,选择 “所有组 ”,并使用 “营销 ”组重复此过程,添加 洛拉·雅各布森 和 约翰·史密斯。

注释

将用户添加到 Marketing 组时,请记下概述页上的组 ID。 稍后使用此 ID 将新创建的属性添加到组。

创建目录扩展

小窍门

此示例创建了一个名为 WritebackEnabled 的自定义扩展属性,用于 Microsoft Entra Cloud Sync 作用域筛选器,以便仅将 WritebackEnabled 设置为 true 的组写回本地 Active Directory。 它的工作方式类似于本文前面所述的内置 isWritebackEnabled 属性。

在 CloudSyncCustomExtensionsApp 下,创建扩展属性并将其分配给 Group 对象:

New-MgApplicationExtensionProperty -ApplicationId $cloudSyncCustomExtApp.Id -Name 'WritebackEnabled' -DataType 'Boolean' -TargetObjects 'Group'

此 cmdlet 将创建一个如下所示 extension_<AppIdWithoutHyphens>_WritebackEnabled的扩展属性。

设置扩展值

为 Marketing 组的新建属性设置一个值。

  1. 获取扩展属性:

    $gwbEnabledExtAttrib = Get-MgApplicationExtensionProperty -ApplicationId $cloudSyncCustomExtApp.Id |
        Where-Object {$_.Name -Like '*WritebackEnabled'} | Select-Object -First 1
    $gwbEnabledExtName = $gwbEnabledExtAttrib.Name
    
  2. 获取Marketing组:

    $marketingGrp = Get-MgGroup -ConsistencyLevel eventual -Filter "DisplayName eq 'Marketing'"
    
  3. 为营销组设置值 True:

    Update-MgGroup -GroupId $marketingGrp.Id -AdditionalProperties @{$gwbEnabledExtName = $true}
    
  4. 若要确认,请阅读属性值:

    $marketingGrp = Get-MgGroup -ConsistencyLevel eventual -Filter "DisplayName eq 'Marketing'" -Property Id,$gwbEnabledExtName
    $marketingGrp.AdditionalProperties.$gwbEnabledExtName
    

在云同步配置中使用扩展

  1. 请以至少混合身份管理员的身份登录Microsoft Entra 管理中心。

  2. 浏览到 Entra ID>Entra Connect>云同步。

  3. 选择“新配置”。

  4. 选择“Microsoft Entra ID 与 AD 同步”。

    配置选择的屏幕截图。

  5. 在配置屏幕上,选择你的域。 选择“创建”。

    新配置的屏幕截图。

  6. 此时将打开“开始使用”屏幕。 在此处,可以继续配置云同步。

  7. 在左侧选择“ 范围筛选器”,然后选择“ 组范围>所有组”。

  8. 选择 “编辑属性映射 ”并将 目标容器 更改为 OU=Groups,DC=Contoso,DC=com。 选择“保存”。

  9. 选择 “添加属性范围筛选器”。

  10. 键入范围筛选器的名称: Filter groups with Writeback Enabled。

  11. 在 “目标属性”下,选择新创建的属性,如下所示 extension_<AppIdWithoutHyphens>_WritebackEnabled。

    重要

    例如,下拉列表中显示的某些目标属性可能无法用作范围筛选器,因为并非所有extensionAttribute[1-15]属性都可以在Microsoft Entra ID中管理。 因此,我们建议为此创建自定义扩展属性。

    可用属性的屏幕截图。

  12. 在 “运算符”下,选择 “IS TRUE”。

  13. 选择“ 保存”,然后选择“ 保存”。

  14. 使配置保持禁用状态,并返回到该配置。

测试和验证

注释

使用按需预配时,不会自动预配成员。 您需要选择要对哪些成员进行测试,且最多只能选择五名成员。

  1. 请以至少混合身份管理员的身份登录Microsoft Entra 管理中心。

  2. 浏览到 Entra ID>Entra Connect>云同步。

    屏幕截图,显示 Microsoft Entra Connect Cloud Sync 主页。

  1. 在 “配置”下,选择配置。

  2. 在左侧,选择“按需预配”。

  3. 在“所选组”框中输入“市场营销”。

  4. 从 “所选用户 ”部分,选择 “Lola Jacobson ”和 “John Smith”。

  5. 选择“预配”。 它应该会成功预配。

    成功预配的屏幕截图。

  6. 现在尝试 销售 组,并添加 Britta Simon 和 Anna Ringdahl。 这不应预配,因为 Sales 组没有设置扩展值。

    预配被阻止时的屏幕截图。

  7. 在 Active Directory 中,应该会看到新创建的 Marketing 组。

    在 Active Directory 用户和计算机中创建的新组的截图。

  8. 现在可以浏览到 Entra ID>Entra Connect>Cloud 同步>概述,查看并启用配置并开始同步。

从Active Directory转换的用户的目录扩展

将用户的授权来源转换为 Microsoft Entra ID 时,先前由 Active Directory 管理的属性必须已在 Microsoft Entra ID 中可见,并且显示为目录属性或目录架构扩展。 有关前提条件的完整列表,请参阅 准备环境以转换用户授权源。

这意味着转换后的用户通常已经具有所需的扩展值,因此你不会为这些属性创建新的扩展。 而是根据已包含这些值的扩展进行映射。

由 Microsoft Entra Connect 创建的扩展位于 租户架构扩展应用 中,并且与 CloudSyncCustomExtensionsApp 一样,支持作为映射源。 添加映射的方式与在“ 用户 ”选项卡中相同,选择现有扩展作为源属性。 转换授权源时,无需重新注册或重新创建扩展程序。

后续步骤