Konfigurace synchronizace s vymezeným oborem z MICROSOFT Entra ID do služby Microsoft Entra Domain Services pomocí Prostředí Microsoft Graph PowerShell

Za účelem poskytování ověřovacích služeb služba Microsoft Entra Domain Services synchronizuje uživatele a skupiny z ID Microsoft Entra. V hybridním prostředí je možné nejprve synchronizovat uživatele a skupiny z prostředí místní Active Directory Domain Services (AD DS) do Microsoft Entra ID pomocí služby Microsoft Entra Připojení a potom synchronizovat se službou Domain Services.

Ve výchozím nastavení se všichni uživatelé a skupiny z adresáře Microsoft Entra synchronizují do spravované domény služby Domain Services. Pokud máte specifické potřeby, můžete se místo toho rozhodnout synchronizovat jenom definovanou sadu uživatelů.

Tento článek ukazuje, jak vytvořit spravovanou doménu, která používá synchronizaci s vymezeným oborem, a pak změnit nebo zakázat sadu uživatelů s vymezeným oborem pomocí MS Graph PowerShellu. Tyto kroky můžete provést také pomocí Centra pro správu Microsoft Entra.

Než začnete

K dokončení tohoto článku potřebujete následující prostředky a oprávnění:

Přehled omezené synchronizace

Ve výchozím nastavení se všichni uživatelé a skupiny z adresáře Microsoft Entra synchronizují do spravované domény. Pokud ke spravované doméně potřebuje přístup jenom několik uživatelů, můžete synchronizovat jenom tyto uživatelské účty. Tato synchronizace s vymezeným oborem je založená na skupinách. Když konfigurujete synchronizaci s vymezeným oborem skupiny, synchronizují se do spravované domény jenom uživatelské účty, které patří do zadaných skupin. Vnořené skupiny nejsou synchronizované, pouze konkrétní skupiny, které vyberete.

Rozsah synchronizace můžete změnit před nebo po vytvoření spravované domény. Rozsah synchronizace je definován instančním objektem s identifikátorem aplikace 2565bd9d-da50-47d4-8b85-4c97f669dc36. Pokud chcete zabránit ztrátě oboru, neodstraňovat ani měnit instanční objekt. Pokud dojde k náhodnému odstranění, rozsah synchronizace se nedá obnovit.

Pokud změníte rozsah synchronizace, mějte na paměti následující upozornění:

  • Dojde k úplné synchronizaci.
  • Objekty, které už nejsou ve spravované doméně potřeba, se odstraní. Ve spravované doméně se vytvoří nové objekty.

Další informace o procesu synchronizace najdete v tématu Principy synchronizace ve službě Microsoft Entra Domain Services.

Skript PowerShellu pro synchronizaci s vymezeným oborem

Pokud chcete nakonfigurovat synchronizaci s vymezeným oborem pomocí PowerShellu, nejprve uložte následující skript do souboru s názvem Select-GroupsToSync.ps1.

Tento skript nakonfiguruje službu Domain Services tak, aby synchronizovala vybrané skupiny z ID Microsoft Entra. Všechny uživatelské účty, které jsou součástí zadaných skupin, se synchronizují se spravovanou doménou.

Tento skript se používá v dalšíchkrocích

param (
    [Parameter(Position = 0)]
    [String[]]$groupsToAdd
)

Connect-MgGraph -Scopes "Directory.Read.All","AppRoleAssignment.ReadWrite.All"
$sp = Get-MgServicePrincipal -Filter "AppId eq '2565bd9d-da50-47d4-8b85-4c97f669dc36'"
$role = $sp.AppRoles | where-object -FilterScript {$_.DisplayName -eq "User"}

Write-Output "`n****************************************************************************"

Write-Output "Total group-assignments need to be added: $($groupsToAdd.Count)"
$newGroupIds = New-Object 'System.Collections.Generic.HashSet[string]'
foreach ($groupName in $groupsToAdd)
{
    try
    {
        $group = Get-MgGroup -Filter "DisplayName eq '$groupName'"
        $newGroupIds.Add($group.Id)

        Write-Output "Group-Name: $groupName, Id: $($group.Id)"
    }
    catch
    {
        Write-Error "Failed to find group: $groupName. Exception: $($_.Exception)."
    }
}

Write-Output "****************************************************************************`n"
Write-Output "`n****************************************************************************"

$currentAssignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -All:$true
Write-Output "Total current group-assignments: $($currentAssignments.Count), SP-ObjectId: $($sp.Id)"

$currAssignedObjectIds = New-Object 'System.Collections.Generic.HashSet[string]'
foreach ($assignment in $currentAssignments)
{
    Write-Output "Assignment-ObjectId: $($assignment.PrincipalId)"

    if ($newGroupIds.Contains($assignment.PrincipalId) -eq $true)
    {
        Write-Output "This assignment is not needed anymore. Removing it! Assignment-ObjectId: $($assignment.PrincipalId)"
        Remove-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $sp.Id -AppRoleAssignmentId $assignment.Id
    }
    else
    {
        $currAssignedObjectIds.Add($assignment.PrincipalId)
    }
}

Write-Output "****************************************************************************`n"
Write-Output "`n****************************************************************************"

foreach ($id in $newGroupIds)
{
    try
    {
        if ($currAssignedObjectIds.Contains($id) -eq $false)
        {
            Write-Output "Adding new group-assignment. Role-Id: $($role.Id), Group-Object-Id: $id, ResourceId: $($sp.Id)"
            $appRoleAssignment = @{
                "principalId"= $group.Id
                "resourceId"= $sp.Id
                "appRoleId"= $role.Id
            }
            New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $sp.Id -BodyParameter $appRoleAssignment 
        }
        else
        {
            Write-Output "Group-ObjectId: $id is already assigned."
        }
    }
    catch
    {
        Write-Error "Exception occurred assigning Object-ID: $id. Exception: $($_.Exception)."
    }
}

Write-Output "****************************************************************************`n"

Povolení synchronizace s vymezeným oborem

Pokud chcete povolit synchronizaci s vymezeným oborem skupiny pro spravovanou doménu, proveďte následující kroky:

  1. Nejprve nastavte " filteredSync" = "Enabled" u prostředku Domain Services a pak aktualizujte spravovanou doménu. Po zobrazení výzvy zadejte přihlašovací údaje globálního Správa istratoru pro přihlášení k tenantovi Microsoft Entra pomocí rutiny Připojení-MgGraph:

    # Connect to your Entra ID tenant
    Connect-MgGraph -Scopes "Application.ReadWrite.All","Group.ReadWrite.All"
    
    # Retrieve the Microsoft Entra DS resource.
    $DomainServicesResource = Get-AzResource -ResourceType "Microsoft.AAD/DomainServices"
    
    # Enable group-based scoped synchronization.
    $enableScopedSync = @{"filteredSync" = "Enabled"}
    
    # Update the Microsoft Entra DS resource
    Set-AzResource -Id $DomainServicesResource.ResourceId -Properties $enableScopedSync
    
  2. Teď zadejte seznam skupin, jejichž uživatelé by se měli synchronizovat se spravovanou doménou.

    Select-GroupsToSync.ps1 Spusťte skript a zadejte seznam skupin, které se mají synchronizovat. V následujícím příkladu jsou skupiny, které se mají synchronizovat, GroupName1 a GroupName2.

    Upozorňující

    Do seznamu skupin pro synchronizaci s vymezeným oborem musíte zahrnout skupinu Správa istrators řadiče domény AAD. Pokud tuto skupinu nezahrnete, spravovaná doména je nepoužitelná.

    .\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName2")
    

Změna rozsahu synchronizace způsobí, že spravovaná doména znovu synchronizuje všechna data. Objekty, které se už ve spravované doméně nevyžadují, se odstraní a dokončení opětovné synchronizace může trvat dlouhou dobu.

Úprava synchronizace s vymezeným oborem

Pokud chcete upravit seznam skupin, jejichž uživatelé by měli být synchronizovaní se spravovanou doménou, spusťte Select-GroupsToSync.ps1 skript a zadejte nový seznam skupin, které se mají synchronizovat.

V následujícím příkladu skupiny, které se mají synchronizovat, už neobsahují GroupName2 a teď zahrnují GroupName3.

Upozorňující

Do seznamu skupin pro synchronizaci s vymezeným oborem musíte zahrnout skupinu Správa istrators řadiče domény AAD. Pokud tuto skupinu nezahrnete, spravovaná doména je nepoužitelná.

Po zobrazení výzvy zadejte přihlašovací údaje globálního Správa istratoru pro přihlášení k tenantovi Microsoft Entra pomocí rutiny Připojení-MgGraph:

.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName3")

Změna rozsahu synchronizace způsobí, že spravovaná doména znovu synchronizuje všechna data. Objekty, které se už ve spravované doméně nevyžadují, se odstraní a dokončení opětovné synchronizace může trvat dlouhou dobu.

Zakázání synchronizace s vymezeným oborem

Pokud chcete zakázat synchronizaci s vymezeným oborem skupiny pro spravovanou doménu, nastavte u prostředku služby Domain Services filtredSync = Zakázáno a pak aktualizujte spravovanou doménu. Po dokončení se všichni uživatelé a skupiny nastaví tak, aby se synchronizovali z ID Microsoft Entra.

Po zobrazení výzvy zadejte přihlašovací údaje globálního Správa istratoru pro přihlášení k tenantovi Microsoft Entra pomocí rutiny Připojení-MgGraph:

# Connect to your Entra ID tenant
Connect-MgGraph -Scopes "Application.ReadWrite.All","Group.ReadWrite.All"

# Retrieve the Microsoft Entra DS resource.
$DomainServicesResource = Get-AzResource -ResourceType "Microsoft.AAD/DomainServices"

# Disable group-based scoped synchronization.
$disableScopedSync = @{"filteredSync" = "Disabled"}

# Update the Microsoft Entra DS resource
Set-AzResource -Id $DomainServicesResource.ResourceId -Properties $disableScopedSync

Změna rozsahu synchronizace způsobí, že spravovaná doména znovu synchronizuje všechna data. Objekty, které se už ve spravované doméně nevyžadují, se odstraní a dokončení opětovné synchronizace může trvat dlouhou dobu.

Další kroky

Další informace o procesu synchronizace najdete v tématu Principy synchronizace ve službě Microsoft Entra Domain Services.