Share via


Problemi di autenticazione in Azure HDInsight

Questo articolo descrive i passaggi per la risoluzione dei problemi e le possibili soluzioni per i problemi durante l'interazione con i cluster Azure HDInsight.

Nei cluster sicuri supportati da Azure Data Lake (Gen1 o Gen2), quando gli utenti di dominio accedono ai servizi cluster tramite il gateway HDI (ad esempio l'accesso al portale di Apache Ambari), il gateway HDI tenta di ottenere prima un token OAuth da Microsoft Entra e quindi ottenere un ticket Kerberos da Microsoft Entra Domain Services. L'autenticazione può non riuscire in una di queste fasi. Questo articolo è destinato al debug di alcuni di questi problemi.

Quando l'autenticazione non riesce, vengono richieste le credenziali. Se si annulla questa finestra di dialogo, viene stampato il messaggio di errore. Ecco alcuni dei messaggi di errore comuni:

invalid_grant o unauthorized_client, 50126

Problema

L'accesso non riesce per gli utenti federati con codice di errore 50126 (l'accesso riesce per gli utenti cloud). Il messaggio di errore è simile al seguente:

Reason: Bad Request, Detailed Response: {"error":"invalid_grant","error_description":"AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password\r\nTrace ID: 09cc9b95-4354-46b7-91f1-efd92665ae00\r\n Correlation ID: 4209bedf-f195-4486-b486-95a15b70fbe4\r\nTimestamp: 2019-01-28 17:49:58Z","error_codes":[70002,50126], "timestamp":"2019-01-28 17:49:58Z","trace_id":"09cc9b95-4354-46b7-91f1-efd92665ae00","correlation_id":"4209bedf-f195-4486-b486-95a15b70fbe4"}

Causa

Il codice di errore di Microsoft Entra 50126 indica che il AllowCloudPasswordValidation criterio non è impostato dal tenant.

Risoluzione

L'Amministrazione istrator globale del tenant di Microsoft Entra deve consentire a Microsoft Entra ID di usare gli hash delle password per gli utenti supportati da ADFS. Applicare come AllowCloudPasswordValidationPolicy illustrato nell'articolo Usare Enterprise Security Package in HDInsight.


invalid_grant o unauthorized_client, 50034

Problema

L'accesso non riesce e viene visualizzato il codice di errore 50034. Il messaggio di errore è simile al seguente:

{"error":"invalid_grant","error_description":"AADSTS50034: The user account Microsoft.AzureAD.Telemetry.Diagnostics.PII doesn't exist in the 0c349e3f-1ac3-4610-8599-9db831cbaf62 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: bbb819b2-4c6f-4745-854d-0b72006d6800\r\nCorrelation ID: b009c737-ee52-43b2-83fd-706061a72b41\r\nTimestamp: 2019-04-29 15:52:16Z", "error_codes":[50034],"timestamp":"2019-04-29 15:52:16Z","trace_id":"bbb819b2-4c6f-4745-854d-0b72006d6800", "correlation_id":"b009c737-ee52-43b2-83fd-706061a72b41"}

Causa

Il nome utente non è corretto (non esiste). L'utente non usa lo stesso nome utente usato in portale di Azure.

Risoluzione

Usare lo stesso nome utente che funziona nel portale.


invalid_grant o unauthorized_client, 50053

Problema

L'account utente è bloccato, codice di errore 50053. Il messaggio di errore è simile al seguente:

{"error":"unauthorized_client","error_description":"AADSTS50053: You've tried to sign in too many times with an incorrect user ID or password.\r\nTrace ID: 844ac5d8-8160-4dee-90ce-6d8c9443d400\r\nCorrelation ID: 23fe8867-0e8f-4e56-8764-0cdc7c61c325\r\nTimestamp: 2019-06-06 09:47:23Z","error_codes":[50053],"timestamp":"2019-06-06 09:47:23Z","trace_id":"844ac5d8-8160-4dee-90ce-6d8c9443d400","correlation_id":"23fe8867-0e8f-4e56-8764-0cdc7c61c325"}

Causa

Troppi tentativi di accesso con una password errata.

Risoluzione

Attendere 30 minuti o così via, arrestare tutte le applicazioni che potrebbero tentare di eseguire l'autenticazione.


invalid_grant o unauthorized_client, 50053 (#2)

Problema

Password scaduta, codice di errore 50053. Il messaggio di errore è simile al seguente:

{"error":"user_password_expired","error_description":"AADSTS50055: Password is expired.\r\nTrace ID: 241a7a47-e59f-42d8-9263-fbb7c1d51e00\r\nCorrelation ID: c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a\r\nTimestamp: 2019-06-06 17:29:37Z","error_codes":[50055],"timestamp":"2019-06-06 17:29:37Z","trace_id":"241a7a47-e59f-42d8-9263-fbb7c1d51e00","correlation_id":"c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a","suberror":"user_password_expired","password_change_url":"https://portal.microsoftonline.com/ChangePassword.aspx"}

Causa

La password è scaduta.

Risoluzione

Modificare la password nel portale di Azure (nel sistema locale) e attendere 30 minuti per il recupero della sincronizzazione.


interaction_required

Problema

Ricevere il messaggio di interaction_requirederrore .

Causa

L'autenticazione a più fattori o i criteri di accesso condizionale vengono applicati all'utente. Poiché l'autenticazione interattiva non è ancora supportata, l'utente o il cluster deve essere esente dall'accesso MFA/condizionale. Se si sceglie di esentare il cluster (criterio di esenzione basato su indirizzi IP), assicurarsi che Ad ServiceEndpoints sia abilitato per tale rete virtuale.

Risoluzione

Usare i criteri di accesso condizionale ed esentare i cluster HDInsight da MFA, come illustrato in Configurare un cluster HDInsight con Enterprise Security Package usando Microsoft Entra Domain Services.


Accesso negato

Problema

Accesso negato.

Causa

Per passare a questa fase, l'autenticazione OAuth non è un problema, ma l'autenticazione Kerberos è. Se il cluster è supportato da ADLS, l'accesso OAuth è riuscito prima che venga tentata l'autenticazione Kerberos. Nei cluster WASB l'accesso OAuth non viene tentato. Potrebbero esserci molti motivi per cui l'errore Kerberos, ad esempio gli hash delle password non sono sincronizzati, l'account utente è bloccato in Servizi di dominio Microsoft Entra e così via. Gli hash delle password vengono sincronizzati solo quando l'utente modifica la password. Quando si crea l'istanza di Microsoft Entra Domain Services, verrà avviata la sincronizzazione delle password modificate dopo la creazione. Non può sincronizzare retroattivamente le password impostate prima dell'inizio.

Risoluzione

Se si ritiene che le password non siano sincronizzate, provare a modificare la password e attendere alcuni minuti per la sincronizzazione.

Provare a usare SSH in un oggetto È necessario provare a eseguire l'autenticazione (kinit) usando le stesse credenziali utente, da un computer aggiunto al dominio. Eseguire SSH nel nodo head/edge con un utente locale e quindi eseguire kinit.


kinit ha esito negativo

Problema

Kinit ha esito negativo.

Causa

Variabile.

Risoluzione

Perché kinit abbia esito positivo, devi conoscere il tuo sAMAccountName (questo è il nome breve dell'account senza l'area di autenticazione). sAMAccountName è in genere il prefisso dell'account (come bob in bob@contoso.com). Per alcuni utenti, potrebbe essere diverso. È necessaria la possibilità di esplorare o cercare la directory per apprendere sAMAccountName.

Modi per trovare sAMAccountName:

  • Se è possibile accedere ad Ambari usando l'amministratore di Ambari locale, esaminare l'elenco degli utenti.

  • Se si dispone di un computer Windows aggiunto a un dominio, è possibile usare gli strumenti standard di Windows AD per esplorare. Questo richiede un account funzionante nel dominio.

  • Dal nodo head è possibile usare i comandi SAMBA per eseguire la ricerca. Questa operazione richiede una sessione Kerberos valida (kinit riuscita). net ads search "(userPrincipalName=bob*)"

    I risultati di ricerca/esplorazione dovrebbero mostrare l'attributo sAMAccountName . È anche possibile esaminare altri attributi, ad pwdLastSetesempio , badPasswordTimee userPrincipalName così via, per verificare se tali proprietà corrispondono a quanto previsto.


kinit ha esito negativo con errore di preautenticazione

Problema

Kinit ha esito negativo con Preauthentication errore.

Causa

Nome utente o password non corretti.

Risoluzione

Controllare il nome utente e la password. Verificare anche la presenza di altre proprietà descritte. Per abilitare il debug dettagliato, eseguire export KRB5_TRACE=/tmp/krb.log dalla sessione prima di provare kinit.


Il comando Job/HDFS non riesce a causa di TokenNotFoundException

Problema

Il comando Job/HDFS non riesce a causa di TokenNotFoundException.

Causa

Il token di accesso OAuth richiesto non è stato trovato perché il processo/comando abbia esito positivo. Il driver ADLS/ABFS tenta di recuperare il token di accesso OAuth dal servizio credenziali prima di effettuare richieste di archiviazione. Questo token viene registrato quando si accede al portale di Ambari usando lo stesso utente.

Risoluzione

Assicurarsi di aver eseguito correttamente l'accesso al portale di Ambari una volta tramite il nome utente di cui viene usata l'identità per eseguire il processo.


Errore durante il recupero del token di accesso

Problema

L'utente riceve il messaggio Error fetching access tokendi errore .

Causa

Questo errore si verifica in modo intermittente quando gli utenti tentano di accedere ad ADLS Gen2 usando elenchi di controllo di accesso e il token Kerberos è scaduto.

Risoluzione

  • Per Azure Data Lake Archiviazione Gen1, pulire la cache del browser e accedere di nuovo ad Ambari.

  • Per Azure Data Lake Archiviazione Gen2, eseguire /usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn> per l'utente che sta provando ad accedere come


Passaggi successivi

Se il problema riscontrato non è presente in questo elenco o se non si riesce a risolverlo, visitare uno dei canali seguenti per ottenere ulteriore assistenza:

  • Ricevere risposte dagli esperti di Azure tramite la pagina Supporto della community per Azure.

  • Connessione con @AzureSupport: l'account ufficiale di Microsoft Azure per migliorare l'esperienza dei clienti. Mette in contatto la community di Azure con le risorse giuste: risposte, supporto ed esperti.

  • Se serve ulteriore assistenza, è possibile inviare una richiesta di supporto dal portale di Azure. Selezionare Supporto nella barra dei menu o aprire l'hub Guida e supporto. Per informazioni più dettagliate, vedere Come creare una richiesta di supporto in Azure. L'accesso al supporto per la gestione delle sottoscrizioni e la fatturazione è incluso nella sottoscrizione di Microsoft Azure e il supporto tecnico viene fornito tramite uno dei piani di supporto di Azure.