Risolvere i problemi relativi alle configurazioni della delega vincolata Kerberos con il proxy dell'applicazione Microsoft Entra

I metodi di Single Sign-On variano da un'applicazione a un'altra. Il proxy dell'applicazione Microsoft Entra fornisce la delega vincolata Kerberos (KCD) per impostazione predefinita. Gli utenti eseguono l'autenticazione alle applicazioni private usando Kerberos.

Questo articolo fornisce un singolo punto di riferimento per risolvere i problemi più comuni. Spiega anche come diagnosticare problemi relativi a implementazioni più complesse.

In questo articolo vengono riportati i presupposti seguenti.

  • Distribuzione del proxy di applicazione Microsoft Entra e dell'accesso generale alle applicazioni non KCD. Per altre informazioni, vedere Introduzione al proxy dell'applicazione.
  • L'applicazione pubblicata si basa su Internet Information Services (IIS) e sull'implementazione Microsoft di Kerberos.
  • Gli host server e applicazioni si trovano in un singolo dominio Microsoft Entra. Per altre informazioni sugli scenari tra domini e foreste, vedere white paper KCD.
  • L'applicazione viene pubblicata in un tenant di Microsoft Entra ID con autenticazione preliminare abilitata. È previsto che gli utenti eseguano l'autenticazione usando l'autenticazione basata su form. Gli scenari di autenticazione dei rich client non sono trattati in questo articolo,

Prerequisiti

ma a semplici errori di configurazione o a errori generici. Controllare tutti i prerequisiti in Uso dell'accesso Single Sign-On KCD con il proxy dell'applicazione prima della risoluzione dei problemi.

Connessione or gli host non sono limitati alla comunicazione solo con un controller di dominio del sito locale specifico. Controllare che il controller di dominio in uso possa cambiare.

Gli scenari tra domini si affidano ai riferimenti che indirizzano un host del connettore ai controller di dominio che possono trovarsi all'esterno del perimetro della rete locale. In questi casi, è altrettanto importante consentire il traffico verso i controller di dominio che rappresentano altri rispettivi domini. In caso contrario, la delega avrà esito negativo.

Evitare dispositivi IPS (Intrusion Prevention System) attivi o del sistema di rilevamento delle intrusioni (IDS) tra host del connettore e controller di dominio. Questi dispositivi sono troppo intrusivi e interferiscono con il traffico RPC (Remote Procedure Call) principale.

È consigliabile testare la delega negli scenari più semplici. Il numero di variabili introdotte è infatti direttamente proporzionale ai problemi da risolvere. Ad esempio, limitare i test a un singolo connettore permette di risparmiare tempo prezioso Aggiungere altri connettori dopo la risoluzione del problema.

I problemi possono essere legati anche ad alcuni fattori ambientali. Per evitare questi fattori, ridurre al minimo l'architettura durante i test. Ad esempio, gli elenchi Controllo di accesso di controllo di accesso (ACL) del firewall interno configurati in modo errato sono comuni. Se possibile, quindi, consentire tutto il traffico di un connettore direttamente verso i controller di dominio e l'applicazione back-end.

È consigliabile posizionare i connettori il più vicino possibile alle destinazioni. La presenza di un firewall inline durante il test aggiunge complessità superflua e può prolungare l'analisi.

Che cosa costituisce un problema di delega vincolata Kerberos? Esistono diverse indicazioni comuni che l'accesso Single Sign-On di KCD ha esito negativo. I primi segnali si manifestano in genere nel browser.

Screenshot che mostra un esempio di errore di configurazione K C D errato, con l'errore

Esempio: Autorizzazione non riuscita a causa di autorizzazioni mancanti

Entrambe le immagini mostrano lo stesso sintomo: errore di Single Sign-On. L'accesso dell'utente all'applicazione viene negato.

Risoluzione dei problemi

Separare la risoluzione dei problemi nelle tre fasi.

Autenticazione preliminare client

L'utente esterno che esegue l'autenticazione tramite un browser. Per il funzionamento dell'accesso Single Sign-On (SSO) KCD è necessaria la pre-autenticazione in Microsoft Entra ID. È consigliabile eseguire test e risolvere gli eventuali problemi. La fase di preautenticazione non è correlata alla delega vincolata kerberos o all'applicazione pubblicata. È facile correggere eventuali discrepanze controllando che l'account soggetto esista in Microsoft Entra ID. Verificare che l'applicazione non sia disabilitata o bloccata. La risposta di errore nel browser è in genere sufficientemente descrittiva per comprendere la causa.

Servizio di delega

Connettore di rete privato che ottiene un ticket di servizio Kerberos per gli utenti da un Centro distribuzione chiavi Kerberos.

Le comunicazioni esterne tra il client e il front-end di Azure non dovrebbero avere comunque alcuna rilevanza sulla delega vincolata Kerberos, se non per garantirne il funzionamento. Il servizio proxy dell'applicazione viene fornito un ID utente valido usato per ottenere un ticket Kerberos. Senza di questo, la delega vincolata Kerberos non sarebbe possibile e l'operazione avrebbe esito negativo.

I messaggi di errore del browser forniscono alcuni indizi utili sul motivo per cui si verifica un errore. Registrare i activity ID campi e timestamp nella risposta. Le informazioni consentono di correlare il comportamento agli eventi effettivi nel registro eventi del proxy dell'applicazione.

Esempio: Errore di configurazione KCD non corretto

Le voci corrispondenti visualizzate nel log eventi vengono mostrate come eventi 13019 o 12027. Trovare i registri eventi del connettore in Registri applicazioni e servizi Microsoft>Entra>private network> Connessione or> Amministrazione.

  1. Usare un record A nel DNS (Domain Name System) interno per l'indirizzo dell'applicazione, non per .CName
  2. Riconfermare che l'host del connettore abbia il diritto di delegare al nome dell'entità servizio (SPN) dell'account di destinazione designato. e che l'opzione Usa un qualsiasi protocollo di autenticazione sia selezionata. Per altre informazioni, vedere l'articolo sulla configurazione dell'accesso SSO.
  3. Verificare che sia presente una sola istanza del nome SPN in Microsoft Entra ID. eseguendo il comando setspn -x da un prompt dei comandi di qualsiasi host membro di dominio.
  4. Verificare che sia applicato un criterio di dominio che limita la dimensione massima dei token Kerberos pubblicati. Il criterio impedisce al connettore di ottenere un token se è eccessivo.

Una traccia di rete che acquisisce scambi tra l'host del connettore e una delega vincolata Kerberos di dominio (KDC) è il passaggio migliore successivo per ottenere dettagli di basso livello sui problemi. Per altre informazioni, vedere il white paper di approfondimento sulla risoluzione dei problemi.

Se la creazione di ticket non presenta problemi, verrà visualizzato un evento nei log a indicare che l'autenticazione ha avuto esito negativo a causa di un codice 401 restituito dall'applicazione. Questo evento indica che l'applicazione di destinazione ha rifiutato il ticket. Passare alla fase successiva.

Applicazione di destinazione

Consumer del ticket Kerberos fornito dal connettore. In questa fase, si prevede che il connettore invia un ticket di servizio Kerberos al back-end. Il ticket è un'intestazione nella prima richiesta dell'applicazione.

  1. Tramite l'URL interno dell'applicazione definito nel portale, confermare che l'applicazione sia accessibile direttamente dal browser nell'host del connettore. A questo punto sarà possibile eseguire l'accesso. I dettagli a questo proposito sono disponibili nella pagina di risoluzione dei problemi del connettore.

  2. Verificare che l'autenticazione tra il browser e l'applicazione usi Kerberos.

  3. Eseguire Strumenti di sviluppo (F12) in Internet Explorer oppure usare Fiddler dall'host del connettore. Passare all'applicazione usando l'URL interno. Per assicurarsi che negotiate o Kerberos sia presente, esaminare le intestazioni di autorizzazione Web offerte restituite nella risposta dall'applicazione.

    • Il successivo BLOB Kerberos restituito nella risposta dal browser all'applicazione inizia con YII, e questa è una buona indicazione del fatto che Kerberos è in esecuzione. Microsoft NT LAN Manager (NTLM), d'altro canto, inizia sempre con TlRMTVNTUAAB, ovvero NTLM Security Support Provider (NTLMSSP) in caso di decodifica da Base64. Se all'inizio del BLOB viene visualizzato TlRMTVNTUAAB , Kerberos non è disponibile. Se TlRMTVNTUAABnon è visibile, Kerberos dovrebbe essere disponibile.

      Nota

      Se si usa Fiddler, questo metodo richiede la disabilitazione temporanea della protezione estesa sulla configurazione dell'applicazione in IIS.

      Finestra di controllo di rete del browser

    • Il BLOB nell'immagine non inizia con TIRMTVNTUAAB. In questo esempio pertanto Kerberos è disponibile, e il BLOB Kerberos non inizia con YII.

  4. Rimuovere temporaneamente NTLM dall'elenco di provider nel sito di IIS. Accedere all'app direttamente da Internet Explorer nell'host del connettore. NTLM non è più presente nell'elenco dei provider, ed è possibile accedere all'applicazione solo tramite Kerberos. Se l'accesso non riesce, potrebbe esserci un problema con la configurazione dell'applicazione. L'autenticazione Kerberos non funziona.

    • Se Kerberos non è disponibile, controllare le impostazioni di autenticazione dell'applicazione in IIS. Verificare che l'opzione Negotiate sia elencata nella parte superiore, con NTLM immediatamente sotto. Se viene visualizzata l'opzione Not Negotiate, Kerberos o Negotiate, o PKU2U, procedere solo se Kerberos funziona.

      Provider di autenticazione di Windows

    • Con Kerberos e NTLM sul posto, disabilitare temporaneamente la preautenticazione per l'applicazione nel portale. Verificare che sia possibile accedervi da Internet tramite l'URL esterno. Viene richiesto di eseguire l'autenticazione. A tal fine, usare lo stesso account usato nel passaggio precedente. In caso contrario, si è verificato un problema con l'applicazione back-end e non con la delega vincolata Kerberos.

    • Riabilitare la preautenticazione nel portale. ed eseguire l'autenticazione tramite Azure cercando di connettersi all'applicazione tramite l'URL esterno. Se l'accesso SSO ha esito negativo, viene visualizzato un messaggio di errore non consentito nel browser e l'evento 13022 nel log:

      Il connettore di rete privata Microsoft Entra non è in grado di autenticare l'utente perché il server back-end risponde ai tentativi di autenticazione Kerberos con un errore HTTP 401.

      Mostra l'errore HTTTP 401 non consentito

    • Controllare l'applicazione IIS. Assicurarsi che il pool di applicazioni configurato e il nome SPN siano configurati per l'uso dello stesso account in Microsoft Entra ID. Spostarsi in IIS come illustrato nella figura seguente.

      Finestra di configurazione dell'applicazione IIS

      Dopo aver stabilito l'identità, verificare che questo account venga configurato con il nome dell'entità servizio in questione. Un esempio è setspn –q http/spn.wacketywack.com. Immettere il testo seguente in un prompt dei comandi.

      Mostra la finestra di comando SetSPN

    • Controllare il nome dell'entità servizio definito in base alle impostazioni dell'applicazione nel portale. Assicurarsi che lo stesso NOME SPN configurato per l'account Microsoft Entra di destinazione venga usato dal pool di app dell'applicazione.

    • Passare a IIS e selezionare l'opzione Editor di configurazione per l'applicazione. Passare a system.webServer/security/authentication/windowsAuthentication. Verificare che il valore UseAppPoolCredentials sia True.

      Opzione delle credenziali dei pool di applicazioni della configurazione IIS

      Impostare il valore su True. Rimuovere tutti i ticket Kerberos memorizzati nella cache dal server back-end eseguendo il comando .

      Get-WmiObject Win32_LogonSession | Where-Object {$_.AuthenticationPackage -ne 'NTLM'} | ForEach-Object {klist.exe purge -li ([Convert]::ToString($_.LogonId, 16))}
      

Oltre a risultare utile per migliorare le prestazioni delle operazioni Kerberos, l'abilitazione della modalità Kernel determina la decrittografia del ticket per il servizio richiesto con l'account del computer. Questo è anche noto come sistema locale, pertanto la sua impostazione su True interrompe la delega vincolata Kerberos quando l'applicazione è ospitata in più server in una farm.

  • Come un altro controllo, disabilitare anche la protezione estesa . In alcune situazioni, la protezione estesa interrompe la delega vincolata Kerberos se abilitata in configurazioni specifiche, in cui un'applicazione viene pubblicata come sottocartella del sito Web predefinito. Tale applicazione è configurata soltanto per l'autenticazione anonima, lasciando le finestre di dialogo disattivate a indicare che gli oggetti figlio non erediteranno impostazioni attive. È consigliabile eseguire il test e quindi ripristinare questo valore su abilitata, laddove possibile.

    Questo controllo aggiuntivo consente di tenere traccia dell'uso dell'applicazione pubblicata. È possibile attivare più connettori configurati anche per delegare. Per altre informazioni, vedere la procedura dettagliata tecnica più approfondita, Risoluzione dei problemi relativi al proxy dell'applicazione Microsoft Entra.

Se il problema persiste, contattare il supporto tecnico Microsoft creando un ticket direttamente nel portale

Altri scenari

Microsoft Entra application proxy richiede un ticket Kerberos prima di inviare la richiesta a un'applicazione. Alcune applicazioni non amano questo metodo di autenticazione. preferendo l'approccio più tradizionale delle negoziazioni. La prima richiesta è anonima, consentendo all'applicazione di rispondere con i tipi di autenticazione supportati tramite un codice 401. Questo tipo di negoziazione Kerberos può essere abilitato usando i passaggi descritti in questo documento: Delega vincolata Kerberos per l'accesso Single Sign-On.

L'autenticazione multi hop viene comunemente usata negli scenari in cui un'applicazione è a livelli. I livelli includono un back-end e un front-end. Entrambi i livelli richiedono l'autenticazione. Ad esempio, SQL Server Reporting Services. Per altre informazioni, vedere Come configurare la delega vincolata Kerberos per le pagine proxy di registrazione Web.

Passaggi successivi

Configurare la delega vincolata Kerberos in un dominio gestito.