Domande frequenti e risoluzione dei problemi

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

Quali app posso proteggere con gli acquisti in-app?

Gli acquisti in-app possono essere utilizzati con:

  • App per l'ambiente standard di App Engine e per l'ambiente flessibile di App Engine
  • Istanze Compute Engine con servizi di backend per il bilanciamento del carico HTTP(S)
  • Container Google Kubernetes Engine
  • App Cloud Run con servizi di backend per il bilanciamento del carico HTTP(S)

IAP non può essere utilizzato con Cloud CDN.

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

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

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

Questo accade in genere quando i cookie non sono associati alle tue richieste. I metodi JavaScript non associano 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 la gestione degli errori relativi alla sessione, consulta Gestire le 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 i reindirizzamenti?

I browser non eseguono reindirizzamenti 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 gli acquisti in-app se ho disattivato 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 l'IAP per TCP?

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

Se non è possibile, puoi bloccare l'IAP per TCP utilizzando le regole del 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 TCP IAP a VM specifiche, assicurati inoltre che la VM accetti le 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 faccio a risolvere gli errori relativi alla 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 complessivamente a tutte le risorse protette da IAP nel progetto.

Se riscontri errori relativi alla quota, valuta queste soluzioni:

  • Evita i test di carico in produzione: utilizza percorsi di rete alternativi che aggirino l'IAP
  • Per il traffico da servizio a servizio, implementa il backoff esponenziale per gestire in modo elegante gli errori 429
  • Distribuisci le applicazioni con traffico elevato su più progetti
  • Utilizza Apigee o soluzioni di gateway API simili per le applicazioni basate su API
  • Contatta l'Google Cloud assistenza per richiedere 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 dell'IAP.

Codice di errore Descrizione Risoluzione dei problemi
7 ID client OAuth o secret vuoto Vai alla pagina Credenziali per verificare il tuo ID client e il tuo client secret. Se sembrano corrette, ma non funzionano, utilizza i metodi API per controllare le impostazioni (GET per Compute Engine, GET per App Engine) e ripristinarle 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 dei percorsi 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 dei percorsi) 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 client secret nella pagina Credenziali. Se sembrano corrette, ma non funzionano, utilizza i metodi API per controllare le impostazioni (GET per Compute Engine, GET per App Engine) e ripristinale con PATCH.
13 Token OIDC non valido Vai alla pagina Credenziali per verificare che l'ID cliente 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 del nome host/del certificato SSL L'amministratore di sistema deve aggiornare il certificato SSL in modo che corrisponda al nome host. Per indicazioni, consulta Limitare l'accesso alle risorse.
52 (con voce mappa di certificati principale) Mancata corrispondenza del nome host/del certificato SSL IAP non supporta le voci della mappa del certificato principale. 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.
429 Quota di richieste superata Hai raggiunto i limiti di richiesta (360.000/min per ogni tipo di richiesta). Valuta la possibilità di distribuire i carichi di lavoro su più progetti, di implementare il throttling delle richieste lato client o di contattare l'assistenza per richiedere aumenti di quota, se necessario per una crescita legittima.
551 Abilitazione degli acquisti in-app in più posizioni Non puoi attivare l'IAP sia sulla regola di inoltro sia sul servizio di backend. Disattivalo in una posizione seguendo le indicazioni riportate in Abilitare per Compute Engine.
700, 701 Problemi relativi al provider del pool di forza lavoro Configura esattamente un provider per il pool di forza lavoro. Per i requisiti dettagliati, consulta le limitazioni dei pool di forza lavoro.
705 Manca l'ID client OAuth per l'identità del personale Segui la procedura di configurazione completa: 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 del 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 di autorizzazione, esistenza o stato della VM Verifica di avere il ruolo Tunnel User assegnato per la risorsa tramite la pagina IAP e verifica che la VM esista ed 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 se l'errore non è elencato in questa pagina, contatta l'assistenza clienti Google Cloud fornendo una descrizione dell'errore e la risposta che ricevi da una chiamata GET all'API. Assicurati di rimuovere il segreto client dalla risposta.