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
- Apri una nuova finestra di navigazione in incognito (Chrome) o privata nel browser.
- Apri gli strumenti per sviluppatori del browser e vai alla scheda Rete.
- Seleziona l'opzione Conserva log per acquisire tutte le richieste durante i reindirizzamenti.
- Riproduci il problema accedendo all'URL in cui si verifica.
- Esamina le richieste di rete nel log per identificare il punto in cui si è verificato l'errore.
Analisi del traffico di rete
Quando accedi a un'applicazione protetta da IAP, viene visualizzata la pagina di accesso. Dopo l'autenticazione riuscita con il provider di identità, viene
inviata 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 relativi agli errori in base al dominio in cui si verificano:
- Errori su
iap.googleapis.com: se si verifica un errore sul dominioiap.googleapis.com, viene visualizzato un messaggio di errore dettagliato sulla pagina. Se l'errore è correlato alle impostazioni 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 Google Cloud ticket di assistenza. - Errori nel dominio dell'applicazione: se si verifica un errore dopo il reindirizzamento al dominio dell'applicazione protetto 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 Google Cloud ticket di assistenza.
Quali app posso proteggere con IAP?
IAP possono essere utilizzati con:
- App per l'ambiente standard di App Engine e l'ambiente 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 solo 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 all'URL potrebbe essere aggiunto un #. Questo è normale e non causa problemi durante l'accesso.
Perché le mie richieste non vanno a buon fine e restituiscono 405 Method Not Allowed?
Ciò si verifica in genere quando i cookie non sono allegati alle richieste. I metodi JavaScript non allegano cookie per impostazione predefinita.
I diversi metodi di richiesta richiedono approcci diversi:
- Per
XMLHttpRequest, impostawithCredentialssutrue. - Per l'API
Fetch,
imposta
credentialssuincludeosame-origin.
Per la gestione degli errori relativi alle sessioni, vedi 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 delle richieste per indicare il supporto
per i reindirizzamenti.
Perché le richieste POST non attivano 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 una delle seguenti opzioni:
- Un token ID in un'intestazione
Authorization: Bearer - Cookie validi (vedi aggiornamento delle sessioni)
Posso utilizzare IAP se ho disabilitato l'API?
Sì, le risorse protette da IAP rimangono accessibili quando l'API è disattivata, 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'utilizzo del ruolo Proprietario (roles/owner) a favore di autorizzazioni più granulari. Per indicazioni, consulta le best practice di 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:
tunnel.cloudproxy.appmtls.tunnel.cloudproxy.app(quando è abilitato l'accesso basato su certificati)
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 backend, le tue applicazioni
non saranno accessibili.
Per le connessioni TCP IAP 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 di backend.
I codici di errore 1, 30, 62, 63, 64 o 703 in genere riflettono problemi
temporanei. Implementa il backoff esponenziale per i nuovi tentativi.
Come posso risolvere gli errori di superamento della quota (codice di errore 429)?
Il codice di errore 429 si verifica quando la tua applicazione supera i limiti di richieste di IAP. Il servizio applica quote separate:
- Richieste basate sul browser:360.000 al minuto per progetto
- Richieste programmatiche:360.000 al minuto per progetto
Una richiesta di pubblicità 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 complessivamente a tutte le risorse protette da IAP nel tuo progetto.
Se riscontri errori relativi alla quota, prova queste soluzioni:
- Evita i test di carico in produzione. Utilizza invece percorsi di rete alternativi che bypassano IAP.
- Per il traffico da servizio a servizio, implementa il backoff esponenziale per gestire gli errori 429 in modo controllato.
- Distribuisci le applicazioni con traffico elevato su più progetti.
- Utilizza Apigee o soluzioni di gateway API simili per applicazioni basate su API.
- Contatta l'assistenzaGoogle Cloud per gli aumenti della quota se il problema è causato dalla crescita organica.
Codici di errore
La tabella seguente elenca i codici e i messaggi di errore comuni restituiti durante la configurazione e l'utilizzo di IAP.
| Codice di errore | Descrizione | Risoluzione dei problemi |
|---|---|---|
| 7 | ID client OAuth o secret vuoto | Visita la pagina delle credenziali per verificare l'ID client e il client secret. 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. |
| 9 | Reindirizzamento OAuth non riuscito | Si tratta di un errore interno 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 routing del percorso) | Reindirizzamento OAuth non riuscito | Crea varianti della regola del percorso 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 client 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 pool di connessioni | Chiedi agli utenti finali di aggiornare i browser alle versioni correnti. Per ulteriori dettagli sui requisiti di connessione, consulta Limitare 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 informazioni, consulta Limitare l'accesso alle risorse. |
| 52 (con voce mappa di 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 Creare 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 Limitare l'accesso alle risorse. |
| 253, HTTP 429 | Quota per le richieste superata | Hai raggiunto i limiti delle richieste (360.000 al minuto per ogni tipo di richiesta). Valuta la possibilità di distribuire i carichi di lavoro su più progetti, implementare la limitazione delle richieste lato client o contattare l'assistenza per aumenti di quota, se necessari per una crescita legittima. |
| 551 | Acquisti IAP abilitati in più posizioni | Non puoi abilitare IAP sia sulla regola di forwarding sia sul servizio di backend. Disattivalo in una posizione seguendo le indicazioni riportate in Abilita 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 la sezione Limitazioni dei pool di forza lavoro. |
| 705 | ID client OAuth mancante per l'identità della forza lavoro | Segui l'intera procedura di configurazione: prima crea un ID client OAuth, poi aggiorna le impostazioni 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 questa 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 di autorizzazione, esistenza o stato della VM | Conferma di aver assegnato il ruolo Utente tunnel per la risorsa tramite la pagina IAP e verifica che la VM esista e sia in esecuzione. |
| 4047 | L'istanza non esiste o è arrestata | Assicurati che la VM sia accesa e abbia completato 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.