Risoluzione dei problemi e domande frequenti

Questo documento fornisce indicazioni per la risoluzione dei problemi e risposte alle domande frequenti su Identity-Aware Proxy (IAP).

Risoluzione dei problemi di accesso web

Se riscontri errori durante l'accesso o quando accedi alla tua applicazione, l'ispezione del traffico di rete del browser può aiutarti a diagnosticare il problema.

Ispezione del traffico di rete

  1. Apri una nuova finestra di navigazione in incognito (Chrome) o privata nel browser.
  2. Apri gli strumenti per sviluppatori del browser e vai alla scheda Rete.
  3. Seleziona l'opzione Conserva log per acquisire tutte le richieste durante i reindirizzamenti.
  4. Riproduci il problema andando all'URL in cui si verificano i problemi.
  5. Esamina le richieste di rete nel log per identificare dove si è verificato l'errore.

Analisi del traffico di rete

Quando accedi a un'applicazione protetta da IAP, vieni reindirizzato alla pagina di accesso. Dopo l'autenticazione con il provider di identità, viene effettuata una richiesta al dominio https://iap.googleapis.com per completare l'autenticazione prima che venga emesso un cookie IAP e che tu venga reindirizzato all'applicazione.

Puoi risolvere i problemi in base al dominio in cui si verificano gli errori:

  • Errori su iap.googleapis.com: se si verifica un errore nel dominio iap.googleapis.com, nella pagina viene visualizzato un messaggio di errore dettagliato. Se l'errore è correlato alle impostazioni di IAP, ad esempio problemi con il client OAuth, modifica le impostazioni. Se riscontri errori del client che non sai come risolvere o se visualizzi errori del server, apri un ticket di assistenzaGoogle Cloud .
  • Errori nel dominio dell'applicazione: se si verifica un errore dopo il reindirizzamento al dominio dell'applicazione protetta da IAP, viene visualizzato un codice di errore. Per informazioni dettagliate sugli errori comuni, consulta la sezione Codici di errore. Se non riesci a risolvere il problema, apri un ticket di assistenzaGoogle Cloud .

Quali app posso proteggere con IAP?

IAP può essere utilizzato con:

  • App degli ambienti standard e flessibile di App Engine

  • Istanze Compute Engine con servizi di backend di bilanciamento del carico HTTP(S)

  • Container Google Kubernetes Engine

  • App Cloud Run con servizi di backend di bilanciamento del carico HTTP(S)

  • Cloud Run con un clic e nessun servizio di backend di bilanciamento del carico

    IAP non può essere utilizzato con Cloud CDN.

    Perché c'è un # alla fine del mio URL dopo aver eseguito l'accesso alla mia app?

    In alcuni browser e in determinate condizioni, dopo l'autenticazione potrebbe essere aggiunto un # all'URL. Questo è normale e non causerà problemi durante l'accesso.

    Perché le mie richieste non vanno a buon fine e restituiscono 405 Method Not Allowed?

    In genere questo accade quando i cookie non sono allegati alle tue richieste. I metodi JavaScript non allegano i cookie per impostazione predefinita.

    I diversi metodi di richiesta richiedono approcci diversi:

    • Per XMLHttpRequest, imposta withCredentials su true.

    • Per l'API Fetch, imposta credentials su include o same-origin.

    Per gestire gli errori relativi alle sessioni, consulta Gestione delle sessioni IAP.

    Perché ricevo un HTTP 401 Unauthorized anziché un 302 Redirect?

    IAP invia un 302 Redirect solo quando il client è configurato per gestire i reindirizzamenti.

    Aggiungi HTTP Accept="text/html,*/*" alle intestazioni della richiesta per indicare il supporto dei reindirizzamenti.

    Perché le richieste POST non attivano i reindirizzamenti?

    I browser non reindirizzano in risposta alle richieste POST. Invece, IAP restituisce un codice di stato 401 Unauthorized.

    Per le richieste POST alle risorse protette da IAP, includi uno dei seguenti elementi:

    Posso utilizzare IAP se ho disabilitato l'API?

    Sì, le risorse protette da IAP rimangono accessibili quando l'API è disabilitata, ma non potrai modificare le autorizzazioni IAM.

    Come faccio a impedire agli utenti con il ruolo Proprietario di utilizzare IAP per TCP?

    Idealmente, limita l'uso del ruolo Proprietario (roles/owner) a favore di autorizzazioni più granulari. Per indicazioni, consulta le best practice per IAM.

    Se non è possibile, puoi bloccare IAP per TCP utilizzando le regole firewall.

    Quale dominio utilizza IAP per TCP?

    IAP utilizza i seguenti domini di proprietà di Google:

    Perché ricevo Server Error?

    Se vedi:

    The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
    

    È possibile che il firewall stia bloccando gli IP del bilanciatore del carico.

    Verifica che il firewall consenta il traffico da 130.211.0.0/22 e 35.191.0.0/16. Se questi IP non riescono a raggiungere il tuo backend, le tue applicazioni non saranno accessibili.

    Per le connessioni IAP TCP a VM specifiche, assicurati anche che la VM accetti connessioni dall'intervallo 35.235.240.0/20.

    Perché ricevo errori interni del server intermittenti?

    Messaggi come An internal server error occurred while authorizing your request. Error code X indicano errori del backend.

    I codici di errore 1, 30, 62, 63, 64 o 703 in genere indicano problemi temporanei. Implementa il backoff esponenziale per i nuovi tentativi.

    Come correggere gli errori di Identity Platform (codice di errore 38)

    Il codice di errore 38 indica che l'URL di autenticazione di Identity Platform per la tua identità esterna non è configurato correttamente in IAP.

    Per trovare l'URL:

    1. Vai alla pagina IAP.

      Vai a IAP

    2. Fai clic sulla scheda Applications (Applicazioni).

    3. Nella colonna Risorsa, trova la tua applicazione e seleziona la casella di controllo.

    4. In URL di autenticazione o URL di accesso, assicurati che l'URL sia corretto.

    Per scoprire come utilizzare le identità esterne con IAP, consulta Autentica gli utenti con identità esterne.

    Come posso risolvere gli errori di quota superata (codice di errore 429)?

    Il codice di errore 429 si verifica quando l'applicazione supera i limiti di richiesta di IAP. Il servizio applica quote separate:

    • Richieste basate su browser:360.000 al minuto per progetto

    • Richieste programmatiche:360.000 al minuto per progetto

    Una richiesta programmatica è una richiesta che include un'intestazione AUTHORIZATION o PROXY-AUTHORIZATION e nessun cookie IAP. Tutte le altre richieste (incluse quelle senza credenziali) sono considerate richieste del browser.

    Questi limiti si applicano collettivamente a tutte le risorse protette da IAP nel tuo progetto.

    Se riscontri errori relativi alla quota, considera queste soluzioni:

    • Evita i test di carico in produzione. Utilizza invece percorsi di rete alternativi che bypassano IAP.

    • Per il traffico tra servizi, implementa il backoff esponenziale per gestire correttamente gli errori 429.

    • Distribuisci le applicazioni con traffico elevato su più progetti.

    • Utilizza Apigee o soluzioni di API Gateway simili per le applicazioni basate su API.

    • Contatta l'assistenzaGoogle Cloud per richiedere un aumento della quota se il problema è causato dalla crescita organica.

    Problemi di accesso o comportamento imprevisto con IAP utilizzando Identity Platform

    Quando utilizzi un provider di identità (IdP) di terze parti con Identity Platform, i dati delle attestazioni di grandi dimensioni nel token ID possono far sì che il cookie di sessione IAP superi i limiti di dimensione del browser (in genere circa 4 KB). IAP memorizza le informazioni sulla sessione, incluse queste attestazioni, nei cookie del browser.

    Il superamento del limite di dimensioni dei cookie di sessione può causare errori di accesso o loop di accesso infiniti. Per evitare questi problemi, valuta le seguenti azioni:

    • Riduci le attestazioni: configura l'IdP di terze parti in modo che invii solo le attestazioni essenziali a Identity Platform. Riduci al minimo le dimensioni e il numero di claim inclusi nel token.

    • Controlla le dimensioni dei cookie: utilizza gli strumenti per sviluppatori del browser per controllare le dimensioni dei cookie impostati nel dominio della tua applicazione. Cerca avvisi relativi alle dimensioni dei cookie, in particolare per i cookie correlati a IAP.

    • Testa le attestazioni minime: configura temporaneamente l'IdP per inviare il set di attestazioni più piccolo possibile. Se in questo modo il problema si risolve, significa che la causa principale è la limitazione delle dimensioni dei cookie.

    Perché ricevo un errore HTTP 502 con "ID client/secret OAuth dell'Account Google vuoti"?

    Se accedi alla tua applicazione protetta da IAP e ricevi un errore HTTP 502 Bad Gateway con il messaggio Empty Google Account OAuth client ID(s)/secret(s)., IAP non riesce a trovare le credenziali OAuth per la tua applicazione.

    In genere questo errore si verifica nei seguenti scenari:

    • Il progetto non appartiene a un'organizzazione: il client OAuth predefinito gestito da Google è disponibile solo per i progetti che appartengono a un'organizzazioneGoogle Cloud . Se il tuo progetto non appartiene a un'organizzazione, devi configurare credenziali OAuth personalizzate per App Engine o per la tua piattaforma.
    • Le credenziali OAuth sono state eliminate o non sono state configurate: se in precedenza hai configurato credenziali OAuth personalizzate e il client OAuth è stato eliminato, ricrea le credenziali nella pagina Credenziali e aggiorna le impostazioni IAP come descritto in Utilizza client OAuth personalizzati con IAP.

    Codici di errore

    La tabella seguente elenca i codici di errore e i messaggi comuni che vengono restituiti durante la configurazione e l'utilizzo di IAP.

    Codice di errore Descrizione Risoluzione dei problemi
    7, HTTP 502 ID client o secret OAuth vuoto (Empty Google Account OAuth client ID(s)/secret(s).) Se il tuo progetto non appartiene a un'organizzazione, configura le credenziali OAuth personalizzate. In caso contrario, visita la pagina Credenziali per verificare l'ID client e il secret oppure controlla le impostazioni utilizzando i metodi API (GET per Compute Engine, GET per App Engine) e reimpostale con PATCH. Per saperne di più, consulta Errore HTTP 502.
    9 Reindirizzamento OAuth non riuscito Si tratta di un errore interno che è stato registrato automaticamente. Non è necessario alcun intervento da parte tua.
    9 (con regole di riscrittura del percorso) Reindirizzamento OAuth non riuscito Le regole di riscrittura del percorso del bilanciatore del carico impediscono il completamento di OAuth. Assicurati che tutti i backend dietro il bilanciatore del carico utilizzino ID client OAuth identici. Puoi aggiornarlo utilizzando il comando gcloud compute backend-services update.
    9 (con regole di instradamento del percorso) Reindirizzamento OAuth non riuscito Crea varianti delle regole dei percorsi per entrambe le versioni di ogni percorso (con e senza barre finali) e indirizzale allo stesso backend. Ad esempio, includi regole sia per /path/ che per /path.
    11 ID client OAuth configurato in modo errato Controlla l'ID client e il secret nella pagina Credenziali. Se sembrano corretti, ma non funzionano, utilizza i metodi API per controllare le impostazioni (GET per Compute Engine, GET per App Engine) e reimpostale con PATCH.
    13 Token OIDC non valido Vai alla pagina Credenziali per verificare che l'ID client non sia stato eliminato o modificato in modo errato.
    51 Il browser non supporta il pooling delle connessioni Chiedi agli utenti finali di aggiornare i browser alle versioni attuali. Per ulteriori dettagli sui requisiti di connessione, consulta Limita l'accesso alle risorse.
    52 Mancata corrispondenza tra nome host e certificato SSL L'amministratore di sistema deve aggiornare il certificato SSL in modo che corrisponda al nome host. Per indicazioni, consulta Limita l'accesso alle risorse.
    52 (con voce della mappa dei certificati principale) Mancata corrispondenza tra nome host e certificato SSL IAP non supporta le voci della mappa dei certificati principali. Utilizza voci separate per mappare ogni certificato al nome host corretto. Per indicazioni, consulta Crea una voce della mappa dei certificati.
    53 Nome host non presente nei domini consentiti Un amministratore deve aggiungere il tuo nome host all'elenco dei domini consentiti. Per istruzioni, consulta Limita l'accesso alle risorse.
    253, HTTP 429 Quota di richieste superata Hai raggiunto i limiti di richieste (360.000/min per ogni tipo di richiesta). Valuta la possibilità di distribuire i workload su più progetti, implementare la limitazione delle richieste lato client o contattare l'assistenza per richiedere un aumento della quota, se necessario per una crescita legittima.
    551 IAP abilitato in più posizioni Non puoi attivare IAP sia sulla regola di forwarding sia sul servizio di backend. Disattivalo in una località seguendo le indicazioni riportate in Attiva per Compute Engine.
    700, 701 Problemi relativi al provider di pool di forza lavoro Configura esattamente un provider per il pool di forza lavoro. Per i requisiti dettagliati, consulta Limitazioni dei pool di forza lavoro.
    705 ID client OAuth mancante per Workforce Identity Segui la procedura di configurazione completa: prima crea un ID client OAuth, poi aggiorna le impostazioni di IAP.
    708 Nome del pool di forza lavoro non valido Verifica che il pool di forza lavoro esista e utilizzi il formato corretto: locations/global/workforcePools/WORKFORCE_POOL_ID.
    4003 Problema di connessione o firewall Verifica che il processo della VM sia in esecuzione e in ascolto sulla porta prevista. Verifica inoltre che le regole firewall consentano le connessioni su quella porta.
    4010 Connessione chiusa dalla destinazione Reimposta la VM. Se i problemi persistono, esamina auth.log (di solito in /var/log/) o utilizza la console seriale per una diagnostica più dettagliata.
    4033 Problema relativo ad autorizzazioni, esistenza o stato della VM Verifica che ti sia stato assegnato il ruolo Tunnel User per la risorsa tramite la pagina IAP e verifica che la VM esista e sia in esecuzione.
    4047 L'istanza non esiste o è stata arrestata Assicurati che la VM sia accesa e che abbia completato completamente la sequenza di avvio.

    Se non riesci a risolvere il problema o non vedi l'errore elencato in questa pagina, contatta l'assistenza clienti Google Cloud con una descrizione dell'errore e della risposta che ricevi da una chiamata GET all'API. Assicurati di rimuovere il client secret dalla risposta.