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.
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:
Accedere all'Interfaccia 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 Azure AD PowerShell
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Eseguire
Connect-AzureAD
e accedere almeno come Amministratore applicazione cloud.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.
In PowerShell assegnare i valori corrispondenti alle variabili
$username
e$app_name
$app_role_name
.$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 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'"
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.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-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
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Eseguire
Connect-AzureAD
e accedere almeno come Amministratore applicazione cloud.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
- 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
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Eseguire
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e accedere almeno come 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 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.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 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
Aprire un prompt dei comandi di Windows PowerShell con privilegi elevati.
Eseguire
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e accedere almeno come Amministratore applicazione cloud.Ottenere l'utente e l'entità 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
,Directory.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 risorse) da assegnare a un utente o a un gruppo.
-
Ottenere l'applicazione aziendale. Filtrare in base
DisplayName
a .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.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}
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. Filtrare in base
displayName
a .GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Ottenere l'elenco di
appRoleAssignments
per l'applicazione.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