Konfigurowanie synchronizacji o określonym zakresie z identyfikatora Entra firmy Microsoft do usług Microsoft Entra Domain Services przy użyciu programu Microsoft Graph PowerShell
Aby zapewnić usługi uwierzytelniania, usługi Microsoft Entra Domain Services synchronizują użytkowników i grupy z identyfikatora Entra firmy Microsoft. W środowisku hybrydowym użytkownicy i grupy ze środowiska usług lokalna usługa Active Directory Domain Services (AD DS) można najpierw zsynchronizować z firmą Microsoft Entra ID przy użyciu programu Microsoft Entra Connect, a następnie zsynchronizować z usługami Domain Services.
Domyślnie wszyscy użytkownicy i grupy z katalogu Microsoft Entra są synchronizowani z domeną zarządzaną usług Domenowych. Jeśli masz określone potrzeby, możesz zamiast tego wybrać synchronizację tylko zdefiniowanego zestawu użytkowników.
W tym artykule pokazano, jak utworzyć domenę zarządzaną korzystającą z synchronizacji w zakresie, a następnie zmienić lub wyłączyć zestaw użytkowników o określonym zakresie przy użyciu programu MS Graph PowerShell. Możesz również wykonać te kroki przy użyciu centrum administracyjnego firmy Microsoft Entra.
Zanim rozpoczniesz
Do ukończenia tego artykułu potrzebne są następujące zasoby i uprawnienia:
- Aktywna subskrypcja platformy Azure.
- Jeśli nie masz subskrypcji platformy Azure, utwórz konto.
- Dzierżawa firmy Microsoft Entra skojarzona z twoją subskrypcją, zsynchronizowana z katalogiem lokalnym lub katalogiem tylko w chmurze.
- W razie potrzeby utwórz dzierżawę firmy Microsoft Entra lub skojarz subskrypcję platformy Azure z twoim kontem.
- Domena zarządzana usług Microsoft Entra Domain Services jest włączona i skonfigurowana w dzierżawie firmy Microsoft Entra.
- W razie potrzeby ukończ samouczek, aby utworzyć i skonfigurować domenę zarządzaną usług Microsoft Entra Domain Services.
- Aby zmienić zakres synchronizacji usług Domain Services, potrzebujesz ról administratora aplikacji i administratorów grup firmy Microsoft w dzierżawie.
Omówienie synchronizacji w zakresie
Domyślnie wszyscy użytkownicy i grupy z katalogu Microsoft Entra są synchronizowane z domeną zarządzaną. Jeśli tylko kilku użytkowników musi uzyskać dostęp do domeny zarządzanej, możesz zsynchronizować tylko te konta użytkowników. Ta synchronizacja o określonym zakresie jest oparta na grupach. Podczas konfigurowania synchronizacji w zakresie grupy tylko konta użytkowników należące do określonych grup są synchronizowane z domeną zarządzaną. Grupy zagnieżdżone nie są synchronizowane, tylko wybrane grupy.
Zakres synchronizacji można zmienić przed lub po utworzeniu domeny zarządzanej. Zakres synchronizacji jest definiowany przez jednostkę usługi z identyfikatorem aplikacji 2565bd9d-da50-47d4-8b85-4c97f669dc36. Aby zapobiec utracie zakresu, nie usuwaj ani nie zmieniaj jednostki usługi. Jeśli zostanie on przypadkowo usunięty, nie można odzyskać zakresu synchronizacji.
Pamiętaj o następujących zastrzeżeniach w przypadku zmiany zakresu synchronizacji:
- Wykonywana jest pełna synchronizacja.
- Obiekty, które nie są już wymagane w domenie zarządzanej, są usuwane. Nowe obiekty są tworzone w domenie zarządzanej.
Aby dowiedzieć się więcej na temat procesu synchronizacji, zobacz Omówienie synchronizacji w usługach Microsoft Entra Domain Services.
Skrypt programu PowerShell na potrzeby synchronizacji w zakresie
Aby skonfigurować synchronizację w zakresie przy użyciu programu PowerShell, najpierw zapisz następujący skrypt w pliku o nazwie Select-GroupsToSync.ps1
.
Ten skrypt konfiguruje usługi Domain Services do synchronizowania wybranych grup z identyfikatora Entra firmy Microsoft. Wszystkie konta użytkowników, które są częścią określonych grup, są synchronizowane z domeną zarządzaną.
Ten skrypt jest używany w dodatkowych krokach w tym artykule.
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"
Włączanie synchronizacji z zakresem
Aby włączyć synchronizację w zakresie grupy dla domeny zarządzanej, wykonaj następujące kroki:
Najpierw ustaw parametr "filteredSync" = "Enabled" w zasobie usług Domenowych, a następnie zaktualizuj domenę zarządzaną.
Do zarządzania tą funkcją jest wymagany administrator globalny.
Zaloguj się do dzierżawy firmy Microsoft Entra przy użyciu polecenia cmdlet Connect-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
Teraz określ listę grup, których użytkownicy powinni być synchronizowani z domeną zarządzaną.
Select-GroupsToSync.ps1
Uruchom skrypt i określ listę grup do synchronizacji. W poniższym przykładzie grupy do synchronizacji to GroupName1 i GroupName2.Ostrzeżenie
Musisz uwzględnić grupę Administratorzy kontrolera domeny usługi AAD na liście grup na potrzeby synchronizacji w zakresie. Jeśli nie dołączysz tej grupy, domena zarządzana będzie bezużyteczna.
.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName2")
Zmiana zakresu synchronizacji powoduje ponowne zsynchronizowanie wszystkich danych przez domenę zarządzaną. Obiekty, które nie są już wymagane w domenie zarządzanej, są usuwane, a ponowne synchronizowanie może zająć dużo czasu.
Modyfikowanie synchronizacji w zakresie
Aby zmodyfikować listę grup, których użytkownicy powinni być synchronizowani z domeną zarządzaną, uruchom Select-GroupsToSync.ps1
skrypt i określ nową listę grup do synchronizacji.
W poniższym przykładzie grupy do synchronizacji nie zawierają już grupy Nazwa_grupy2, a teraz obejmuje grupę Nazwa_grupy3.
Ostrzeżenie
Musisz uwzględnić grupę Administratorzy kontrolera domeny usługi AAD na liście grup na potrzeby synchronizacji w zakresie. Jeśli nie dołączysz tej grupy, domena zarządzana będzie bezużyteczna.
Do zarządzania tą funkcją jest wymagany administrator globalny.
Zaloguj się do dzierżawy microsoft Entra przy użyciu polecenia cmdlet Connect-MgGraph .
.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName3")
Zmiana zakresu synchronizacji powoduje ponowne zsynchronizowanie wszystkich danych przez domenę zarządzaną. Obiekty, które nie są już wymagane w domenie zarządzanej, są usuwane, a ponowne synchronizowanie może zająć dużo czasu.
Wyłączanie synchronizacji w zakresie
Aby wyłączyć synchronizację w zakresie grupy dla domeny zarządzanej, ustaw wartość "filteredSync" = "Disabled" w zasobie usług Domain Services, a następnie zaktualizuj domenę zarządzaną. Po zakończeniu wszyscy użytkownicy i grupy są ustawiani na synchronizację z identyfikatorem Entra firmy Microsoft.
Do zarządzania tą funkcją jest wymagany administrator globalny.
Zaloguj się do dzierżawy firmy Microsoft Entra przy użyciu polecenia cmdlet Connect-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
Zmiana zakresu synchronizacji powoduje ponowne zsynchronizowanie wszystkich danych przez domenę zarządzaną. Obiekty, które nie są już wymagane w domenie zarządzanej, są usuwane, a ponowne synchronizowanie może zająć dużo czasu.
Następne kroki
Aby dowiedzieć się więcej na temat procesu synchronizacji, zobacz Omówienie synchronizacji w usługach Microsoft Entra Domain Services.