Domande frequenti e risoluzione dei problemi

Questo documento contiene le domande frequenti su Identity-Aware Proxy (IAP).

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, imposta withCredentials su true
  • Per l'API Fetch, imposta credentials su include o same-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 della richiesta 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:

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:

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 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.
  • Distribuire applicazioni con traffico elevato su più progetti
  • Utilizza Apigee o soluzioni 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 o secret OAuth 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 pooling delle 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 mappatura 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 workload 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.