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 z lokalnego środowiska Active Directory Domain Services (AD DS) można najpierw zsynchronizować z Microsoft Entra ID przy użyciu narzędzia Microsoft Entra Connect, a następnie zsynchronizować z usługą 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.
- Klient Microsoft Entra powiązany z twoją subskrypcją, zsynchronizowany z katalogiem lokalnym lub wyłącznie chmurowym.
- W razie potrzeby utwórz dzierżawę Microsoft Entra lub skojarz subskrypcję Azure z twoim kontem.
- W dzierżawie Microsoft Entra została włączona i skonfigurowana zarządzana domena usługi Microsoft Entra Domain Services.
- 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 Administratora Grup Microsoft Entra w ramach dzierżawy.
Omówienie ograniczonej synchronizacji
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, synchronizowane są tylko wybrane przez ciebie 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 podmiotu 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 PowerShell do synchronizacji o określonym 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łącz synchronizację ograniczoną 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 Microsoft Entra przy użyciu cmdletu 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 kontrolerów domeny AAD na liście grup przeznaczonej do synchronizacji zakresowej. 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 o zdefiniowanym zasięgu
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ę AAD DC Administrators na liście grup do synchronizacji ograniczonego zakresu. 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 swojej 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łącz synchronizację zgodną z zakresem
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 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.