Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come gestire i ruoli usando Microsoft Entra PowerShell. Un ruolo in Microsoft Entra definisce le autorizzazioni che controllano l'accesso a risorse come utenti, gruppi e applicazioni. Si assegnano ruoli a utenti, gruppi o entità servizio per concedere le autorizzazioni necessarie per eseguire attività specifiche. È anche possibile definire l'ambito di ogni assegnazione all'intera directory, a un'unità amministrativa o a una registrazione specifica dell'applicazione in modo che il ruolo si applichi solo dove è necessario.
Prerequisiti
Per gestire i ruoli con Microsoft Entra PowerShell, è necessario:
- Un account utente di Microsoft Entra. Se non si dispone già di un account, è possibile creare un account gratuitamente.
- Il ruolo seguente viene utilizzato per trovare definizioni di ruolo e assegnazioni: Directory Readers
- Il ruolo Amministratore ruolo con privilegi viene usato per creare, assegnare e rimuovere ruoli.
- Modulo PowerShell Microsoft Entra installato. Seguire la guida installare Microsoft Entra modulo di PowerShell per installare il modulo.
Trovare le definizioni dei ruoli
Una definizione di ruolo è una raccolta di autorizzazioni che possono essere eseguite, ad esempio lettura, scrittura ed eliminazione. Viene in genere chiamato ruolo. Microsoft Entra ID ha più di 60 ruoli predefiniti ed è possibile creare ruoli personalizzati. Per comprendere le operazioni di ogni ruolo, è possibile visualizzare un elenco dettagliato delle relative autorizzazioni.
Per ottenere tutte le definizioni di ruolo, eseguire il seguente comando Get-EntraDirectoryRoleDefinition con almeno il ruolo Lettori directory.
Connect-Entra -Scopes 'RoleManagement.Read.Directory'
Get-EntraDirectoryRoleDefinition
DisplayName Id TemplateId Description
----------- -- ---------- -----------
Guest User 10dae51f-b6af-4016-8d66-8c2a99b929b3 10dae51f-b6af-4016-8d66-8c2a99b929b3 Default role for guest users. Can read a limited set of directory information.
Restricted Guest User 2af84b1e-32c8-42b7-82bc-daa82404023b 2af84b1e-32c8-42b7-82bc-daa82404023b Restricted role for guest users. Can read a limited set of directory information.
Trovare le assegnazioni di ruolo
Questa sezione descrive come elencare i ruoli assegnati in Microsoft Entra ID. Per ottenere tutte le assegnazioni di ruolo, eseguire il comando Get-EntraDirectoryRoleAssignment con almeno il ruolo Lettori della directory.
Connect-Entra -Scopes 'RoleManagement.Read.Directory'
Get-EntraDirectoryRoleAssignment -All
Id PrincipalId RoleDefinitionId DirectoryScopeId AppScopeId
-- ----------- ---------------- ---------------- ----------
00001111-aaaa-2222-bbbb-3333cccc4444 aaaaaaaa-bbbb-cccc-1111-222222222222 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
11112222-bbbb-3333-cccc-4444dddd5555 bbbbbbbb-cccc-dddd-2222-333333333333 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
22223333-cccc-4444-dddd-5555eeee6666 cccccccc-dddd-eeee-3333-444444444444 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
33334444-dddd-5555-eeee-6666ffff7777 dddddddd-eeee-ffff-4444-555555555555 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
44445555-eeee-6666-ffff-7777aaaa8888 eeeeeeee-ffff-aaaa-5555-666666666666 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
PrincipalId Specifica l'account a cui viene assegnato il ruolo e RoleDefinitionId specifica il ruolo assegnato all'account.
Trovare assegnazioni di ruolo per un utente specifico
Per controllare i ruoli assegnati a un utente specifico, filtrare le assegnazioni di ruolo in base all'ID oggetto dell'utente.
Connect-Entra -Scopes 'RoleManagement.Read.Directory', 'User.Read.All'
$user = Get-EntraUser -UserId 'markus@contoso.com'
Get-EntraDirectoryRoleAssignment -All | Where-Object { $_.PrincipalId -eq $user.Id }
Id PrincipalId RoleDefinitionId DirectoryScopeId AppScopeId
-- ----------- ---------------- ---------------- ----------
00001111-aaaa-2222-bbbb-3333cccc4444 bbbbbbbb-1111-2222-3333-cccccccccccc a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
L'output visualizza gli ID delle assegnazioni di ruolo, ma non i nomi visualizzati dei ruoli. Per risolvere i nomi dei ruoli per ciascun RoleDefinitionId, convogliare le assegnazioni attraverso Get-EntraDirectoryRoleDefinition.
$assignments = Get-EntraDirectoryRoleAssignment -All | Where-Object { $_.PrincipalId -eq $user.Id }
foreach ($assignment in $assignments) {
$roleDef = Get-EntraDirectoryRoleDefinition -UnifiedRoleDefinitionId $assignment.RoleDefinitionId
[PSCustomObject]@{
RoleName = $roleDef.DisplayName
Scope = $assignment.DirectoryScopeId
}
}
RoleName Scope
-------- -----
Helpdesk Administrator /
User Administrator /administrativeUnits/aaaaaaaa-bbbb-cccc-1111-222222222222
Assegnazione di ruoli
Per concedere l'accesso agli utenti di Microsoft Entra ID, assegnare i ruoli di Microsoft Entra. Questa sezione illustra come assegnare ruoli Microsoft Entra a utenti e gruppi. Per completare le attività seguenti, è necessario disporre almeno del ruolo di Amministratore ruolo con privilegi.
Assegnare ruoli agli utenti
Usare Get-EntraUser per recuperare l'utente per l'assegnazione di ruolo.
Connect-Entra -Scopes 'User.Read.All' $user = Get-EntraUser -UserId 'markus@contoso.com'Il
-UserIdspecifica l'ID come nome dell'entità utente principale (UPN) o ObjectId.DisplayName Id Mail UserPrincipalName ----------- -- ---- ----------------- Markus Long bbbbbbbb-1111-2222-3333-cccccccccccc markus@contoso.com markus@contoso.onmicrosoft.comUsare il
Get-EntraDirectoryRoleDefinitioncomando per ottenere l'ID ruolo (RoleDefinitionId) da assegnare.Connect-Entra -Scopes 'RoleManagement.Read.Directory', 'EntitlementManagement.Read.All' $directoryRole = Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'Helpdesk Administrator'"Usare il
New-EntraDirectoryRoleAssignmentcomando per assegnare il ruolo.Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory' New-EntraDirectoryRoleAssignment -RoleDefinitionId $directoryRole.Id -PrincipalId $user.Id -DirectoryScopeId '/'Id PrincipalId RoleDefinitionId DirectoryScopeId AppScopeId -- ----------- ---------------- ---------------- ---------- 00001111-aaaa-2222-bbbb-3333cccc4444 aaaaaaaa-bbbb-cccc-1111-222222222222 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
Questo comando crea una nuova assegnazione di ruolo in Microsoft Entra ID.
Il
-RoleDefinitionIdparametro specifica l'ID della definizione del ruolo da assegnare. Le definizioni dei ruoli descrivono le autorizzazioni concesse a utenti o gruppi dal ruolo. Questo è l'identificatore delunifiedRoleDefinitiona cui si riferisce l'assegnazione.Il
-PrincipalIdparametro specifica l'ID dell'entità (utente, gruppo o entità servizio) a cui viene assegnato il ruolo.Il
-DirectoryScopeIdparametro specifica l'ambito della directory su cui è effettiva l'assegnazione di ruolo. Il/valore rappresenta in genere l'ambito radice, ovvero l'assegnazione di ruolo è applicabile nell'intera directory.
Note
I passaggi descritti in questa sezione creano un'assegnazione di ruolo permanente (attiva). Per concedere a un utente un accesso temporaneo o just-in-time tramite Privileged Identity Management (PIM), vedi i cmdlet di Microsoft Entra PowerShell per Privileged Identity Management.
Assegnare ruoli ai gruppi
Per semplificare la gestione dei ruoli, è possibile assegnare Microsoft Entra ruoli a un gruppo anziché a singoli utenti. In questo modo, è possibile gestire le assegnazioni di ruolo per più utenti contemporaneamente.
Creare un gruppo assegnabile a ruoli usando il
IsAssignableToRoleparametro . Questo parametro è impostato suTrueper indicare che il gruppo può essere assegnato a un ruolo.Connect-Entra -Scopes 'Group.ReadWrite.All' $params = @{ DisplayName = 'HelpDesk admin group2' Description = 'Group assignable to role' MailEnabled = $False MailNickname = 'helpDeskAdminGroup' SecurityEnabled = $True IsAssignableToRole = $True } $group = New-EntraGroup @paramsDisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- HelpDesk admin group2 vvvvvvvv-8888-9999-0000-jjjjjjjjjjjj helpDeskAdminGroup Group assignable to role {}Ottenere l'ID ruolo (
RoleDefinitionId) da assegnare usando ilGet-EntraDirectoryRoleDefinitioncomando .Connect-Entra -Scopes 'RoleManagement.Read.Directory' $directoryRole = Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'Helpdesk Administrator'"Creare un'assegnazione di ruolo usando il
New-EntraDirectoryRoleAssignmentcomando dovePrincipalIdè l'ID gruppo.Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory' New-EntraDirectoryRoleAssignment -RoleDefinitionId $directoryRole.Id -PrincipalId $group.Id -DirectoryScopeId '/'
Assegnare ruoli alle entità servizio
È possibile assegnare Microsoft Entra ruoli a un'entità servizio, inclusa un'identità gestita, in modo che un'applicazione possa eseguire attività di directory per proprio conto senza un utente connesso.
Usare Get-EntraServicePrincipal per recuperare l'entità servizio.
Connect-Entra -Scopes 'Application.Read.All' $servicePrincipal = Get-EntraServicePrincipal -Filter "DisplayName eq 'My Application'"DisplayName Id AppId SignInAudience ServicePrincipalType ----------- -- ----- -------------- -------------------- My Application cccccccc-dddd-eeee-3333-444444444444 44445555-eeee-6666-ffff-7777aaaa8888 AzureADMyOrg ApplicationOttenere l'ID ruolo da assegnare.
Connect-Entra -Scopes 'RoleManagement.Read.Directory' $directoryRole = Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'Directory Readers'"Assegna il ruolo all'entità servizio.
Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory' New-EntraDirectoryRoleAssignment -RoleDefinitionId $directoryRole.Id -PrincipalId $servicePrincipal.Id -DirectoryScopeId '/'Id PrincipalId RoleDefinitionId DirectoryScopeId AppScopeId -- ----------- ---------------- ---------------- ---------- A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u cccccccc-dddd-eeee-3333-444444444444 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /
Assegnare ruoli con ambito per unità amministrativa
È possibile limitare un'assegnazione di ruolo a una specifica unità amministrativa anziché all'intera directory. Le autorizzazioni del ruolo si applicano quindi solo agli utenti, ai gruppi o ai dispositivi appartenenti a tale unità amministrativa, che consente di seguire il principio dei privilegi minimi. Per altre informazioni sulle unità amministrative, vedere Unità amministrative in Microsoft Entra ID.
Recuperare l'entità (utente, gruppo o entità servizio) e l'unità amministrativa.
Connect-Entra -Scopes 'User.Read.All', 'AdministrativeUnit.Read.All' $user = Get-EntraUser -UserId 'markus@contoso.com' $adminUnit = Get-EntraAdministrativeUnit -Filter "DisplayName eq 'Seattle Admin Unit'"Ottenere la definizione del ruolo.
Connect-Entra -Scopes 'RoleManagement.Read.Directory' $directoryRole = Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'User Administrator'"Assegna il ruolo nell'ambito dell'unità amministrativa.
Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory' $directoryScopeId = '/administrativeUnits/' + $adminUnit.Id New-EntraDirectoryRoleAssignment -RoleDefinitionId $directoryRole.Id -PrincipalId $user.Id -DirectoryScopeId $directoryScopeIdId PrincipalId RoleDefinitionId DirectoryScopeId AppScopeId -- ----------- ---------------- ---------------- ---------- A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u bbbbbbbb-1111-2222-3333-cccccccccccc a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /administrativeUnits/aaaaaaaa-bbbb-cccc-1111-222222222222
L'utente ha ora il ruolo Amministratore utenti solo all'interno dell'unità amministrativa specificata.
Assegnare ruoli con ambito applicazione
È possibile limitare l'ambito di un'assegnazione di ruolo alla registrazione di una singola applicazione, in modo che il soggetto possa gestire solo tale applicazione. Usare questo ambito quando, ad esempio, si vuole che uno sviluppatore gestisca la propria registrazione dell'app senza concedere loro autorizzazioni di amministratore applicazioni a livello di tenant.
Recuperare l'utente e la registrazione dell'applicazione.
Connect-Entra -Scopes 'User.Read.All', 'Application.Read.All' $user = Get-EntraUser -UserId 'markus@contoso.com' $application = Get-EntraApplication -Filter "DisplayName eq 'My Web App'"Ottenere la definizione del ruolo.
Connect-Entra -Scopes 'RoleManagement.Read.Directory' $directoryRole = Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'Application Administrator'"Assegna il ruolo con ambito limitato all'applicazione.
Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory' $directoryScopeId = '/' + $application.Id New-EntraDirectoryRoleAssignment -RoleDefinitionId $directoryRole.Id -PrincipalId $user.Id -DirectoryScopeId $directoryScopeIdId PrincipalId RoleDefinitionId DirectoryScopeId AppScopeId -- ----------- ---------------- ---------------- ---------- A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u bbbbbbbb-1111-2222-3333-cccccccccccc a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 /dddddddd-eeee-ffff-4444-555555555555
L'utente ha ora il ruolo Amministratore applicazione solo per la registrazione dell'applicazione specificata.
Note
I due formati di ambito hanno una semantica diversa. Un ambito di /{id} (usato per l'ambito dell'applicazione) indica che l'entità può gestire l'oggetto stesso. Un ambito indica /administrativeUnits/{id} che l'entità può gestire i membri dell'unità amministrativa (in base al ruolo assegnato), non l'unità amministrativa stessa. Per altre informazioni, vedere Assegnare ruoli Microsoft Entra in ambiti diversi.
Creare un ruolo personalizzato
Questa sezione illustra come creare nuovi ruoli personalizzati in Microsoft Entra ID con Microsoft Entra PowerShell. Per completare l'attività seguente, è necessario disporre almeno del ruolo Privileged Role Administrator.
Per creare un nuovo ruolo, usare il New-EntraDirectoryRoleDefinition cmdlet .
- Il
RolePermissionsparametro specifica le autorizzazioni per la definizione del ruolo. - Il
IsEnabledparametro specifica se la definizione del ruolo è abilitata. - Il
DisplayNameparametro specifica il nome visualizzato per la definizione del ruolo.
Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory'
$rolePermissions = New-object Microsoft.Open.MSGraph.Model.RolePermission
$rolePermissions.AllowedResourceActions = @("microsoft.directory/applications/basic/read")
New-EntraDirectoryRoleDefinition -RolePermissions $rolePermissions -IsEnabled $true -DisplayName 'Custom Application Read'
DisplayName Id TemplateId Description IsBuiltIn IsEnabled
----------- -- ---------- ----------- --------- ---------
Custom Application Read a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 f5f5f5f5-aaaa-bbbb-cccc-d6d6d6d6d6d6 False True
Per trovare altre opzioni di configurazione durante la creazione di un ruolo personalizzato, consultare l'articolo New-EntraDirectoryRoleDefinition.
Dopo aver creato il ruolo, è possibile assegnarlo a utenti o gruppi.
Pulire le risorse
Questa sezione illustra come eliminare i ruoli in Microsoft Entra ID con Microsoft Entra PowerShell. Per completare le attività seguenti, è necessario disporre almeno del ruolo Amministratore ruolo con privilegi.
Rimuovi assegnazioni di ruolo
Usare il Remove-EntraDirectoryRoleAssignment comando per rimuovere un'assegnazione di ruolo. Se è necessario trovare l'ID assegnazione di ruolo, indicato nel -Id parametro , eseguire prima il Get-EntraDirectoryRoleAssignment comando .
Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory'
$group = Get-EntraGroup -Filter "DisplayName eq 'HelpDesk admin group2'"
$directoryRole = Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'Helpdesk Administrator'"
Get-EntraDirectoryRoleAssignment | Where-Object {$_.PrincipalId -eq $group.Id -and $_.RoleDefinitionId -eq $directoryRole.Id} | Remove-EntraDirectoryRoleAssignment
In questo esempio viene rimossa l'assegnazione di ruolo specificata da Microsoft Entra ID.
Rimuovi ruoli
Non è possibile eliminare i ruoli predefiniti. Usare il Remove-EntraDirectoryRoleDefinition comando per eliminare un ruolo personalizzato. Il DisplayName parametro fa riferimento al nome visualizzato del ruolo personalizzato.
Connect-Entra -Scopes 'RoleManagement.ReadWrite.Directory'
Get-EntraDirectoryRoleDefinition -Filter "DisplayName eq 'Custom Application Read'" | Remove-EntraDirectoryRoleDefinition