Risolvere i problemi del token di aggiornamento primario nei dispositivi Windows

Questo articolo illustra come risolvere i problemi che coinvolgono il token di aggiornamento primario (PRT) quando si esegue l'autenticazione in un dispositivo Windows aggiunto a Microsoft Entra usando le credenziali di Microsoft Entra.

Nei dispositivi aggiunti a Microsoft Entra ID o a Microsoft Entra ID ibrido, il componente principale dell'autenticazione è il token di aggiornamento primario. Per ottenere questo token, accedere a Windows 10 usando le credenziali di Microsoft Entra in un dispositivo aggiunto a Microsoft Entra per la prima volta. Il token di aggiornamento primario viene memorizzato nella cache nel dispositivo. Per gli accessi successivi, il token memorizzato nella cache viene usato per consentire l'uso del desktop.

Come parte del processo di blocco e sblocco del dispositivo o di nuovo accesso di nuovo a Windows, viene effettuato un tentativo di autenticazione di rete in background una volta ogni quattro ore per aggiornare la richiesta pull. Se si verificano problemi che impediscono l'aggiornamento del token, il token di aggiornamento primario alla fine scade. La scadenza influisce sull'accesso Single Sign-On (SSO) alle risorse di Microsoft Entra. Determina anche la visualizzazione delle richieste di accesso.

Se si sospetta che esista un problema PRT, è consigliabile prima raccogliere i log di Microsoft Entra e seguire i passaggi descritti nell'elenco di controllo per la risoluzione dei problemi. Eseguire questa operazione per qualsiasi problema del client Microsoft Entra, idealmente all'interno di una sessione di riproduzione. Completare questo processo prima di inviare una richiesta di supporto.

Elenco di controllo per la risoluzione dei problemi

Passaggio 1: Ottenere lo stato del token di aggiornamento primario

  1. Accedere a Windows con l'account utente in cui si verificano problemi relativi alla richiesta pull.

  2. Selezionare Start e quindi cercare e selezionare Prompt dei comandi.

  3. Per eseguire il comando di registrazione del dispositivo (dsregcmd), immettere dsregcmd /status.

  4. Individuare la sezione stato SSO dell'output del comando di registrazione del dispositivo. Il testo seguente illustra un esempio di questa sezione:

    Output
    +----------------------------------------------------------------------+
    | SSO State                                                            |
    +----------------------------------------------------------------------+
    
                    AzureAdPrt : YES
          AzureAdPrtUpdateTime : 2020-07-12 22:57:53.000 UTC
          AzureAdPrtExpiryTime : 2020-07-26 22:58:35.000 UTC
           AzureAdPrtAuthority : https://login.microsoftonline.com/00001111-aaaa-2222-bbbb-3333cccc4444
                 EnterprisePrt : YES
       EnterprisePrtUpdateTime : 2020-07-12 22:57:54.000 UTC
       EnterprisePrtExpiryTime : 2020-07-26 22:57:54.000 UTC
        EnterprisePrtAuthority : https://msft.sts.microsoft.com:443/adfs
    
    +----------------------------------------------------------------------+
    
  5. Controllare il valore del campo AzureAdPrt. Se è impostato su NO, si è verificato un errore quando si è tentato di acquisire lo stato PRT da Microsoft Entra ID.

  6. Controllare il valore del campo AzureAdPrtUpdateTime. Se il valore del campo AzureAdPrtUpdateTime è superiore a quattro ore, è probabile che un problema impedisca l'aggiornamento del token di aggiornamento primario. Bloccare e sbloccare il dispositivo per forzare un aggiornamento PRT e quindi controllare se l'ora viene aggiornata.

Passaggio 2: Ottenere il codice di errore

Il passaggio successivo consiste nel ottenere il codice di errore che causa l'errore PRT. Il modo più rapido per ottenere il codice di errore PRT consiste nell'esaminare l'output del comando di registrazione del dispositivo. Tuttavia, questo metodo richiede l'aggiornamento di Windows 10 di maggio 2021 (versione 21H1) o una versione successiva. L'altro metodo consiste nel trovare il codice di errore nei log analitici e operativi di Microsoft Entra.

Metodo 1: Esaminare l'output del comando di registrazione del dispositivo

Nota

Questo metodo è disponibile solo se si usa l'aggiornamento di Windows 10 maggio 2021 (versione 21H1) o una versione successiva di Windows.

Per ottenere il codice di errore PRT, eseguire il comando dsregcmd e quindi individuare la sezione SSO State. Nel campo AzureAdPrt, il campo Attempt Status contiene il codice di errore. Nell'esempio seguente il codice di errore è 0xc000006d.

Output
                AzureAdPrt : NO
       AzureAdPrtAuthority : https://login.microsoftonline.com/aaaa0000-bb11-2222-33cc-444444dddddd
     AcquirePrtDiagnostics : PRESENT
      Previous Prt Attempt : 2020-09-18 20:20:09.760 UTC
            Attempt Status : 0xc000006d
             User Identity : user@contoso.com
           Credential Type : Password
            Correlation ID : aaaa0000-bb11-2222-33cc-444444dddddd
              Endpoint URI : https://login.microsoftonline.com/aaaa0000-bb11-2222-33cc-444444dddddd/oauth2/token
               HTTP Method : POST
                HTTP Error : 0x0
               HTTP status : 400
         Server Error Code : invalid_grant
  Server Error Description : AADSTS50126: Error validating credentials due to invalid username or password.

Metodo 2: Usare il Visualizzatore eventi per esaminare i log analitici e operativi di AAD

  1. Selezionare Start e quindi cercare e selezionare Visualizzatore eventi.

  2. Se l'albero della console non viene visualizzato nella finestra Visualizzatore eventi, selezionare l'icona Mostra/Nascondi albero della console per rendere visibile l'albero della console.

  3. Nell'albero della console selezionare Visualizzatore eventi (locale). Se i nodi figlio non vengono visualizzati sotto questo elemento, fare doppio clic sulla selezione per visualizzarli.

  4. Selezionare il menu Visualizza. Se un segno di spunta non viene visualizzato accanto a Mostra log analitici e di debug, selezionare tale voce di menu per abilitare tale funzionalità.

  5. Nell'albero della console espandere Registri applicazioni e servizi>Microsoft>Windows>AAD. Vengono visualizzati i nodi figlio Operativo e Analitico.

    Nota

    Nel plug-in Microsoft Entra Cloud Authentication Provider (CloudAP), gli eventi di errore vengono scritti nei registri eventi operativi e gli eventi informativi vengono scritti nei registri eventi analitici. È necessario esaminare i registri eventi operativi e analitici per risolvere i problemi relativi al token di aggiornamento primario.

  6. Nell'albero della console selezionare il nodo Analitico per visualizzare gli eventi analitici correlati ad AAD.

  7. Nell'elenco degli eventi analitici cercare ID evento 1006 e 1007. L'ID evento 1006 indica l'inizio del flusso di acquisizione della richiesta pull e l'ID evento 1007 indica la fine del flusso di acquisizione PRT. Tutti gli eventi nei log di AAD (sia Analitici che Operativi) che si sono verificati tra l'ID evento 1006 e l'ID evento 1007 vengono registrati come parte del flusso di acquisizione PRT. La tabella seguente mostra un elenco di eventi di esempio.

    Level Data e ora Origine ID evento Categoria attività
    Informazioni 24/6/2020 3:35:35 AAD 1006 Operazione AadCloudAPPlugin
    Informazioni 24/6/2020 3:35:35 AAD 1018 AadCloudAPPlugin Operation
    Informazioni 24/6/2020 3:35:35 AAD 1144 AadCloudAPPlugin Operation
    Informazioni 24/6/2020 3:35:35 AAD 1022 AadCloudAPPlugin Operation
    Error 24/6/2020 3:35:35 AAD 1084 AadCloudAPPlugin Operation
    Error 24/6/2020 3:35:35 AAD 1086 AadCloudAPPlugin Operation
    Error 24/6/2020 3:35:35 AAD 1160 AadCloudAPPlugin Operation
    Informazioni 24/6/2020 3:35:35 AAD 1007 Operazione AadCloudAPPlugin
    Informazioni 24/6/2020 3:35:35 AAD 1157 AadCloudAPPlugin Operation
    Informazioni 24/6/2020 3:35:35 AAD 1158 AadCloudAPPlugin Operation
  8. Fare doppio clic sulla riga contenente l'ID evento 1007. Viene visualizzata la finestra di dialogo Proprietà evento per questo evento.

  9. Nella casella descrizione della scheda Generale copiare il codice di errore. Il codice di errore è una stringa di 10 caratteri che inizia con 0x, seguita da un numero esadecimale a 8 cifre.

Passaggio 3: Ottenere le istruzioni per la risoluzione dei problemi per determinati codici di errore

Codici di stato (prefisso "STATUS_", codici che iniziano con "0xc000")

STATUS_LOGON_FAILURE (-1073741715 / 0xc000006d),
STATUS_WRONG_PASSWORD (-1073741718 / 0xc000006a)
Causa
  • Il dispositivo non può connettersi al servizio di autenticazione Microsoft Entra.

  • Il dispositivo ha ricevuto una risposta di errore HTTP 400 Bad Request da una delle origini seguenti:

    • Servizio di autenticazione Microsoft Entra
    • Endpoint per il protocollo WS-Trust (obbligatorio per l'autenticazione federata)
Soluzione
  • Se l'ambiente locale richiede un proxy in uscita, assicurarsi che l'account computer del dispositivo sia in grado di individuare e autenticare automaticamente il proxy in uscita.

  • Ottenere il codice di errore del server e la descrizione dell'errore, quindi passare alla sezione Codici di errore comuni del server ("prefisso AADSTS") per trovare la causa del codice di errore del server e i dettagli della soluzione.

    Nei log operativi di Microsoft Entra, l'ID evento 1081 contiene il codice di errore del server e la descrizione dell'errore se si verifica l'errore nel servizio di autenticazione Microsoft Entra. Se l'errore si verifica in un endpoint WS-Trust, il codice di errore del server e la descrizione dell'errore vengono trovati nell'ID evento 1088. Nei log analitici di Microsoft Entra la prima istanza dell'ID evento 1022 (che precede gli ID evento operativi 1081 e 1088) contiene l'URL a cui si accede.

    Per visualizzare gli ID evento nei log operativi e analitici di Microsoft Entra, fare riferimento alla sezione Metodo 2: Usare visualizzatore eventi per esaminare i log analitici e operativi di Microsoft Entra.

STATUS_REQUEST_NOT_ACCEPTED (-1073741616 / 0xc00000d0)
Causa

Il dispositivo ha ricevuto una risposta di errore HTTP 400 Bad Request da una delle origini seguenti:

  • Servizio di autenticazione Microsoft Entra
  • Endpoint per il protocollo WS-Trust (obbligatorio per l'autenticazione federata)
Soluzione

Ottenere il codice di errore del server e la descrizione dell'errore, quindi passare alla sezione Codici di errore comuni del server ("prefisso AADSTS") per trovare la causa del codice di errore del server e i dettagli della soluzione.

Nei log operativi di Microsoft Entra, l'ID evento 1081 contiene il codice di errore del server e la descrizione dell'errore se si verifica l'errore nel servizio di autenticazione Microsoft Entra. Se l'errore si verifica in un endpoint WS-Trust, il codice di errore del server e la descrizione dell'errore vengono trovati nell'ID evento 1088. Nei log analitici di Microsoft Entra la prima istanza dell'ID evento 1022 (che precede gli ID evento operativi 1081 e 1088) contiene l'URL a cui si accede.

Per visualizzare gli ID evento nei log operativi e analitici di Microsoft Entra, fare riferimento alla sezione Metodo 2: Usare visualizzatore eventi per esaminare i log analitici e operativi di Microsoft Entra.

STATUS_NETWORK_UNREACHABLE (-1073741252 / 0xc000023c),
STATUS_BAD_NETWORK_PATH (-1073741634 / 0xc00000be),
STATUS_UNEXPECTED_NETWORK_ERROR (-1073741628 / 0xc00000c4)
Causa
  • Il dispositivo ha ricevuto una risposta di errore HTTP 4xx da una delle origini seguenti:

    • Servizio di autenticazione Microsoft Entra
    • Endpoint per il protocollo WS-Trust (obbligatorio per l'autenticazione federata)
  • Esiste un problema di connettività di rete a un endpoint obbligatorio.

Soluzione
  • Ottenere il codice di errore del server e la descrizione dell'errore, quindi passare alla sezione Codici di errore comuni del server ("prefisso AADSTS") per trovare la causa del codice di errore del server e i dettagli della soluzione.

    Nei log operativi di Microsoft Entra, l'ID evento 1081 contiene il codice di errore del server e la descrizione dell'errore se si verifica l'errore nel servizio di autenticazione Microsoft Entra. Se l'errore si verifica in un endpoint WS-Trust, il codice di errore del server e la descrizione dell'errore vengono trovati nell'ID evento 1088.

  • Per un problema di connettività di rete, ottenere l'URL a cui si accede e il codice suberrore dallo stack di rete. L'ID evento 1022 nei log analitici di Microsoft Entra contiene l'URL a cui si accede. L'ID evento 1084 nei log operativi di Microsoft Entra contiene il codice di errore secondario dello stack di rete.

Per visualizzare gli ID evento nei log operativi e analitici di Microsoft Entra, fare riferimento alla sezione Metodo 2: Usare visualizzatore eventi per esaminare i log analitici e operativi di Microsoft Entra.

STATUS_NO_SUCH_LOGON_SESSION (-1073741729 / 0xc000005f)
Causa

L'individuazione dell'area di autenticazione utente non è riuscita perché il servizio di autenticazione Microsoft Entra non riesce a trovare il dominio dell'utente.

Soluzione

Codici di errore comuni del plug-in CloudAP ("AAD_CLOUDAP_E_", codici che iniziano con "0xc004")

AAD_CLOUDAP_E_OAUTH_USERNAME_IS_MALFORMED (-1073445812 / 0xc004844c)
Causa

L'UPN per l'utente non è nel formato previsto. Il valore UPN varia in base al tipo di dispositivo, come illustrato nella tabella seguente.

Tipo di join del dispositivo Valore UPN
Dispositivi aggiunti a Microsoft Entra Testo immesso quando l'utente accede
Dispositivi ibridi aggiunti a Microsoft Entra UPN restituito dal controller di dominio durante il processo di accesso
Soluzione
AAD_CLOUDAP_E_OAUTH_USER_SID_IS_EMPTY (-1073445822 / 0xc0048442)
Causa

L'identificatore di sicurezza utente (SID) non è presente nel token ID restituito dal servizio di autenticazione Microsoft Entra.

Soluzione

Assicurarsi che il proxy di rete non interferisca con o modifichi la risposta del server.

AAD_CLOUDAP_E_WSTRUST_SAML_TOKENS_ARE_EMPTY (-1073445695 / 0xc00484c1 / 0x800484c1)
Causa

È stato ricevuto un errore dall'endpoint del protocollo WS-Trust (obbligatorio per l'autenticazione federata).

Soluzione
AAD_CLOUDAP_E_HTTP_PASSWORD_URI_IS_EMPTY (-1073445749 / 0xc004848b)
Causa

L'endpoint MEX (Metadata Exchange) non è configurato correttamente. La risposta MEX non contiene URL di password.

Soluzione
  • Assicurarsi che il proxy di rete non interferisca con o modifichi la risposta del server.

  • Correggere la configurazione MEX in modo che restituisca URL validi in risposta.

AAD_CLOUDAP_E_HTTP_CERTIFICATE_URI_IS_EMPTY (-1073445748 / 0xc004848c)
Causa

L'endpoint MEX (Metadata Exchange) non è configurato correttamente. La risposta MEX non contiene URL di endpoint di certificato.

Soluzione
  • Assicurarsi che il proxy di rete non interferisca con o modifichi la risposta del server.

  • Correggere la configurazione MEX nel provider di identità per restituire gli URL di certificato validi nella risposta.

Codici di errore XML comuni (codici che iniziano con "0xc00c")

WC_E_DTDPROHIBITED (-1072894385 / 0xc00cee4f)
Causa

La risposta XML dall'endpoint del protocollo WS-Trust (necessaria per l'autenticazione federata) includeva una definizione del tipo di documento (DTD). Il DTD non è previsto nella risposta XML e l'analisi delle risposte ha esito negativo se il DTD è incluso.

Soluzione

Codici di errore comuni del server (prefisso "AADSTS")

È possibile trovare un elenco completo e una descrizione dei codici di errore del server in codici di errore di autenticazione e autorizzazione di Microsoft Entra.

AADSTS50155: Autenticazione del dispositivo non riuscita
Causa
Soluzione

Registrare nuovamente il dispositivo in base al tipo di join del dispositivo. Per istruzioni, vedere Ho disabilitato o eliminato il dispositivo. Ma lo stato locale nel dispositivo risulta ancora registrato. Cosa dovrei fare?.

AADSTS50034: l'account utente <Account> non esiste nella directory <id tenant>
Causa

Microsoft Entra ID non riesce a trovare l'account utente nel tenant.

Soluzione
AADSTS50126: errore durante la convalida delle credenziali a causa di un nome utente o di una password non validi
Causa
  • L'utente ha immesso un nome utente o una password non corretti nell'interfaccia utente di accesso.

  • La password non è stata sincronizzata con Microsoft Entra ID a causa dello scenario seguente:

Soluzione

Per acquisire una nuova richiesta pull con le nuove credenziali, attendere il completamento della sincronizzazione di Microsoft Entra.

Codici di errore di rete comuni ("prefisso ERROR_WINHTTP_")

È possibile trovare un elenco completo e una descrizione dei codici di errore di rete nei messaggi di errore (Winhttp.h).

ERROR_WINHTTP_TIMEOUT (12002),
ERROR_WINHTTP_NAME_NOT_RESOLVED (12007),
ERROR_WINHTTP_CANNOT_CONNECT (12029),
ERROR_WINHTTP_CONNECTION_ERROR (12030)
Causa

Problemi comuni relativi alla rete.

Soluzione
  • Ottenere l'URL a cui si accede. È possibile trovare l'URL nell'ID evento 1084 del log operativo di Microsoft Entra o nell'ID evento 1022 del log analitico di Microsoft Entra.

    Per visualizzare gli ID evento nei log operativi e analitici di Microsoft Entra, fare riferimento alla sezione Metodo 2: Usare visualizzatore eventi per esaminare i log analitici e operativi di Microsoft Entra.

  • Se l'ambiente locale richiede un proxy in uscita, assicurarsi che l'account computer del dispositivo sia in grado di individuare e autenticare automaticamente il proxy in uscita.

  • Raccogliere tracce di rete seguendo questa procedura:

    Importante

    Non usare Fiddler durante questa procedura.

    1. Eseguire il comando netsh trace start seguente:

      Prompt dei comandi di Windows
      netsh trace start scenario=InternetClient_dbg capture=yes persistent=yes
      
    2. Bloccare il dispositivo.

    3. Se il dispositivo è un dispositivo aggiunto ibrido a Microsoft Entra, attendere almeno 60 secondi per consentire il completamento dell'attività di acquisizione PRT.

    4. Sbloccare il dispositivo.

    5. Eseguire il comando netsh trace stop seguente:

      Prompt dei comandi di Windows
      netsh trace stop
      

Passaggio 4: Raccogliere i log e le tracce

Log regolari

  1. Scaricare l'archivio script di autenticazione ed estrarre gli script in una directory locale. Se necessario, esaminare le istruzioni di utilizzo in KB 4487175.

  2. Aprire una sessione amministrativa di PowerShell e modificare la directory corrente nella directory in cui sono stati salvati gli script di autenticazione.

  3. Per avviare la sessione di traccia degli errori, immettere il comando seguente:

    PowerShell
    .\Start-auth.ps1 -v -acceptEULA
    
  4. Passare all'account utente di Windows per passare alla sessione dell'utente con problemi.

  5. Bloccare il dispositivo.

  6. Se il dispositivo è un dispositivo aggiunto ibrido a Microsoft Entra, attendere almeno 60 secondi per consentire il completamento dell'attività di acquisizione PRT.

  7. Sbloccare il dispositivo.

  8. Tornare all'account utente di Windows alla sessione amministrativa che esegue la sessione di traccia.

  9. Dopo aver riprodotto il problema, eseguire il comando seguente per terminare la sessione di traccia:

    PowerShell
    .\stop-auth.ps1
    
  10. Attendere che tutte le tracce si arrestino completamente.

Tracce di viaggio temporali

La procedura seguente descrive come acquisire le tracce usando la funzionalità debug TTD (Time Travel Debugging).

Avviso

Le tracce di viaggio temporali contengono dati personali. Inoltre, le tracce del servizio del sottosistema dell'autorità di sicurezza locale (LSASS o lsass.exe) contengono informazioni estremamente riservate. Quando si gestiscono queste tracce, assicurarsi di usare le procedure consigliate per l'archiviazione e la condivisione di questo tipo di informazioni.

  1. Selezionare Start, immettere cmd, individuare e fare clic con il pulsante destro del mouse prompt dei comandi nei risultati della ricerca e quindi selezionare Esegui come amministratore.

  2. Al prompt dei comandi creare una directory temporanea:

    Prompt dei comandi di Windows
    mkdir c:\temp
    
  3. Eseguire il comando tasklist seguente:

    Prompt dei comandi di Windows
    tasklist /m lsasrv.dll
    
  4. Nell'output del comando tasklist trovare l'identificatore del processo (PID) di lsass.exe.

  5. Per avviare una sessione di traccia del processo di lsass.exe, eseguire il comando di debug del viaggio temporale seguente (TTD.exe):

    Prompt dei comandi di Windows
    TTD.exe -attach <lsass-pid> -out c:\temp
    
  6. Bloccare il dispositivo connesso con l'account di dominio.

  7. Sbloccare il dispositivo.

  8. Per terminare la sessione di traccia del viaggio temporale, eseguire il comando TTD seguente:

    Prompt dei comandi di Windows
    TTD.exe -stop all
    
  9. Ottenere il file lsass##.run più recente.