方案 - 在将组预配到 Active Directory 的情况下使用目录扩展

场景:你在 Microsoft Entra ID 中有数百个组。 你需要将其中一些组(而不是全部组)预配回 Active Directory。 你想要一个可应用于组的快速筛选器,从而避免使用更复杂的范围筛选器。

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

可以使用在本场景中创建的环境进行测试或者加深对云同步的了解。

假设

  • 此场景假定你已经有一个工作环境,该环境正在将用户同步到 Microsoft Entra ID。
  • 有 4 个同步的用户。 Britta Simon、Lola Jacobson、Anna Ringdahl 和 John Smith。
  • 已在 Active Directory 中创建了三个组织单位 - Sales、Marketing 和 Groups
  • Britta Simon 和 Anna Ringdahl 用户帐户驻留在 Sales 组织单位中。
  • Lola Jacobson 和 John Smith 用户帐户驻留在 Marketing 组织单位中。
  • Microsoft Entra ID 中的组在 Groups 组织单位中预配。

小窍门

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

在 Microsoft Entra ID 中创建两个组

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

若要创建两个组,请执行以下步骤。

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

将用户添加到新创建的组

  1. 请以至少混合身份管理员的身份登录Microsoft Entra 管理中心。
  2. 浏览到 Entra ID>群组>所有群组。
  3. 在顶部的搜索框中输入“Sales”。
  4. 选择新的 “销售 ”组。
  5. 在左侧,选择“ 成员”。
  6. 在顶部,选择“ 添加成员”。
  7. 在顶部的搜索框中,输入“Britta Simon”。
  8. 选中 Britta Simon 和 Anna Ringdahl 旁边的复选框,然后选择“选择”。
  9. 此时应该会成功地将她添加到该组。
  10. 在最左侧,选择 “所有组 ”,并使用 “营销 ”组重复此过程,并将 Lola Jacobson 和 John Smith 添加到该组。

注释

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

安装和连接 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"
    

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

重要

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

  1. 获取租户 ID:

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

注释

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

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

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

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

    Get-MgServicePrincipal -Filter "AppId eq '$($cloudSyncCustomExtApp.AppId)'"
    
  4. 如果你刚才创建了新应用或未返回安全主体,请为 CloudSyncCustomExtensionsApp 创建安全主体:

    New-MgServicePrincipal -AppId $cloudSyncCustomExtApp.AppId
    

创建自定义扩展属性

小窍门

在此方案中,我们将创建一个名为 WritebackEnabled 的自定义扩展属性,用于 Microsoft Entra Cloud Sync 的范围筛选器。这样,只有将 WritebackEnabled 设置为 True 的组会被写回到本地 Active Directory,这类似于 Microsoft Entra 管理中心中的“启用写回”标志。

  1. 获取租户 ID:

    $tenantId = (Get-MgOrganization).Id
    $tenantId
    
  2. 获取 CloudSyncCustomExtensionsApp 应用程序:

    $cloudSyncCustomExtApp = Get-MgApplication -Filter "identifierUris/any(uri:uri eq 'api://$tenantId/CloudSyncCustomExtensionsApp')"
    
  3. 现在,在 CloudSyncCustomExtensionApp 下,创建名为“WritebackEnabled”的自定义扩展属性,并将其分配给 Group 对象:

    New-MgApplicationExtensionProperty -ApplicationId $cloudSyncCustomExtApp.Id -Name 'WritebackEnabled' -DataType 'Boolean' -TargetObjects 'Group'
    
  4. 此 cmdlet 将创建一个类似于 extension_<guid>_WritebackEnabled 的扩展属性。

创建云同步配置

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

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

  3. 选择“新配置”。

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

配置选择的屏幕截图。

  1. 在配置屏幕上,选择域以及是否启用密码哈希同步。选择“ 创建”。

新配置的屏幕截图。

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

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

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

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

  5. 为范围筛选器键入一个名称:Filter groups with Writeback Enabled

  6. 在“目标属性”下,选择新创建的类似 extension_guid<_WritebackEnabled 的属性。

重要

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

可用属性的屏幕截图。

  1. 在运算符下,选择IS TRUE。
  2. 选择“ 保存”,然后选择“ 保存”。
  3. 使配置保持禁用状态,并返回到该配置。

将新的扩展属性添加到其中一个组

在此部分,我们要在现有组“Marketing”中为新建的属性添加值。

使用 Microsoft Graph PowerShell SDK 设置扩展属性值

  1. 获取租户 ID:

    $tenantId = (Get-MgOrganization).Id
    $tenantId
    
  2. 获取 CloudSyncCustomExtensionsApp 应用程序:

    $cloudSyncCustomExtApp = Get-MgApplication -Filter "identifierUris/any(uri:uri eq 'api://$tenantId/CloudSyncCustomExtensionsApp')"
    
  3. 获取我们的扩展属性:

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

    $marketingGrp = Get-MgGroup -ConsistencyLevel eventual -Filter "DisplayName eq 'Marketing'"
    $marketingGrp 
    
  5. 然后,使用包含 $gwbEnabledExtName 的变量 extension_<guid>_WritebackEnabled 为 Marketing 组设置值 True:

    Update-MgGroup -GroupId $marketingGrp.Id -AdditionalProperties @{$gwbEnabledExtName = $true}
    
  6. 若要确认,可以使用以下命令读取 extension_<guid>_WritebackEnabled 属性值:

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

测试配置

注释

使用按需预配时,不会自动预配成员。 需要选择要测试的成员,并且存在 5 个成员的限制。

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

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

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

  1. 在 “配置”下,选择配置。
  2. 在左侧,选择“按需预配”。
  3. 在“已选择的组”框中输入“Marketing”
  4. 从 “所选用户 ”部分,选择要测试的一些用户。 选择“Lola Jacobson”和“John Smith”。
  5. 选择“预配”。 它应该会成功预配。 成功预配的屏幕截图。
  6. 现在尝试 销售 组,并添加 Britta Simon 和 Anna Ringdahl。 这应该不会预配。 预配被阻止时的屏幕截图。
  7. 在 Active Directory 中,应该会看到新创建的 Marketing 组。 在 Active Directory 用户和计算机中创建的新组的截图。
  8. 现在,您可以浏览到 Entra ID>Entra Connect>Cloud 同步 > 概述 页,查看并启用配置来开始同步。

后续步骤