Risoluzione dei problemi relativi ai limiti delle autorizzazioni configurate
Articolo
La RequiredResourceAccess raccolta (RRA) in un oggetto applicazione contiene tutte le autorizzazioni API configurate richieste da un'app per la richiesta di consenso predefinita. Questa raccolta presenta diversi limiti a seconda dei tipi di identità supportati dall'app. Per altre informazioni sui limiti per i tipi di account supportati, vedere Differenze di convalida in base ai tipi di account supportati.
I limiti per le autorizzazioni massime sono stati aggiornati a maggio 2022, quindi alcune app potrebbero avere più autorizzazioni nella RRA rispetto a quelle consentite. Inoltre, le app che modificano i tipi di account supportati dopo la configurazione delle autorizzazioni possono superare i limiti della nuova impostazione. Quando le app superano il limite di autorizzazioni configurate, non è possibile aggiungere nuove autorizzazioni fino a quando il numero di autorizzazioni nella RequiredResourceAccess raccolta non viene riportato sotto i limiti.
Questo documento offre informazioni aggiuntive e procedure di risoluzione dei problemi per risolvere il problema.
Identificazione quando un'app ha superato i RequiredResourceAccess limiti
In generale, tutte le applicazioni con più di 400 autorizzazioni hanno superato i limiti di configurazione. Le app possono anche essere soggette a limiti inferiori se supportano l'accesso per gli account Microsoft personali. Un'app che ha superato i limiti di autorizzazione riceverà l'errore seguente quando si tenta di aggiungere altre autorizzazioni nel portale di Azure:
Failed to save permissions for <AppName>. This configuration exceeds the global application object limit. Remove some items and retry your request.
Procedura per la risoluzione
Se l'applicazione non è più necessaria, la prima opzione da considerare consiste nell'eliminare completamente la registrazione dell'app. È possibile ripristinare le applicazioni eliminate di recente, nel caso in cui si rilevi subito dopo che era ancora necessario.
Se l'applicazione è ancora necessaria o non si è certi, la procedura seguente consente di risolvere questo problema:
Rimuovere le autorizzazioni duplicate. In alcuni casi, la stessa autorizzazione viene elencata più volte. Esaminare le autorizzazioni necessarie e rimuovere le autorizzazioni elencate due o più volte. Vedere lo script di PowerShell correlato nella sezione risorse aggiuntive di questo articolo.
Rimuovere le autorizzazioni inutilizzate. Esaminare le autorizzazioni richieste dall'applicazione e confrontarle con le operazioni dell'applicazione o del servizio. Rimuovere le autorizzazioni configurate nella registrazione dell'app, ma che l'applicazione o il servizio non richiede. Per altre informazioni su come esaminare le autorizzazioni, vedere Esaminare le autorizzazioni dell'applicazione
Rimuovere le autorizzazioni ridondanti. In molte API, tra cui Microsoft Graph, alcune autorizzazioni non sono necessarie quando sono incluse altre autorizzazioni con privilegi. Ad esempio, l'autorizzazione Microsoft Graph User.Read.All (lettura tutti gli utenti) non è necessaria quando un'applicazione ha anche User.ReadWrite.All (lettura, creazione e aggiornamento di tutti gli utenti). Per altre informazioni sulle autorizzazioni di Microsoft Graph, vedere Informazioni di riferimento sulle autorizzazioni di Microsoft Graph.
Domande frequenti
Perché Microsoft ha modificato il limite per le autorizzazioni totali?
Questo limite è importante per due motivi:
Per evitare che un'app venga configurata per richiedere più autorizzazioni di quelle che possono essere concesse durante il consenso.
Per mantenere le dimensioni totali della registrazione dell'app entro i limiti necessari per la stabilità e le prestazioni della piattaforma di archiviazione sottostante.
Cosa succederà se non faccio niente?
Se l'app supera il limite di autorizzazioni totali, non sarà più possibile aumentare il numero totale di autorizzazioni necessarie per l'applicazione.
Il limite modifica il numero di autorizzazioni che è possibile concedere all'applicazione?
No. Questo limite influisce solo sull'elenco delle autorizzazioni API richieste configurate nella registrazione dell'app. Questo comportamento è diverso dall'elenco di autorizzazioni concesse all'applicazione.
Anche se non è elencato nell'elenco delle autorizzazioni API necessarie, un'autorizzazione delegata può comunque essere richiesta dinamicamente da un'applicazione. È anche possibile concedere direttamente le autorizzazioni delegate e i ruoli dell'app (autorizzazioni dell'applicazione), usando l'API Microsoft Graph o Microsoft Graph PowerShell.
È possibile aumentare il limite per l'applicazione?
No, il limite non può essere elevato per singole applicazioni o organizzazioni.
Esistono altri limiti per l'elenco delle autorizzazioni API necessarie?
Sì. I limiti possono variare a seconda dei tipi di account supportati per l'app. Le app che supportano account Microsoft personali per l'accesso (ad esempio, Outlook.com, Hotmail.com, Xbox Live) hanno in genere limiti inferiori. Per altre informazioni, vedere Differenze di convalida in base ai tipi di account supportati.
Risorse aggiuntive
Usare lo script di PowerShell seguente per rimuovere eventuali autorizzazioni duplicate dalle registrazioni dell'app.
PowerShell
<#
.SYNOPSIS
Remove duplicate required API permissions from an app registration's required API permission list.
.DESCRIPTION
This script ensures all API permissions listed in a Microsoft identity platform's app registration are only listed once,
removing any duplicates it finds. This script requires the Microsoft.Graph.Applications PowerShell module.
.EXAMPLE
Get-MgApplication -Filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" | .\Deduplicate_RequiredResourceAccess.ps1"
.EXAMPLE
$apps = Get-MgApplication -Filter "startswith(displayName,'Test_app')"
$apps | .\Deduplicate_RequiredResourceAccess.ps1
#>#Requires -Modules Microsoft.Graph.Applications
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline = $true)]
$App
)
begin {
$context = Get-MgContextif (-not$context) {
throw ("You must connect to Microsoft Graph PowerShell first, with sufficient permissions " +
"to manage Application objects. For example: Connect-MgGraph -Scopes ""Application.ReadWrite.All""")
}
}
process {
# Build the unique list of required API permissions for each required API$originalCount = 0$tempRras = @{}
foreach ($rrain$App.RequiredResourceAccess) {
if (-not$tempRras.ContainsKey($rra.ResourceAppId)) {
$tempRras[$rra.ResourceAppId] = @{"Scope" = @{}; "Role" = @{}};
}
foreach ($rain$rra.ResourceAccess) {
if ($tempRras[$rra.ResourceAppId][$ra.Type].ContainsKey($ra.Id)) {
# Skip duplicate required API permission
} else {
$tempRras[$rra.ResourceAppId][$ra.Type][$ra.Id] = $true
}
$originalCount++
}
}
# Now that we have the unique set of required API permissions, iterate over all the keys to build the final requiredResourceAccess structure$deduplicatedCount = 0$finalRras = @($tempRras.Keys) | ForEach-Object {
$resourceAppId = $_
@{
"resourceAppId" = $resourceAppId"resourceAccess" = @(@("Scope", "Role") | ForEach-Object {
$type = $_$tempRras[$resourceAppId][$type].Keys | ForEach-Object {
$deduplicatedCount++;
@{"type" = $type; "id" = $_}
}
})
}
}
$countDifference = $originalCount - $deduplicatedCountif ($countDifference) {
Write-Host"Removing $($countDifference) duplicate entries in RequiredResourceAccess for '$($App.DisplayName)' (AppId: $($App.AppId))"Update-MgApplication -ApplicationId$App.Id -RequiredResourceAccess$finalRras
} else {
Write-Host"No updates necessary for '$($App.DisplayName)' (AppId: $($App.AppId))"
}
}
Illustrare le funzionalità di Microsoft Entra ID per modernizzare le soluzioni di identità, implementare soluzioni ibride e implementare la governance delle identità.
Scopri dove richiedere supporto e trovare le risposte alle tue domande durante la creazione di soluzioni di gestione delle identità e degli accessi (IAM) che si integrano con Microsoft Entra ID e altri componenti di Microsoft Identity Platform.
Informazioni sulle differenze di convalida di varie proprietà per diversi tipi di account supportati durante la registrazione dell'app con Microsoft Identity Platform.
Guida completa sulle API di Windows Account Manager (WAM) di Microsoft Entra ID, che descrive in dettaglio l'utilizzo, i parametri e l'integrazione nelle applicazioni Windows.