Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce indicazioni sulla risoluzione dei problemi di consenso in Microsoft Entra ID. Si applica alle autenticazioni basate su OpenID Connect e OAuth2.
Note
Le applicazioni basate su SAML possono presentare errori simili, ma richiedono soluzioni diverse, in genere a causa di mancate corrispondenze di configurazione all'interno della richiesta SAML nel provider di servizi SAML di terze parti o nell'ID Microsoft Entra.
Sintomi
Quando un'applicazione tenta di accedere o ottenere un token di accesso per una risorsa a cui non è stato concesso il consenso da un utente o un amministratore, viene visualizzato un messaggio di errore simile a uno degli esempi seguenti:
-
È necessaria l'approvazione dell'amministratore
-
AADSTS65001: l'utente o l'amministratore non ha acconsentito all'uso dell'applicazione con ID '<App-ID>' denominato '<Name-of-App>'. Inviare una richiesta di autorizzazione interattiva per questo utente e questa risorsa.
-
AADSTS650056: applicazione non configurata correttamente. Ciò potrebbe essere dovuto a uno dei seguenti: il client non ha elencato alcuna autorizzazione per "AAD Graph" nelle autorizzazioni richieste nella registrazione dell'applicazione del client. Oppure l'amministratore non ha consentito il tenant. Controllare, in alternativa, l'identificatore dell'applicazione nella richiesta per assicurarsi che corrisponda all'identificatore dell'applicazione client configurato. Contattare l'amministratore per correggere la configurazione o il consenso per conto del tenant.
-
AADSTS90094: un amministratore di <TenantDisplayName> ha impostato un criterio che impedisce di concedere <a Name-of-App> le autorizzazioni richieste. Contattare un amministratore di <TenantDisplayName>, che può concedere le autorizzazioni a questa app per conto dell'utente.
-
AADSTS90008: l'utente o l'amministratore non ha acconsentito all'uso dell'applicazione con ID app<>. Questo problema si è verificato perché l'applicazione non è configurata correttamente: deve richiedere l'accesso a Windows Azure Active Directory specificando almeno l'autorizzazione "Accesso e lettura del profilo utente"
-
AADSTS900941: è necessario il consenso dell'amministratore. L'app è considerata rischiosa. (AdminConsentRequiredDueToRiskyApp) Questa app può essere rischiosa. Se si considera attendibile questa app, chiedere all'amministratore di concedere l'accesso.
-
AADSTS900981: è stata ricevuta una richiesta di consenso amministratore per un'app rischiosa. (AdminConsentRequestRiskyAppWarning) Questa app può essere rischiosa. Continuare solo se si considera attendibile questa app.
Esistono molti motivi per cui potrebbe essere visualizzato un messaggio che indica che è necessaria l'approvazione dell'amministratore o il consenso dell'amministratore. Si considerino gli scenari generali seguenti:
- Autorizzazione User.Read mancante.
- Il consenso dell'utente è disabilitato a livello di tenant.
- L'assegnazione utente è abilitata per l'applicazione.
- Un'entità servizio non esiste nel tenant per l'applicazione client.
- Un'entità servizio non esiste nel tenant per la risorsa.
- URL di consenso che specifica
prompt=admin_consent
oprompt=consent
viene richiesto. - Gli ambiti a cui non è stato concesso il consenso vengono richiesti in una richiesta di accesso.
- L'ambito o l'autorizzazione richiede il consenso amministratore.
- Il consenso dell'utente è bloccato per le applicazioni rischiose.
Le sezioni seguenti forniscono una guida alla risoluzione dei problemi per trovare le cause radice dei problemi di consenso. Per risolvere direttamente i problemi, passare alla sezione Esegui consenso amministratore.
Prima della risoluzione dei problemi
Assicurarsi che l'applicazione disponga dell'autorizzazione per l'accesso dell'utente, ad esempio l'autorizzazione User.Read . Assicurarsi inoltre che questa autorizzazione sia stata consensata.
Ad esempio, se si è proprietari della registrazione dell'applicazione o di qualsiasi applicazione che richiede l'accesso dell'utente, è necessario disporre almeno dell'autorizzazione delegata Microsoft Graph User.Read o Openid aggiunta alle autorizzazioni API di registrazione dell'applicazione.
Procedura di risoluzione dei problemi
Passaggio 1: Ottenere la richiesta di accesso inviata a Microsoft Entra ID
Per determinare il motivo per cui viene visualizzata la richiesta di consenso, ottenere la richiesta di accesso ed esaminare i parametri inviati a Microsoft Entra ID. Quando viene visualizzata la richiesta di consenso, è possibile ottenere la richiesta di accesso usando uno dei metodi seguenti:
- Se si usa un browser, visualizzare la barra degli indirizzi.
- Se non si usa un browser o non è ancora possibile visualizzare la barra degli indirizzi nel browser, usare uno strumento di acquisizione HTTP come Fiddler per ottenere la richiesta.
Una richiesta di accesso dovrebbe essere simile alla seguente:
Endpoint OAuth2 V1:
https://<Aad-Instance>/<Tenant-ID>/oauth2/authorize?client_id=<App-ID>&response_type=code&redirect_uri=<Redirect-URI>&resource=<App-URI-ID>&scope=<Scope>&prompt=<Prompt>
Endpoint OAuth2 V2:
https://<Aad-Instance>/<Tenant-ID>/oauth2/v2.0/authorize?client_id=<App-ID>&response_type=code&redirect_uri=<Redirect-URI>& scope=<Scope>&prompt=<Prompt>
La tabella seguente fornisce un esempio dei parametri usati in una richiesta di accesso, a cui viene fatto riferimento nei passaggi seguenti per la risoluzione dei problemi:
Proprietà | Parte della richiesta di accesso | Valore |
---|---|---|
Aad-Instance | <Aad-Instance> |
login.microsoftonline.com |
ID tenant |
<Tenant-ID> parte della richiesta di accesso |
comune |
ID app |
<App-ID> parte della richiesta di accesso |
1f92960d-1442-4cd2-8c76-d13c5dcb30bf |
Ambito |
<Scope> parte della richiesta di accesso |
Openid+User.Read+Directory.Read.All |
APP-URI-ID | Endpoint V1: <App-URI-ID> parte dell'endpoint della richiestadi accesso V2: per le risorse diverse da Microsoft Graph, questa sarà la parte prima del nome dell'ambito. Ad esempio, per https://analysis.windows.net/powerbi/api/App.Read.All è App.Read.All il nome dell'ambito, quindi App-URI-ID è https://analysis.windows.net/powerbi/api . |
https://graph.microsoft.com |
Richiesta |
<Prompt> parte della richiesta di accesso |
Passaggio 2: Verificare se si consente agli utenti di fornire il consenso
Per verificare se il consenso dell'utente è consentito nell'organizzazione, seguire questa procedura:
Accedi al portale di Azure.
Passare a Microsoft Entra ID e selezionare Applicazioni aziendali>Consent e autorizzazioni.
Esaminare l'impostazione Consenso utente per le applicazioni :
Se l'opzione Consenti il consenso utente per le app è selezionata, tutti gli utenti possono fornire il consenso alle autorizzazioni che non richiedono il consenso amministratore. In questo caso, andare al passaggio successivo.
Se l'opzione Non consentire il consenso dell'utente è selezionata, gli utenti riceveranno sempre il messaggio "Richiedere l'approvazione dell'amministratore". In questo caso, un amministratore deve eseguire il consenso amministratore.
Note
Se un amministratore ritiene che abbia già acconsentito a tali autorizzazioni, probabilmente non tutte le autorizzazioni necessarie elencate nella richiesta di accesso sono state concesse o l'applicazione errata è stata usata in base a
<App-ID>
.
Passaggio 3: Verificare se l'applicazione esiste
Per verificare se l'applicazione esiste nel tenant, seguire questa procedura:
- Accedi al portale di Azure.
- Passare al tenant corretto in base a
<Tenant-ID>
. - Passare ad Applicazioni aziendali.
- Impostare Tipo di applicazione su Tutte le applicazioni e cercare .
<App-ID>
- Se l'applicazione non viene trovata, questo è il motivo per cui si verificano problemi di consenso. In questo caso, eseguire il consenso amministratore. Se l'applicazione viene trovata, andare al passaggio successivo.
Passaggio 4: Verificare se è necessaria l'assegnazione dell'utente
Nel riquadro Applicazioni aziendali cercare e selezionare l'applicazione. Nella sezione Gestisci selezionare Proprietà per aprire il riquadro Proprietà e quindi esaminare l'impostazione Assegnazione richiesta.
Se è necessaria l'assegnazione dell'utente, un amministratore deve fornire il consenso a questa applicazione. A tale scopo, passare alla sezione Esegui consenso amministratore.
Note
Il consenso a un'applicazione per tutti gli utenti di un'organizzazione non consente a tutti gli utenti di accedere all'applicazione. È necessario seguire le regole di assegnazione utente. Solo gli utenti assegnati all'applicazione possono accedervi. Se non si vuole eseguire il consenso amministratore, l'unica soluzione alternativa consiste nel disattivare l'assegnazione richiesta, chiedere agli utenti il consenso quando accedono all'applicazione e quindi riattivare l'assegnazione richiesta .
Se l'assegnazione dell'utente non è necessaria, andare al passaggio successivo.
Passaggio 5: Confrontare le autorizzazioni richieste e concesse per l'applicazione
Per verificare se gli ambiti (detti anche autorizzazioni) nella richiesta di accesso sono elencati nella sezione Autorizzazioni dell'applicazione, seguire questa procedura:
Se l'applicazione viene trovata nel passaggio 3: Verificare se l'applicazione esiste, selezionarla.
Passare a Autorizzazioni.
Confrontare gli elementi elencati nel riquadro Autorizzazioni e gli elementi elencati come
<Scope>
nella richiesta di accesso. Le autorizzazioni elencate nel riquadro Autorizzazioni sono quelle a cui è stato concesso il consenso.Note
Prestare attenzione al tipo di autorizzazione. Le autorizzazioni delegate sono per quando gli utenti accedono e le autorizzazioni dell'applicazione sono per quando l'entità servizio viene usata per l'autenticazione tramite il flusso di credenziali client.
Gli ambiti OpenID Connect non sono in genere elencati nelle applicazioni aziendali. Non preoccuparti se gli ambiti seguenti non sono elencati:
-
openid
: consentire agli utenti di accedere -
email
: visualizza l'indirizzo di posta elettronica degli utenti -
profile
: visualizzare il profilo di base degli utenti -
offline_access
: mantenere l'accesso ai dati a cui è stato concesso l'accesso
-
Se
<Scope>
nella richiesta di accesso è vuoto o contiene meno di quanto elencato nel riquadro Autorizzazioni , andare al passaggio successivo. Se altri ambiti in<Scope>
non sono presenti nel riquadro Autorizzazioni , passare alla sezione Esegui consenso amministratore. Le autorizzazioni mancanti devono essere concesse.
Passaggio 6: Verificare se la risorsa esiste nel tenant
Per verificare se esiste una risorsa, provare una richiesta simile https://<Aad-Instance>/<Tenant-ID>/oauth2/authorize?response_type=code&client_id=<App-ID>&resource=<App-URI-ID>
a .
È possibile che si verifichi uno dei comportamenti o degli errori seguenti:
L'accesso è consentito (si tratta del comportamento previsto). In questo caso, andare al passaggio successivo. Nella maggior parte dei casi, se viene visualizzato il
code
parametro nella barra degli indirizzi, significa che il processo di autenticazione ha avuto esito positivo.Errore AADSTS650052: l'app deve accedere a un servizio a cui l'organizzazione non ha sottoscritto o abilitato. Contattare l'amministratore IT per verificare la configurazione delle sottoscrizioni del servizio.
Questo errore indica che la risorsa non esiste nell'organizzazione. Per risolvere questo problema, usare questo URL di consenso:
https://login.microsoftonline.com/<Tenant-ID>/oauth2/authorize?response_type=code&client_id=<App-URI-ID>&prompt=admin_consent
Errore AADSTS650057: risorsa non valida. Il client ha richiesto l'accesso a una risorsa che non è elencata nelle autorizzazioni richieste nella registrazione dell'applicazione del client. ID app client: <App-ID>(<App-Display-Name>). Valore della risorsa dalla richiesta: '<App-URI-ID>'. ID app risorsa:<Resource-App-ID>. Elenco delle risorse valide dalla registrazione dell'app: 00000002-0000-0000-c000-00000000000000
Per consentire a un'applicazione client di accedere e ottenere un token di accesso per una risorsa, alla risorsa devono essere assegnate le autorizzazioni API necessarie all'applicazione client, ad esempio l'accesso ad Azure Key Vault.
Note
Solo il proprietario dell'applicazione può eseguire questa operazione.
Errore AADSTS500011: l'entità risorsa denominata "<App-URI-ID" non è stata trovata nel tenant denominato "<Tenant-ID>>". Questa situazione può verificarsi se l'applicazione non è stata installata dall'amministratore del tenant o non è consentita da uno degli utenti nel tenant. La richiesta di autenticazione potrebbe essere stata inviata al tenant sbagliato.
Questo errore indica che l'oggetto specificato
<App-URI-ID>
non è valido o disponibile solo come applicazione a tenant singolo. In caso contrario, significa che questa risorsa non può essere accessibile da organizzazioni esterne o non esiste.Per risolvere questo problema, è necessario collaborare con il proprietario dell'applicazione per verificare che
<App-URI-ID>
e<Tenant-ID>
siano corretti. Se è<App-URI-ID>
di proprietà di un oggetto diverso<Tenant-ID>
, la registrazione dell'app per<App-URI-ID>
deve essere configurata come applicazione multi-tenant. In caso contrario,<Tenant-ID>
deve essere lo stesso tenant in cui si trova la registrazione dell'app per<App-URI-ID>
.
Passaggio 7: Verificare se il parametro del prompt viene passato
In alcuni casi, l'accesso all'applicazione richiede il passaggio del prompt
parametro di consent
o admin_consent
. Dopo che l'applicazione ottiene il consenso, assicurarsi che il prompt
parametro non sia specificato. In caso contrario, gli utenti potrebbero sempre ricevere un errore di consenso.
La richiesta di accesso potrebbe essere simile alla seguente:
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile+User.Read+Directory.Read.All&prompt=consent
Per risolvere i problemi di consenso, rimuovere quindi il prompt
parametro come segue:
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile+User.Read+Directory.Read.All
Eseguire il consenso amministratore
Per risolvere i problemi di consenso, eseguire il consenso amministratore seguendo questa procedura:
Chiedere a un amministratore (un utente con il ruolo Amministratore globale, Amministratore aziendale o Amministratore applicazione) di accedere all'applicazione.
Se viene visualizzata la schermata di consenso, esaminare le autorizzazioni richieste. Per approvare le autorizzazioni richieste, selezionare la casella di controllo Consent on behalf of your organization (Consenso per conto dell'organizzazione ).
Note
Se un amministratore non è sicuro delle autorizzazioni consentite, l'amministratore deve collaborare con il fornitore dell'applicazione per comprendere le autorizzazioni e il relativo uso. Il supporto tecnico Microsoft potrebbe non sapere cosa fanno queste autorizzazioni o perché sono necessarie.
Se l'amministratore non ottiene la schermata di consenso, afferra l'indirizzo di accesso, aggiungi
&prompt=consent
alla fine e quindi usa questa richiesta per eseguire il consenso amministratore.Di seguito è riportato un esempio:
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile&tresource=https://graph.microsoft.com&prompt=consent
Se le autorizzazioni richieste non sono elencate nella registrazione dell'applicazione, usare l'endpoint di Microsoft Identity Platform (V2) per forzare il consenso dell'amministratore. L'endpoint V2 richiede che ogni ambito di autorizzazione venga passato nel
scope
parametro come indicato di seguito:https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile+User.Read+Directory.Read.All&prompt=consent
Note
- Gli ambiti di autorizzazione usati dall'applicazione devono essere forniti dal proprietario dell'applicazione.
- Il consenso per le autorizzazioni dell'applicazione richiederà sempre il consenso amministratore da un amministratore globale o aziendale. Le autorizzazioni dell'applicazione devono essere aggiunte all'interno della registrazione dell'applicazione nel tenant proprietario dell'applicazione.
- Gli amministratori dell'applicazione possono anche fornire il consenso per delegare le autorizzazioni che richiedono il consenso dell'amministratore.
- Quando si usa l'URL di consenso amministratore, le autorizzazioni devono essere già configurate con la registrazione dell'applicazione. In caso contrario, il proprietario dell'applicazione deve avere l'applicazione configurata correttamente con Microsoft Entra ID. Un URL di consenso amministratore è simile a
https://login.microsoftonline.com/<Tenant-ID>/adminconsent?client_id=<App-ID>
.
Ulteriori informazioni
Consenso
Nella maggior parte dei casi, alcune autorizzazioni che richiedono il consenso non sono state concesse. Pertanto, viene richiesto il consenso. Per comprendere il consenso, vedere le pagine seguenti:
- Panoramica delle autorizzazioni e del consenso in Microsoft Identity Platform
- Protocolli di consenso amministratore di Microsoft Identity Platform
- Esperienze di consenso dell'app Microsoft Entra
Registrazioni delle applicazioni e applicazioni aziendali
In Microsoft Entra è disponibile un modello di applicazione costituito da oggetti applicazione (detti anche "registrazioni dell'applicazione") e oggetti entità servizio (detti anche "applicazioni aziendali"). Il modo in cui la relazione interagisce in base alle autorizzazioni necessarie viene impostata sull'oggetto applicazione. Per altre informazioni, vedere Oggetti applicazione ed entità servizio in Microsoft Entra ID.
L'aggiunta di autorizzazioni a una registrazione dell'applicazione non fornisce il consenso alle autorizzazioni. Per fornire il consenso alle autorizzazioni, è necessario assegnare le autorizzazioni all'entità servizio.
Autorizzazioni delegate e autorizzazioni dell'applicazione
Esistono due tipi di autorizzazioni in Microsoft Entra ID: autorizzazioni delegate e autorizzazioni dell'applicazione. Assicurarsi di applicare la configurazione corretta delle autorizzazioni nella registrazione dell'applicazione e fornire il consenso a tale autorizzazione.
Per altre informazioni sulle autorizzazioni in Microsoft Entra ID, vedere le pagine seguenti:
- Panoramica delle autorizzazioni e del consenso in Microsoft Identity Platform
- Informazioni sulla differenza tra le autorizzazioni dell'applicazione e le autorizzazioni delegate dai flussi di autenticazione OAuth2
Raccogliere i log attività di Microsoft Entra
È possibile usare i log attività di Microsoft Entra per ottenere altri dettagli. A tale scopo, effettuare i passaggi seguenti:
- Accedere al portale di Azure usando un account autorizzato a leggere i log di controllo, ad esempio un amministratore globale o un ruolo con autorizzazioni di lettura per la sicurezza.
- Passare a Microsoft Entra ID.
- Selezionare Log di controllo nella sezione Monitoraggio .
- Impostare il filtro come segue:
- Categoria: ApplicationManagement
- Stato: errore
- Attività: Consenso all'applicazione
- Trovare e selezionare l'app che non riesce a fornire il consenso.
- Per altri dettagli, vedere STATUS REASON (MOTIVO STATO).
In alcuni scenari, è necessario eseguire il consenso dell'amministratore anche se è possibile consentire agli utenti di fornire il consenso e l'autorizzazione normalmente non richiede il consenso di un amministratore. Ad esempio, quando il motivo dello stato mostra "Microsoft.Online.Security.UserConsentBlockedForRiskyAppsException". Per altre informazioni, vedere Errore imprevisto durante l'esecuzione del consenso a un'applicazione e Richiesta di consenso imprevista durante l'accesso a un'applicazione.
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.