Konfigurieren der bereichsbezogenen Synchronisierung von Microsoft Entra ID mit Microsoft Entra Domain Services mithilfe von Microsoft Graph PowerShell
Um Authentifizierungsdienste bereitzustellen, synchronisiert Microsoft Entra Domain Services Benutzer und Gruppen aus Microsoft Entra ID. In einer Hybridumgebung können Benutzer und Gruppen aus einer lokalen Active Directory Domain Services (AD DS)-Umgebung zuerst mithilfe von Microsoft Entra Connect mit Microsoft Entra ID und anschließend mit Domain Services synchronisiert werden.
Standardmäßig werden alle Benutzer und Gruppen aus einem Microsoft Entra-Verzeichnis in einer verwalteten Domain Services-Domäne synchronisiert. Bei speziellen Anforderungen können Sie stattdessen festlegen, dass nur eine definierte Gruppe von Benutzern synchronisiert werden soll.
In diesem Artikel erfahren Sie, wie Sie mithilfe von MS Graph PowerShell eine verwaltete Domäne mit einer bereichsbezogenen Synchronisierung erstellen und anschließend die Gruppe der Benutzer für diesen Bereich ändern oder deaktivieren. Sie können diese Schritte auch im Microsoft Entra Admin Center ausführen.
Voraussetzungen
Für diesen Artikel benötigen Sie die folgenden Ressourcen und Berechtigungen:
- Ein aktives Azure-Abonnement.
- Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein Konto.
- Einen mit Ihrem Abonnement verknüpften Microsoft Entra-Mandanten, der entweder mit einem lokalen Verzeichnis synchronisiert oder ein reines Cloudverzeichnis ist.
- Erstellen Sie einen Microsoft Entra-Mandanten, oder verknüpfen Sie ein Azure-Abonnement mit Ihrem Konto, sofern erforderlich.
- Eine von Microsoft Entra Domain Services verwaltete Domäne, die in Ihrem Microsoft Entra-Mandanten aktiviert und konfiguriert ist.
- Bearbeiten Sie bei Bedarf das Tutorial Erstellen und Konfigurieren einer verwalteten Microsoft Entra Domain Services-Domäne.
- Sie benötigen die Microsoft Entra-Rollen Anwendungsadministrator und Gruppenadministrator in Ihrem Mandanten, um den Domain Services-Synchronisierungsbereich zu ändern.
Übersicht über die bereichsbezogene Synchronisierung
Standardmäßig werden alle Benutzer und Gruppen aus einem Microsoft Entra-Verzeichnis in einer verwalteten Domäne synchronisiert. Wenn nur wenige Benutzer auf die verwaltete Domäne zugreifen müssen, können Sie nur diese Benutzerkonten synchronisieren. Diese bereichsbezogene Synchronisierung ist gruppenbasiert. Wenn Sie eine gruppenbasierte bereichsbezogene Synchronisierung konfigurieren, werden nur die Benutzerkonten, die zu den angegebenen Gruppen gehören, mit der verwalteten Domäne synchronisiert. Geschachtelte Gruppen werden nicht synchronisiert, nur die von Ihnen ausgewählten.
Sie können den Synchronisierungsbereich vor oder nach dem Erstellen der verwalteten Domäne ändern. Der Synchronisierungsbereich wird von einem Dienstprinzipal mit dem Anwendungsbezeichner 2565bd9d-da50-47d4-8b85-4c97f669dc36 definiert. Um einen Bereichsverlust zu verhindern, löschen oder ändern Sie den Dienstprinzipal nicht. Wenn der Synchronisierungsbereich versehentlich gelöscht wird, kann er nicht wiederhergestellt werden.
Beachten Sie die folgenden Einschränkungen, wenn Sie den Synchronisierungsbereich ändern:
- Eine vollständige Synchronisierung wird durchgeführt.
- Objekte, die in der verwalteten Domäne nicht mehr erforderlich sind, werden gelöscht. Neue Objekte werden in der verwalteten Domäne erstellt.
Weitere Informationen zum Synchronisierungsvorgang finden Sie unter Grundlegendes zur Synchronisierung in Microsoft Entra Domain Services.
PowerShell-Skript für die bereichsbezogene Synchronisierung
Zum Konfigurieren der bereichsbezogenen Synchronisierung mithilfe von PowerShell müssen Sie zuerst das folgende Skript in einer Datei namens Select-GroupsToSync.ps1
speichern.
Dieses Skript konfiguriert Domain Services so, dass ausgewählte Gruppen aus Microsoft Entra ID synchronisiert werden. Alle Benutzerkonten, die zu den angegebenen Gruppen gehören, werden mit der verwalteten Domäne synchronisiert.
Dieses Skript wird in den weiteren Schritten in diesem Artikel verwendet.
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 $false)
{
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"
Aktivieren der bereichsbezogenen Synchronisierung
Führen Sie die folgenden Schritte aus, um die gruppenbasierte bereichsbezogene Synchronisierung für eine verwaltete Domäne zu aktivieren:
Legen Sie zuerst „filteredSync“ = „Aktiviert“ für die Domain Services-Ressource fest, und aktualisieren Sie dann die verwaltete Domäne.
Zum Verwalten dieses Features ist ein globaler Administrator erforderlich.
Melden Sie sich mit dem Cmdlet Connect-MgGraph bei Ihrem Microsoft Entra-Mandanten an:
# 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
Geben Sie nun die Liste der Gruppen an, deren Benutzer mit der verwalteten Domäne synchronisiert werden sollen.
Führen Sie das Skript
Select-GroupsToSync.ps1
aus, und geben Sie die Liste der zu synchronisierenden Gruppen an. Im folgenden Beispiel sind die zu synchronisierenden GruppenSelect-GroupsToSync.ps1
und GroupName2.Warnung
Sie müssen die Gruppe AAD DC-Administratoren in die Liste der Gruppen für die bereichsbezogene Synchronisierung aufnehmen. Wenn Sie diese Gruppe nicht einbeziehen, kann die verwaltete Domäne nicht verwendet werden.
.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName2")
Wenn Sie den Bereich der Synchronisierung ändern, werden alle Daten in der verwalteten Domäne neu synchronisiert. Objekte, die in der verwalteten Domäne nicht mehr erforderlich sind, werden gelöscht, und die erneute Synchronisierung kann lange Zeit in Anspruch nehmen.
Ändern der bereichsbezogenen Synchronisierung
Führen Sie das Select-GroupsToSync.ps1
-Skript aus, und geben Sie die neue Liste von Gruppen für die Synchronisierung an, um die Liste der Gruppen zu ändern, deren Benutzer mit der verwalteten Domäne synchronisiert werden sollen.
Im folgenden Beispiel enthält die Liste der zu synchronisierenden Gruppen nicht mehr GroupName2, dafür aber GroupName3.
Warnung
Sie müssen die Gruppe AAD DC-Administratoren in die Liste der Gruppen für die bereichsbezogene Synchronisierung aufnehmen. Wenn Sie diese Gruppe nicht einbeziehen, kann die verwaltete Domäne nicht verwendet werden.
Zum Verwalten dieses Features ist ein globaler Administrator erforderlich.
Melden Sie sich mit dem Cmdlet Connect-MgGraph bei Ihrem Microsoft Entra-Mandanten an:
.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName3")
Wenn Sie den Bereich der Synchronisierung ändern, werden alle Daten in der verwalteten Domäne neu synchronisiert. Objekte, die in der verwalteten Domäne nicht mehr erforderlich sind, werden gelöscht, und die erneute Synchronisierung kann lange Zeit in Anspruch nehmen.
Deaktivieren der bereichsbezogenen Synchronisierung
Legen Sie zum Deaktivieren der gruppenbasierten bereichsbezogenen Synchronisierung für eine verwaltete Domäne „filteredSync“ = „Deaktiviert“ für die Domain Services-Ressource fest, und aktualisieren Sie dann die verwaltete Domäne. Nach Abschluss des Vorgangs ist für alle Benutzer und Gruppen die Synchronisierung von Microsoft Entra ID festgelegt.
Zum Verwalten dieses Features ist ein globaler Administrator erforderlich.
Melden Sie sich mit dem Cmdlet Connect-MgGraph bei Ihrem Microsoft Entra-Mandanten an:
# 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
Wenn Sie den Bereich der Synchronisierung ändern, werden alle Daten in der verwalteten Domäne neu synchronisiert. Objekte, die in der verwalteten Domäne nicht mehr erforderlich sind, werden gelöscht, und die erneute Synchronisierung kann lange Zeit in Anspruch nehmen.
Nächste Schritte
Weitere Informationen zum Synchronisierungsvorgang finden Sie unter Grundlegendes zur Synchronisierung in Microsoft Entra Domain Services.