转换“授权源”(预览)时保留组的组织单位和名称

将组的授权源(SOA)转换为Microsoft Entra ID时,不会自动检测到该组的原始组织单位(OU)。 在转换该组的 SOA 之前,使用 GroupDN 目录扩展捕获该组的可分辨名称 (DN),然后在 OU 和通用名称 (CN) 映射表达式中引用此扩展。

本文介绍首次设置。 在将组转换为云托管 之前 完成此操作。 有关使用该扩展的映射表达式,请参阅 保留组的原有组织单位。

Prerequisites

在继续之前,请完成从Microsoft Entra ID预配到Active Directory的先决条件中的步骤。

设置 GroupDN 扩展

在将组转换为云托管之前,请完成以下任务。

将组范围更改为通用

要将组作用域更改为“通用”:

  1. 打开Active Directory管理中心。
  2. 选择并按住该组(或右键单击该组),然后选择 “属性”。
  3. 在 “组 ”部分中,选择“ 通用 ”作为组范围。
  4. 选择“保存”。

创建扩展

云同步仅支持在 CloudSyncCustomExtensionsApp 应用程序上创建的扩展。 如果此应用程序尚不存在,请为每个租户创建一次。

  1. 打开提升的 PowerShell 窗口并运行以下命令以安装模块并连接:

    Install-Module Microsoft.Graph -Scope CurrentUser -Force
    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "Application.ReadWrite.All","Directory.ReadWrite.All","Directory.AccessAsUser.All"
    
  2. 检查应用程序是否存在。 如果没有,请创建它,并确保存在服务主体:

    $tenantId = (Get-MgOrganization).Id
    $app = Get-MgApplication -Filter "identifierUris/any(uri:uri eq 'API://$tenantId/CloudSyncCustomExtensionsApp')"
    if (-not $app) {
      $app = New-MgApplication -DisplayName "CloudSyncCustomExtensionsApp" -IdentifierUris "API://$tenantId/CloudSyncCustomExtensionsApp"
    }
    $app
    
    $sp = Get-MgServicePrincipal -Filter "AppId eq '$($app.AppId)'"
    if (-not $sp) {
      $sp = New-MgServicePrincipal -AppId $app.AppId
    }
    $sp
    
  3. 添加一个名为 的目录扩展属性——组对象上的一个字符串属性:

    New-MgApplicationExtensionProperty `
      -ApplicationId $app.Id `
      -Name "GroupDN" `
      -DataType "String" `
      -TargetObjects Group
    

有关详细信息,请参阅用于将Microsoft Entra ID预配到Active Directory的目录扩展。

将 distinguishedName 映射到 GroupDN 扩展

让 Cloud Sync 使用来自 Active Directory 的组可分辨名称 (DN) 填充扩展属性。 这会在 Microsoft Entra ID 中记录组的完整 DN(CN + OU 路径)。

  1. 打开 Entra ID>Entra Connect>云同步。
  2. 选择您的AD 到 Microsoft Entra ID 的配置。
  3. 转到属性映射并将对象类型设置为“组”。
  4. 添加新的属性映射:
    • 映射类型:直接
    • 源属性: distinguishedName
    • 目标属性: extension_<appIdWithoutHyphens>_GroupDN
  5. 保存架构以触发同步。

验证映射并转换 SOA

同步运行完成后,使用 Microsoft Graph PowerShell 验证扩展属性是否已填入 DN 值:

$groupDisplayName = 'My Security Group'
$clientId = $app.AppId
$propName = "extension_{0}_GroupDN" -f ($clientId -replace "-","")
$grp = Get-MgGroup -Filter "displayName eq '$groupDisplayName'" -ConsistencyLevel eventual
Get-MgGroup -GroupId $grp.Id -Property "id,displayName,$propName" |
  Select-Object id, displayName, @{n=$propName; e={$_."$propName"}}

将 DN 保存在扩展中后,将组的授权源转换为 Microsoft Entra ID。 该组会变为云托管组,同时其原始 DN 会保留在扩展中,以供后续的 OU 和 CN 映射表达式使用。

后续步骤