场景 - 在将组预配到 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 组织单位中预配。

提示

为了获得执行 Microsoft Graph PowerShell SDK cmdlet 的更好体验,请在 ISE 模式下使用带有 ms-vscode.powershell 扩展的 Visual Studio Code。

在 Microsoft Entra ID 中创建两个组

首先,在 Microsoft Entra ID 中创建两个组。 一个组是 Sales,另一个组是 Marketing。

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

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

将用户添加到新创建的组

  1. 至少以混合标识管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“”>“所有组”。
  3. 在顶部的搜索框中输入“Sales”
  4. 单击新“Sales”组。
  5. 在左侧,单击“成员”
  6. 在顶部,单击“添加成员”
  7. 在顶部的搜索框中,输入“Britta Simon”
  8. 勾选“Britta Simon”和“Anna Ringdahl”,然后单击“选择”
  9. 此时应该会成功地将她添加到该组。
  10. 在最左侧,单击“所有组”,重复此过程,使用“Marketing”组,并将“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 -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All", "User.ReadWrite.All, Group.ReadWrite.All"
    

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

重要

只有具有标识符 URI“api://<tenantId>/CloudSyncCustomExtensionsApp”的应用程序和 Microsoft Entra Connect 创建的 Tenant Schema Extension App 才支持 Microsoft Entra 云同步的目录扩展。

  1. 获取租户 ID:

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

注意

这将输出我们当前的租户 ID。 可以通过导航到 Microsoft Entra 管理中心>“标识”>“概述”来确认此租户 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
    

创建自定义扩展属性

提示

在此应用场景中,我们将创建一个要在 Microsoft Entra 云同步范围筛选器中使用的名为 WritebackEnabled 的自定义扩展特性,以便仅将 WritebackEnabled 设置为 True 的组写回到本地 Active Directory,这类似于 Microsoft Entra 管理中心内的“已启用写回”标志

  1. 获取 CloudSyncCustomExtensionsApp 应用程序:

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

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

创建云同步配置

  1. 至少以混合标识管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“混合管理”>“Microsoft 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. 在“运算符”下,选择“为真”
  2. 单击“ 保存”。 然后单击“保存”
  3. 使配置保持禁用状态,并返回到该配置。

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

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

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

  1. 使用上一步中的 $cloudSyncCustomExtApp 变量获取扩展属性:

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

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

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

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

使用 Microsoft Graph 资源管理器设置扩展属性值

你需要确保已同意 Group.ReadWrite.All。 可以通过选择“修改权限”来执行此操作。

  1. 导航到 Microsoft Graph 资源管理器

  2. 使用租户管理员帐户登录。 这可能需要是混合标识管理员帐户。 在创建此方案时使用了混合标识管理员帐户。 混合标识管理员帐户可能已经够用。

  3. 在顶部,将“GET”更改为“PATCH”

  4. 在地址框中输入:https://graph.microsoft.com/v1.0/groups/<Group Id>

  5. 在请求正文中输入以下内容:

    {
     extension_<guid>_WritebackEnabled: true
    }
    
    
  6. 单击“运行查询”运行图形查询的屏幕截图。

  7. 如果正确完成,则会看到 []。

  8. 现在,在顶部,将“PATCH”更改为“GET”,并查看 Marketing 组的属性。

  9. 单击“运行查询”。 应该会看到新创建的属性。 组属性的屏幕截图。

测试配置

注意

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

  1. 至少以混合管理员的身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“混合管理”>“Microsoft Entra Connet”>“云同步”云同步主页的屏幕截图。
  1. 在“配置”下选择你的配置。
  2. 在左侧,选择“按需预配”。
  3. 在“已选择的组”框中输入“Marketing”
  4. 从“所选用户”部分中,选择要测试的一些用户。 选择“Lola Jacobson”和“John Smith”
  5. 单击“预配”。 它应该会成功预配。 成功预配的屏幕截图。
  6. 现在,尝试处理“Sales”组,添加“Britta Simon”和和“Anna Ringdahl”。 这应该不会预配。 预配被阻止的屏幕截图。
  7. 在 Active Directory 中,应该会看到新创建的 Marketing 组。 Active Directory 用户和计算机中新组的屏幕截图。
  8. 现在,可以浏览到“标识”>“混合管理”>“Microsoft Entra Connect”>“云同步”>“概述”页面来查看和启用我们的配置,从而开始进行同步。

后续步骤