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. 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. Le applicazioni che richiedono l'assegnazione di utenti all'applicazione devono disporre delle autorizzazioni concesse da un amministratore, anche se i criteri di consenso utente per la directory altrimenti consentono a un utente di fornire il consenso per conto di se stessi.
Nota
Se si verificano limitazioni durante la gestione dei gruppi tramite il portale, ad esempio con i gruppi di criteri di accesso alle applicazioni, è consigliabile usare metodi alternativi come powerShell o API Microsoft Graph.
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 di applicazioni cloud
- Amministratore dell'applicazione
- Amministratore utenti
- Proprietario dell'entità servizio.
- Microsoft Entra ID P1 o P2 per l'assegnazione basata sui gruppi. Per altri requisiti di licenza per le funzionalità descritte in questo articolo, vedere la pagina dei prezzi di Microsoft Entra.
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:
Accedi al centro di amministrazione di Microsoft Entra almeno come Amministratore Applicazione Cloud.
Passare a Identità>Applicazioni>Applicazioni aziendali>Tutte le applicazioni.
Immettere il nome dell'applicazione esistente nella casella di ricerca e quindi selezionare l'applicazione nei risultati della ricerca.
Selezionare Utenti e gruppi e quindi Aggiungi utenti/gruppo.
Nel riquadro Aggiungi assegnazione, selezionare Nessuno selezionato in Utenti e gruppi.
Cercare e selezionare l'utente o il gruppo che si vuole assegnare all'applicazione. Ad esempio,
contosouser1@contoso.com
ocontosoteam1@contoso.com
.Selezionare Seleziona.
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.
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
- Seguire i passaggi descritti nella sezione Assegnare utenti e gruppi a un'applicazione per passare al riquadro Utenti e gruppi.
- Cercare e selezionare l'utente o il gruppo per cui si vuole annullare l'assegnazione dall'applicazione.
- Selezionare Rimuovi per annullare l'assegnazione dell'utente o del gruppo dall'applicazione.
Assegnare utenti e gruppi a un'applicazione usando Microsoft Entra PowerShell
Accedere come almeno un amministratore di applicazioni cloud .
Usare lo script seguente per assegnare un utente a un'applicazione:
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" # 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-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name } # Assign the user to the app role New-EntraUserAppRoleAssignment -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.
In PowerShell assegnare i valori corrispondenti alle variabili
$username
,$app_name
e$app_role_name
.connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" $username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
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 il principale del servizio ($sp
) usando l'UPN utente e il nome visualizzato del principale del servizio.$user = Get-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
Eseguire il comando seguente per trovare i ruoli dell'app esposti dal principale del 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 si assegna quando non viene stabilito alcun AppRole specifico per un servizio principale.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 }
Eseguire il comando seguente per assegnare l'utente al ruolo dell'app.
New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Per assegnare un gruppo a un'app aziendale, sostituire Get-EntraUser
con Get-EntraGroup
e sostituire New-EntraUserAppRoleAssignment
con New-EntraGroupAppRoleAssignment
.
Per ulteriori informazioni su come assegnare un gruppo a un ruolo dell'applicazione, vedere la documentazione per New-EntraGroupAppRoleAssignment.
Annullare l'assegnazione di utenti e gruppi da un'applicazione tramite Microsoft Entra PowerShell
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Accedere come almeno un amministratore di applicazioni cloud .
Usare lo script seguente per rimuovere un utente e un ruolo da un'applicazione:
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" # Store the proper parameters $user = Get-Entrauser -ObjectId "<objectId>" $spo = Get-EntraServicePrincipal -ObjectId "<objectId>" #Get the ID of role assignment $assignments = Get-EntraServicePrincipalAppRoleAssignedTo -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-EntraServicePrincipalAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments.ObjectId
Rimuovere tutti gli utenti assegnati all'applicazione tramite Microsoft Entra PowerShell
- 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.
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All
# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
if ($_.PrincipalType -eq "User") {
Remove-EntraUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
} elseif ($_.PrincipalType -eq "Group") {
Remove-EntraGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
}
}
Assegnare utenti e gruppi a un'applicazione usando Microsoft Graph PowerShell
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Eseguire
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e accedere con almeno il ruolo di Amministratore applicazione cloud.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.
In PowerShell assegnare i valori corrispondenti alle variabili
$userId
,$app_name
e$app_role_name
.# Assign the values to the variables $userId = "<Britta Simon's user ID>" $app_name = "Workplace Analytics"
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'"
Eseguire il comando seguente per trovare i ruoli dell'app esposti dal principale del 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 applicativo specifico per un servizio principale.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
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 ulteriori informazioni su come assegnare un gruppo a un ruolo dell'applicazione, consultare la documentazione di New-MgGroupAppRoleAssignment.
Annullare l'assegnazione di utenti e gruppi da un'applicazione usando Microsoft Graph PowerShell
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Eseguire
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e accedere con almeno il ruolo di Amministratore applicazione cloud.Ottieni l'utente e il principale del servizio
$user = Get-MgUser -UserId <userid> $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
Ottenere l'ID dell'assegnazione di ruolo
$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
Eseguire il comando seguente per visualizzare l'elenco degli utenti assegnati all'applicazione
$assignments | Select *
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
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
eAppRoleAssignment.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 principale della risorsa) da assegnare a un utente o a un gruppo.
-
Ottenere l'applicazione aziendale. Filtra per
DisplayName
.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 alcun ruolo, all'utente 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 AppRole specifico per un principal del servizio.Ottenere l'utente filtrando in base al nome principale dell'utente. Registrare l'ID dell'oggetto dell'utente.
GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
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
cheresourceId
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.
Ottenere l'applicazione aziendale. Filtra in base a
displayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Ottieni l'elenco di
appRoleAssignments
per l'app.GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Rimuovere l'oggetto
appRoleAssignments
specificando l'IDappRoleAssignment
.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