Assegnare utenti e gruppi a un'applicazione

Questo articolo illustra come assegnare utenti e gruppi a un'applicazione aziendale in Azure Active Directory (Azure AD) usando PowerShell. Quando si assegna un utente a un'applicazione, l'applicazione viene visualizzata nel portale di App personali dell'utente per semplificare l'accesso. Se l'applicazione espone i ruoli dell'app, è anche possibile assegnare un ruolo di app specifico all'utente.

Quando si assegna un gruppo a un'applicazione, solo gli utenti del gruppo avranno accesso. L'assegnazione non si estende ai gruppi annidati.

L'assegnazione basata su gruppo richiede Azure Active Directory Premium, edizione P1 o P2. L'assegnazione basata su gruppo è supportata solo per i gruppi di sicurezza. Le appartenenze a gruppi annidati e i gruppi di Microsoft 365 non sono attualmente supportati. Per altri requisiti di licenza per le funzionalità descritte in questo articolo, vedere la pagina dei prezzi di Azure Active Directory.

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

Prerequisiti

Per assegnare utenti a un'app usando PowerShell, è necessario:

  • Un account Azure con una sottoscrizione attiva. Se non ne hai già uno, puoi creare un account gratuitamente.
  • Uno dei ruoli seguenti: amministratore globale, amministratore di applicazioni cloud o amministratore di applicazioni oppure proprietario dell'entità servizio.
  • Se il modulo AzureAD non è ancora stato installato (usare il comando Install-Module -Name AzureAD). Se viene richiesto di installare un modulo NuGet o il nuovo modulo powerShell di Azure Active Directory V2, digitare Y e premere INVIO.
  • Azure Active Directory Premium 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 Azure Active Directory.

Assegnare utenti e gruppi a un'app usando PowerShell

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

  2. Eseguire Connect-AzureAD e accedere con un account utente Amministratore globale.

  3. Usare lo script seguente per assegnare un utente e un ruolo 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
    

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

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

Esempio

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

  1. In PowerShell assegnare i valori corrispondenti alle variabili $username, $app_name e $app_role_name.

    # Assign the values to the variables
    $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 i nomi visualizzati di UPN utente ed entità servizio.

    # 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'"
    
  3. Eseguire il comando $sp.AppRoles per visualizzare i ruoli disponibili per l'applicazione Workplace Analytics. In questo esempio si vuole assegnare a Britta Simon il ruolo di analista (accesso limitato). Mostra i ruoli disponibili per un utente con il ruolo Workplace Analytics

  4. Assegnare il nome del ruolo alla variabile $app_role_name.

    # Assign the values to the variables
    $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 applicazione:

    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Annullare l'assegnazione di utenti e gruppi da un'app con PowerShell

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

  2. Eseguire Connect-AzureAD e accedere con un account utente Amministratore globale. 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 #].ObjectId
    

Rimuovere tutti gli utenti 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
    }
}

Passaggi successivi