Hatóköralapú szinkronizálás konfigurálása a Microsoft Entra-azonosítóról a Microsoft Entra Domain Servicesre a Microsoft Graph PowerShell használatával
A hitelesítési szolgáltatások biztosításához a Microsoft Entra Domain Services szinkronizálja a felhasználókat és csoportokat a Microsoft Entra-azonosítóból. Hibrid környezetben a helyi Active Directory Tartományi szolgáltatások (AD DS) környezetből származó felhasználók és csoportok először szinkronizálhatók a Microsoft Entra ID-ra a Microsoft Entra Connect használatával, majd szinkronizálhatók a Domain Services szolgáltatással.
Alapértelmezés szerint egy Microsoft Entra-címtár összes felhasználója és csoportja szinkronizálva lesz egy domain Services által felügyelt tartományba. Ha konkrét igényei vannak, ehelyett dönthet úgy, hogy csak egy meghatározott felhasználócsoportot szinkronizál.
Ez a cikk bemutatja, hogyan hozhat létre hatókörön belüli szinkronizálást használó felügyelt tartományt, majd hogyan módosíthatja vagy tilthatja le a hatókörrel rendelkező felhasználókat az MS Graph PowerShell használatával. Ezeket a lépéseket a Microsoft Entra felügyeleti központban is elvégezheti.
Mielőtt elkezdené
A cikk elvégzéséhez a következő erőforrásokra és jogosultságokra van szüksége:
- Aktív Azure-előfizetés.
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy fiókot.
- Az előfizetéséhez társított Microsoft Entra-bérlő, amely egy helyszíni vagy egy csak felhőalapú címtárral van szinkronizálva.
- Szükség esetén hozzon létre egy Microsoft Entra-bérlőt, vagy rendelje hozzá az Azure-előfizetést a fiókjához.
- A Microsoft Entra Domain Services által felügyelt tartomány engedélyezve és konfigurálva van a Microsoft Entra-bérlőben.
- Ha szükséges, végezze el az oktatóanyagot egy Felügyelt Microsoft Entra Domain Services-tartomány létrehozásához és konfigurálásához.
- A Tartományi szolgáltatások szinkronizálási hatókörének módosításához a bérlőben alkalmazásadminisztrátori és csoportadminisztrátori Microsoft Entra-szerepkörökre van szükség.
Hatókörön belüli szinkronizálás áttekintése
Alapértelmezés szerint egy Microsoft Entra-címtár összes felhasználója és csoportja szinkronizálva lesz egy felügyelt tartománnyal. Ha csak néhány felhasználónak kell hozzáférnie a felügyelt tartományhoz, csak ezeket a felhasználói fiókokat szinkronizálhatja. Ez a hatókörön alapuló szinkronizálás csoportalapú. Csoportalapú hatókörű szinkronizálás konfigurálásakor csak a megadott csoportokhoz tartozó felhasználói fiókok lesznek szinkronizálva a felügyelt tartományba. A beágyazott csoportok nincsenek szinkronizálva, csak a kiválasztott csoportok.
A felügyelt tartomány létrehozása előtt vagy után módosíthatja a szinkronizálási hatókört. A szinkronizálás hatókörét egy szolgáltatásnév határozza meg a 2565bd9d-da50-47d4-8b85-4c97f669dc36 alkalmazásazonosítóval. A hatókör elvesztésének megakadályozása érdekében ne törölje vagy módosítsa a szolgáltatásnevet. Ha véletlenül törölték, a szinkronizálási hatókör nem állítható helyre.
Ha módosítja a szinkronizálási hatókört, tartsa szem előtt az alábbi figyelmeztetéseket:
- Teljes szinkronizálás történik.
- A felügyelt tartományban már nem szükséges objektumok törlődnek. A rendszer új objektumokat hoz létre a felügyelt tartományban.
A szinkronizálási folyamatról további információt a Microsoft Entra Domain Services szinkronizálásának ismertetése című témakörben talál.
PowerShell-szkript hatókörön belüli szinkronizáláshoz
A hatókörön belüli szinkronizálás PowerShell-lel való konfigurálásához először mentse a következő szkriptet egy nevű Select-GroupsToSync.ps1
fájlba.
Ez a szkript úgy konfigurálja a Domain Servicest, hogy szinkronizálja a kijelölt csoportokat a Microsoft Entra-azonosítóból. A megadott csoportokhoz tartozó összes felhasználói fiók szinkronizálva lesz a felügyelt tartománnyal.
Ezt a szkriptet a cikk további lépéseiben használjuk.
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"
Hatókörön belüli szinkronizálás engedélyezése
Ha egy felügyelt tartomány csoportalapú hatókörű szinkronizálását szeretné engedélyezni, hajtsa végre a következő lépéseket:
Először állítsa be a "filteredSync" = "Enabled" értéket a Domain Services-erőforráson, majd frissítse a felügyelt tartományt.
A szolgáltatás kezeléséhez globális rendszergazdára van szükség.
Jelentkezzen be a Microsoft Entra-bérlőbe a Connect-MgGraph parancsmaggal:
# 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
Most adja meg azoknak a csoportoknak a listáját, amelyeknek a felhasználóit szinkronizálni kell a felügyelt tartománnyal.
Futtassa a
Select-GroupsToSync.ps1
szkriptet, és adja meg a szinkronizálandó csoportok listáját. Az alábbi példában a szinkronizálandó csoportok a GroupName1 és a GroupName2.Figyelmeztetés
A hatókörrel rendelkező szinkronizálási csoportok listájában szerepelnie kell az AAD tartományvezérlő rendszergazdák csoportjának. Ha nem tartalmazza ezt a csoportot, a felügyelt tartomány nem használható.
.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName2")
A szinkronizálás hatókörének módosítása miatt a felügyelt tartomány újraszinkronizálja az összes adatot. A felügyelt tartományban már nem szükséges objektumok törlődnek, és az újraszinkronizálás hosszú időt vehet igénybe.
Hatókörön belüli szinkronizálás módosítása
Azoknak a csoportoknak a listájának módosításához, amelyeknek a felhasználóit szinkronizálni kell a felügyelt tartománnyal, futtassa Select-GroupsToSync.ps1
a szkriptet, és adja meg a szinkronizálandó csoportok új listáját.
Az alábbi példában a szinkronizálandó csoportok már nem tartalmazzák a GroupName2-t, és most már a GroupName3-at is tartalmazzák.
Figyelmeztetés
A hatókörrel rendelkező szinkronizálási csoportok listájában szerepelnie kell az AAD tartományvezérlő rendszergazdák csoportjának. Ha nem tartalmazza ezt a csoportot, a felügyelt tartomány nem használható.
A szolgáltatás kezeléséhez globális rendszergazdára van szükség.
Jelentkezzen be a Microsoft Entra-bérlőbe a Connect-MgGraph parancsmaggal.
.\Select-GroupsToSync.ps1 -groupsToAdd @("AAD DC Administrators", "GroupName1", "GroupName3")
A szinkronizálás hatókörének módosítása miatt a felügyelt tartomány újraszinkronizálja az összes adatot. A felügyelt tartományban már nem szükséges objektumok törlődnek, és az újraszinkronizálás hosszú időt vehet igénybe.
Hatókörön belüli szinkronizálás letiltása
Ha egy felügyelt tartomány csoportalapú hatókörű szinkronizálását szeretné letiltani, állítsa be a "filteredSync" = "Disabled" értéket a Domain Services-erőforráson, majd frissítse a felügyelt tartományt. Ha elkészült, az összes felhasználó és csoport szinkronizálva lesz a Microsoft Entra-azonosítóból.
A szolgáltatás kezeléséhez globális rendszergazdára van szükség.
Jelentkezzen be a Microsoft Entra-bérlőbe a Connect-MgGraph parancsmaggal:
# 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
A szinkronizálás hatókörének módosítása miatt a felügyelt tartomány újraszinkronizálja az összes adatot. A felügyelt tartományban már nem szükséges objektumok törlődnek, és az újraszinkronizálás hosszú időt vehet igénybe.
Következő lépések
A szinkronizálási folyamatról további információt a Microsoft Entra Domain Services szinkronizálásának ismertetése című témakörben talál.