Gestire assegnazioni di utenti e gruppi a un'applicazione

Questo articolo illustra come assegnare utenti e gruppi a un'applicazione aziendale in Microsoft Entra ID usando PowerShell. Quando si assegna un utente a un'applicazione, l'applicazione viene visualizzata nel portale App personali dell'utente, per accedervi più facilmente. Se l'applicazione espone i ruoli delle app, è anche possibile assegnare un ruolo specifico all'utente.

Quando si assegna un gruppo a un'applicazione, possono accedere solo gli utenti del gruppo. L'assegnazione non si propaga a cascata ai gruppi annidati.

Assegnazione basata su gruppi richiede l'edizione P1 o P2 di Microsoft Entra ID. L'assegnazione basata su gruppo è supportata per i gruppi di sicurezza e i gruppi di Microsoft 365 e i gruppi di distribuzione la cui impostazione SecurityEnabled è solo True. Attualmente l'appartenenza a gruppi annidati non è supportata. Per altri requisiti di licenza per le funzionalità descritte in questo articolo, vedere la pagina dei prezzi di Microsoft Entra.

Per un maggiore controllo, è possibile configurare alcuni tipi di applicazioni aziendali per richiedere l'assegnazione di utenti. Per altre informazioni sulla richiesta di assegnazione di utenti per un'app, vedere Gestire l'accesso a un'applicazione.

Nota

Le applicazioni che richiedono che gli utenti vengano assegnati all'applicazione devono disporre delle autorizzazioni concesse da un amministratore, anche se i criteri di consenso utente per la directory consentirebbero altrimenti a un utente di fornire il consenso per proprio conto.

Prerequisiti

Per assegnare utenti a un'applicazione aziendale, occorre:

  • Un account Microsoft Entra con una sottoscrizione attiva. Se non si dispone già di un account, è possibile creare un account gratuitamente.
  • Uno dei ruoli seguenti: Amministratore applicazione cloud, Amministratore di applicazioni oppure proprietario dell'entità servizio.
  • Microsoft Entra ID P1 o P2 per l'assegnazione basata su gruppo. Per altri requisiti di licenza per le funzionalità descritte in questo articolo, vedere la pagina dei prezzi di Microsoft Entra.

Suggerimento

La procedura descritta in questo articolo può variare leggermente in base al portale di partenza.

Assegnare utenti e gruppi a un'applicazione usando l'interfaccia di amministrazione di Microsoft Entra

Per assegnare un utente o un account di gruppo a un'applicazione aziendale:

  1. Accedere all'Interfaccia di amministrazione di Microsoft Entra almeno come Amministratore applicazione cloud.

  2. Passare a Identità>Applicazioni>Applicazioni aziendali>Tutte le applicazioni.

  3. Immettere il nome dell'applicazione esistente nella casella di ricerca e quindi selezionare l'applicazione nei risultati della ricerca.

  4. Selezionare Utenti e gruppi e quindi Aggiungi utenti/gruppo.

    Assegnare un account utente a un'applicazione nel tenant di Microsoft Entra.

  5. Nel riquadro Aggiungi assegnazione, selezionare Nessuno selezionato in Utenti e gruppi.

  6. Cercare e selezionare l'utente o il gruppo che si vuole assegnare all'applicazione. Ad esempio, contosouser1@contoso.com o contosoteam1@contoso.com.

  7. Selezionare Seleziona.

  8. In Selezionare un ruolo, selezionare il ruolo che si vuole assegnare a questo utente o gruppo. Se non sono ancora stati definiti ruoli, il ruolo predefinito è Accesso predefinito.

  9. Nel riquadro Aggiungi assegnazione, selezionare Assegna per assegnare l'utente o il gruppo all'applicazione.

Annullare l'assegnazione di utenti e gruppi da un'applicazione

  1. Seguire i passaggi descritti nella sezione Assegnare utenti e gruppi a un'applicazione per passare al riquadro Utenti e gruppi.
  2. Cercare e selezionare l'utente o il gruppo per cui si vuole annullare l'assegnazione dall'applicazione.
  3. Selezionare Rimuovi per annullare l'assegnazione dell'utente o del gruppo dall'applicazione.

Assegnare utenti e gruppi a un'applicazione usando Azure AD PowerShell

  1. Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.

  2. Eseguire Connect-AzureAD e accedere almeno come Amministratore applicazione cloud.

  3. Usare lo script seguente per assegnare un utente a un'applicazione:

    # Assign the values to the variables
    $username = "<Your user's UPN>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    
    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Esempio

Questo esempio assegna l'utente Britta Simon all'applicazione Microsoft Workplace Analytics usando PowerShell.

  1. In PowerShell assegnare i valori corrispondenti alle variabili $usernamee $app_name $app_role_name.

    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. In questo esempio il nome esatto del ruolo applicazione da assegnare a Britta Simon non è noto. Eseguire i comandi seguenti per ottenere l'utente ($user) e l'entità servizio ($sp) usando l'UPN utente e i nomi visualizzati dell'entità servizio.

    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Eseguire il comando seguente per trovare i ruoli dell'app esposti dall'entità servizio

    $appRoles = $sp.AppRoles
    # Display the app roles
    $appRoles | ForEach-Object {
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
    

    Nota

    L'ID AppRole predefinito è 00000000-0000-0000-0000-000000000000. Questo ruolo viene assegnato quando non viene definito alcun ruolo AppRole specifico per un'entità servizio.

  4. Assegnare il nome AppRole alla $app_role_name variabile. In questo esempio si vuole assegnare a Britta Simon il ruolo di analista (accesso limitato).

    $app_role_name = "Analyst (Limited access)"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
  5. Eseguire il comando seguente per assegnare l'utente al ruolo dell'app.

    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Per assegnare un gruppo a un'app aziendale, sostituire Get-AzureADUser con Get-AzureADGroup e sostituire New-AzureADUserAppRoleAssignment con New-AzureADGroupAppRoleAssignment.

Per altre informazioni su come assegnare un gruppo a un ruolo applicazione, vedere la documentazione relativa a New-AzureADGroupAppRoleAssignment.

Annullare l'assegnazione di utenti e gruppi da un'applicazione usando Azure AD PowerShell

  1. Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.

  2. Eseguire Connect-AzureAD e accedere almeno come Amministratore applicazione cloud.

  3. Usare lo script seguente per rimuovere un utente e un ruolo da un'applicazione:

    # Store the proper parameters
    $user = get-azureaduser -ObjectId <objectId>
    $spo = Get-AzureADServicePrincipal -ObjectId <objectId>
    
    #Get the ID of role assignment 
    $assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
    #if you run the following, it will show you what is assigned what
    $assignments | Select *
    
    #To remove the App role assignment run the following command.
    Remove-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments[assignment number].ObjectId
    

Rimuovere tutti gli utenti assegnati all'applicazione usando Azure AD PowerShell

  1. Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.

Usare lo script seguente per rimuovere tutti gli utenti e i gruppi assegnati all'applicazione.

#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectId of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-AzureADUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-AzureADGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    }
}

Assegnare utenti e gruppi a un'applicazione usando Microsoft Graph PowerShell

  1. Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.

  2. Eseguire Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e accedere almeno come Amministratore applicazione cloud.

  3. Usare lo script seguente per assegnare un utente a un'applicazione:

    #Assign the values to the variables
    $userId = "<Your user's ID>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
    
    #Get the user, the service principal and appRole.
    $params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }
    #Assign the user to the AppRole
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
    

Esempio

Questo esempio assegna l'utente Britta Simon all'applicazione Microsoft Workplace Analytics usando Microsoft Graph PowerShell.

  1. In PowerShell assegnare i valori corrispondenti alle variabili $userId, $app_namee $app_role_name.

    # Assign the values to the variables  
    $userId = "<Britta Simon's user ID>"  
    $app_name = "Workplace Analytics"  
    
  2. In questo esempio non si conosce il nome esatto del ruolo applicazione che si vuole assegnare a Britta Simon. Eseguire il comando seguente per ottenere l'entità servizio ($sp) usando il nome visualizzato dell'entità servizio.

    # Get the service principal for the app  
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"  
    
  3. Eseguire il comando seguente per trovare i ruoli dell'app esposti dall'entità servizio.

    # Get the app roles exposed by the service principal  
    $appRoles = $sp.AppRoles  
    # Display the app roles  
    $appRoles | ForEach-Object {  
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"  
    }  
    

    Nota

    L'ID AppRole predefinito è 00000000-0000-0000-0000-000000000000. Questo ruolo viene assegnato quando non viene definito alcun ruolo AppRole specifico per un'entità servizio.

  4. Assegnare il nome del ruolo alla variabile $app_role_name. In questo esempio si vuole assegnare a Britta Simon il ruolo di analista (accesso limitato).

    # Assign the values to the variables  
    $app_role_name = "Analyst (Limited access)"  
    $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id  
    
  5. Preparare i parametri ed eseguire il comando seguente per assegnare l'utente al ruolo dell'app.

    # Prepare parameters for the role assignment  
    $params = @{  
        "PrincipalId" = $userId  
        "ResourceId" = $sp.Id  
        "AppRoleId" = $appRoleId  
    }  
    
    # Assign the user to the app role  
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |   
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,   
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId  
    

Per assegnare un gruppo a un'app aziendale, sostituire Get-MgUser con Get-MgGroup e sostituire New-MgUserAppRoleAssignment con New-MgGroupAppRoleAssignment.

Per altre informazioni su come assegnare un gruppo a un ruolo applicazione, vedere la documentazione relativa a New-MgGroupAppRoleAssignment.

Annullare l'assegnazione di utenti e gruppi da un'applicazione usando Microsoft Graph PowerShell

  1. Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.

  2. Eseguire Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e accedere almeno come Amministratore applicazione cloud.

  3. Ottenere l'utente e l'entità servizio

    $user = Get-MgUser -UserId <userid>
    $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
    
  4. Ottenere l'ID dell'assegnazione di ruolo

    $assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
  5. Eseguire il comando seguente per visualizzare l'elenco degli utenti assegnati all'applicazione

    $assignments | Select *
    
  6. Eseguire il comando seguente per rimuovere l'assegnazione AppRole.

    Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId  '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
    

Rimuovere tutti gli utenti e i gruppi assegnati all'applicazione usando Microsoft Graph PowerShell

Eseguire il comando seguente per rimuovere tutti gli utenti e i gruppi assegnati all'applicazione.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id  }
}

Assegnare utenti e gruppi a un'applicazione usando l'API Microsoft Graph

  1. Per assegnare utenti e gruppi a un'applicazione, accedere a Graph Explorer almeno come Amministratore applicazione cloud.

    È necessario fornire il consenso alle autorizzazioni seguenti:

    Application.ReadWrite.All, Directory.ReadWrite.Alle AppRoleAssignment.ReadWrite.All.

    Per concedere un'assegnazione di ruolo dell'app, sono necessari tre identificatori:

    • principalId: ID dell'utente o del gruppo a cui si sta assegnando il ruolo dell'app.
    • resourceId: ID della risorsa servicePrincipal che definisce il ruolo dell'app.
    • appRoleId: ID dell'appRole (definito nell'entità servizio risorse) da assegnare a un utente o a un gruppo.
  2. Ottenere l'applicazione aziendale. Filtrare in base DisplayNamea .

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    

    Registrare i valori seguenti dal corpo della risposta:

    • L'ID oggetto dell'applicazione aziendale
    • ID del ruolo app assegnato all'utente. Se l'applicazione non espone la selezione dei ruoli, verrà assegnato il ruolo di accesso predefinito.

    Nota

    L'ID AppRole predefinito è 00000000-0000-0000-0000-000000000000. Questo ruolo viene assegnato quando non viene definito alcun ruolo AppRole specifico per un'entità servizio.

  3. Ottenere l'utente filtrando in base al nome dell'entità utente. Registrare l'ID oggetto dell'utente.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Assegnare l'utente all'applicazione.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo
    
    {
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
    "appRoleId": "00000000-0000-0000-0000-000000000000"
    }
    

    Nell'esempio, sia l'oggetto resource-servicePrincipal-id che resourceId rappresentano l'applicazione aziendale.

Annullare l'assegnazione di utenti e gruppi da un'applicazione usando l'API Microsoft Graph

Per annullare l'assegnazione di tutti gli utenti e i gruppi dall'applicazione, eseguire la query seguente.

  1. Ottenere l'applicazione aziendale. Filtrare in base displayNamea .

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Ottenere l'elenco di appRoleAssignments per l'applicazione.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Rimuovere l'oggetto appRoleAssignments specificando l'ID appRoleAssignment .

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Microsoft Graph Explorer non supporta direttamente l'eliminazione batch delle assegnazioni di ruolo dell'app. È necessario eliminare ogni assegnazione singolarmente. Tuttavia, è possibile automatizzare questo processo usando Microsoft Graph PowerShell per scorrere e rimuovere ogni assegnazione

Passaggi successivi