Assegnare ruoli personalizzati con ambito di risorsa usando PowerShell in Microsoft Entra ID

Questo articolo descrive come creare un'assegnazione di ruolo nell'ambito a livello di organizzazione in Microsoft Entra ID. L'assegnazione di un ruolo con ambito con ambito corrispondente all'intera organizzazione concede l'accesso all'intera organizzazione di Microsoft Entra. Per creare un'assegnazione di ruolo con un ambito di una singola risorsa Microsoft Entra, vedere Creare e assegnare un ruolo personalizzato in Microsoft Entra ID. Questo articolo usa il modulo Microsoft Graph PowerShell SDK .

Per altre informazioni sui ruoli di Microsoft Entra, vedere Ruoli predefiniti di Microsoft Entra.

Prerequisiti

  • Licenza Microsoft Entra ID P1 o P2
  • Amministratore dei ruoli con privilegi o amministratore globale
  • Modulo di Microsoft Graph PowerShell quando si usa PowerShell

Per altre informazioni, vedere Prerequisiti per l'uso di PowerShell o Graph Explorer.

Assegnare un ruolo di directory a un utente o a un'entità servizio con ambito di risorsa

  1. Caricare il modulo Microsoft Graph PowerShell .

  2. Accedere eseguendo il comando Connect-MgGraph.

  3. Creare un nuovo ruolo usando lo script di PowerShell seguente.

    ## Assign a role to a user or service principal with resource scope
    # Get the user and role definition you want to link
    $user = Get-MgUser -Filter "UserPrincipalName eq 'cburl@f128.info'"
    $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Support Administrator'"
    
    # Get app registration and construct resource scope for assignment.
    $appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'"
    $directoryScope = '/' + $appRegistration.Id
    
    # Create a scoped role assignment
    $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
       -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id
    

Per assegnare il ruolo a un'entità servizio anziché a un utente, usare il cmdlet Get-MgServicePrincipal .

Definizioni dei ruoli

Gli oggetti definizione del ruolo contengono la definizione del ruolo predefinito o personalizzato, insieme alle autorizzazioni concesse da tale assegnazione di ruolo. Questa risorsa visualizza sia le definizioni di ruolo personalizzate che i ruoli predefiniti della directory (visualizzati nel modulo equivalente roleDefinition). Per informazioni sul numero massimo di ruoli personalizzati che possono essere creati in un'organizzazione Microsoft Entra, vedere Limiti e restrizioni del servizio Microsoft Entra.

Creare una definizione di ruolo

# Basic information
$description = "Can manage credentials of application registrations"
$displayName = "Application Registration Credential Administrator"
$templateId = (New-Guid).Guid

# Set of actions to include
$rolePermissions = @{
    "allowedResourceActions" = @(
        "microsoft.directory/applications/standard/read",
        "microsoft.directory/applications/credentials/update"
    )
}

# Create new custom directory role
$customAdmin = New-MgRoleManagementDirectoryRoleDefinition -RolePermissions $rolePermissions `
   -DisplayName $displayName -Description $description -TemplateId $templateId -IsEnabled:$true

Leggere ed elencare le definizioni dei ruoli

# Get all role definitions
Get-MgRoleManagementDirectoryRoleDefinition

# Get single role definition by ID
Get-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId 86593cfc-114b-4a15-9954-97c3494ef49b

# Get single role definition by templateId
Get-MgRoleManagementDirectoryRoleDefinition -Filter "TemplateId eq 'c4e39bd9-1100-46d3-8c65-fb160da0071f'"

Aggiornare una definizione di ruolo

# Update role definition
# This works for any writable property on role definition. You can replace display name with other
# valid properties.
Update-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f `
   -DisplayName "Updated DisplayName"

Eliminare una definizione di ruolo

# Delete role definition
Remove-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f

Assegnazioni di ruolo

Le assegnazioni di ruolo contengono informazioni che collegano una determinata entità di sicurezza (un utente o un'entità servizio dell'applicazione) a una definizione di ruolo. Se necessario, è possibile aggiungere un ambito di una singola risorsa Microsoft Entra per le autorizzazioni assegnate. La limitazione dell'ambito di un'assegnazione di ruolo è supportata per i ruoli predefiniti e personalizzati.

Creare un'assegnazione di ruolo

# Get the user and role definition you want to link
$user = Get-MgUser -Filter "userPrincipalName eq 'cburl@f128.info'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Support Administrator'"

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'"
$directoryScope = '/' + $appRegistration.Id

# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
   -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id

Leggere ed elencare le assegnazioni di ruolo

# Get role assignments for a given principal
Get-MgRoleManagementDirectoryRoleAssignment -Filter "PrincipalId eq '27c8ca78-ab1c-40ae-bd1b-eaeebd6f68ac'"

# Get role assignments for a given role definition 
Get-MgRoleManagementDirectoryRoleAssignment -Filter "RoleDefinitionId eq '355aed8a-864b-4e2b-b225-ea95482e7570'"

Rimuovere un'assegnazione di ruolo

# Remove role assignment
Remove-MgRoleManagementDirectoryRoleAssignment -UnifiedRoleAssignmentId 'qiho4WOb9UKKgng_LbPV7tvKaKRCD61PkJeKMh7Y458-1'

Passaggi successivi