Gestire l'assegnazione 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 di App personali dell'utente per semplificare l'accesso. Se l'applicazione espone i ruoli dell'app, è anche possibile assegnare un ruolo app specifico all'utente.

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

L'assegnazione basata su gruppo richiede Microsoft Entra ID P1 o P2 Edition. L'assegnazione basata su gruppo è supportata per i gruppi di sicurezza e i gruppi di Microsoft 365 la cui SecurityEnabled impostazione è impostata solo su True . Le appartenenze ai gruppi annidate non sono attualmente supportate. 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 utente. Per altre informazioni sulla richiesta di assegnazione dell'utente per un'app, vedere Gestire l'accesso a un'applicazione.

Prerequisiti

Per assegnare utenti a un'applicazione aziendale, è necessario:

  • Un account Microsoft Entra con una sottoscrizione attiva. Se non è già disponibile, è possibile creare gratuitamente un account.
  • Uno dei ruoli seguenti: amministratore globale, amministratore di applicazioni cloud o 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

I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.

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

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

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un'applicazione cloud Amministrazione istrator.

  2. Passare a Applicazioni di identità>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 utente/gruppo.

    Assign user account to an application in your Microsoft Entra tenant.

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

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

  7. Seleziona Seleziona.

  8. In Seleziona un ruolo selezionare il ruolo da assegnare all'utente o al 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 la procedura descritta 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 che si desidera 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 di Windows PowerShell con privilegi elevati.

  2. Eseguire Connect-AzureAD e accedere come almeno un'applicazione cloud Amministrazione istrator.

  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). Shows the roles available to a user using Workplace Analytics Role

  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'applicazione tramite Azure AD PowerShell

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

  2. Eseguire Connect-AzureAD e accedere come almeno un'applicazione cloud Amministrazione istrator.

  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

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 di Windows PowerShell con privilegi elevati.
  2. Eseguire Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e accedere come almeno un'applicazione cloud Amministrazione istrator.
  3. Usare lo script seguente per assegnare un utente e un ruolo 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 to assign, and the service principal for the app to assign to

$params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }

# Assign the user to the app role

New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
    Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
    PrincipalId, PrincipalType, ResourceDisplayName, ResourceId

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

  1. Aprire un prompt di Windows PowerShell con privilegi elevati.
  2. Eseguire Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e accedere come almeno un'applicazione cloud Amministrazione istrator. Usare lo script seguente per rimuovere un utente e un ruolo da un'applicazione.

# Get the user and the service principal

$user = Get-MgUser -UserId <userid>
$spo = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>

# Get the Id of the role assignment

$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $spo.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}

# if you run the following, it will show you the list of users assigned to the application

$assignments | Select *

# To remove the App role assignment run the following command.

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

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

Usare lo script 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 Explorercome almeno un'applicazione cloud Amministrazione istrator.

    È necessario fornire il consenso alle autorizzazioni seguenti:

    Application.ReadWrite.All, Directory.ReadWrite.All, 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 del servizio risorsePrincipal 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. Filtra in base a DisplayName.

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

    Registrare i valori seguenti dal corpo della risposta:

    • ID oggetto dell'applicazione aziendale
    • appRoleId assegnato all'utente. Se l'applicazione non espone alcun ruolo, all'utente viene assegnato il ruolo di accesso predefinito.
  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": "33ad69f9-da99-4bed-acd0-3f24235cb296",
    "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
    "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"
    }
    

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

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

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

  1. Ottenere l'applicazione aziendale. Filtrare in base a displayName.

    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 appRoleAssignments specificando l'ID appRoleAssignment.

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

Passaggi successivi