Domande frequenti e risoluzione dei problemi

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

Quali app posso proteggere con IAP?

IAP può essere utilizzato con:

  • Ambiente standard di App Engine e app per l'ambiente flessibile di App Engine.
  • Istanze Compute Engine con servizi di backend di bilanciamento del carico HTTP(S).
  • dei container Google Kubernetes Engine.
  • App Cloud Run con servizi di backend di bilanciamento del carico HTTP(S).

Attualmente, IAP non può essere utilizzato con Cloud CDN.

Perché è presente un simbolo # alla fine dell'URL dopo aver eseguito l'accesso all'app?

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

Perché le mie richieste non riescono e restituiscono un codice di stato 405 Metodo non consentito?

Questo può verificarsi se non alleghi i cookie alle richieste. Per impostazione predefinita, i metodi JavaScript non allegano i cookie alle richieste.

Il modo in cui vengono inclusi i cookie varia a seconda del metodo di richiesta. Ad esempio, per le richieste inviate con un oggetto XMLHttpRequest è necessaria la proprietà withCredentials impostata su true, mentre per le richieste inviate con l'API fetch è necessaria l'opzione credentials impostata su include o same-origin.

Per informazioni sulla gestione degli errori che si verificano solo dopo un certo periodo di tempo, consulta Gestione delle sessioni IAP.

Perché ricevo un codice di stato HTTP 401 non autorizzato anziché un reindirizzamento HTTP 302?

IAP risponde con un codice di stato 302 Redirect quando un client è configurato per gestire i reindirizzamenti. Per indicare che il tuo client è in grado di gestire i reindirizzamenti, assicurati che HTTP Accept="text/html,*/*" sia nell'intestazione delle richieste.

Perché le richieste POST non attivano i reindirizzamenti?

Per attivare i reindirizzamenti, assicurati che le chiamate a IAP non siano richieste POST. I browser non reindirizzano come risposta alle richieste POST. Per questo motivo, IAP risponde con un codice di stato 401 Unauthorized anziché 302 Redirect.

Se hai bisogno di IAP per gestire le richieste POST, assicurati che il token ID o i cookie validi vengano trasmessi nell'intestazione della richiesta.

Includi il token ID nell'intestazione Authorization: Bearer per effettuare una richiesta autenticata alla risorsa con protezione IAP. Ottieni cookie validi aggiornando la sessione.

IAP prevede i seguenti prefissi cookie:

  • GCP_IAAP_AUTH_TOKEN_<random_string>
  • GCP_IAP_UID

È normale che questi cookie vengano visualizzati più volte in un'intestazione della richiesta.

Posso utilizzare IAP se ho disattivato l'API?

Sì, l'accesso alle risorse protette con IAP funziona con l'API disabilitata, ma non potrai apportare modifiche alle autorizzazioni IAM.

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

Innanzitutto, evita di utilizzare il più possibile il ruolo Proprietario (roles/owner). Il ruolo Proprietario concede ampie autorizzazioni in Google Cloud. L'assegnazione di ruoli e autorizzazioni più granulari può aumentare la sicurezza del progetto. Per scoprire di più, consulta le best practice per IAM.

Se non riesci a ridurre l'utilizzo del ruolo Proprietario, puoi bloccare IAP per TCP utilizzando le regole firewall.

Quale dominio utilizza IAP per TCP?

IAP utilizza i seguenti domini, di proprietà di Google:

Se ti connetti tramite un server proxy o un firewall, assicurati che consentano il traffico verso questi domini e che non blocchino l'utilizzo delle connessioni WebSocket.

Se blocchi il traffico verso questi domini, non potrai utilizzare IAP per TCP. Potresti ricevere uno dei vari messaggi di errore.

Se utilizzi gcloud, il messaggio di errore potrebbe essere

Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Se utilizzi SSH dal browser, il messaggio di errore è

Cloud Identity-Aware Proxy Failed

Non c'è nessun codice di errore associato.

Perché ricevo l'errore Server Error?

Se ricevi il seguente messaggio di errore, è possibile che il firewall non consenta gli IP 130.211.0.0/22 e 35.191.0.0/16:

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

Se gli IP del bilanciatore del carico 130.211.0.0/22 e 35.191.0.0/16 non riescono a raggiungere il backend, le applicazioni potrebbero non essere accessibili. Per saperne di più, consulta Configurazione di un bilanciatore del carico HTTPS esterno.

Se usi IAP per TCP per connetterti a una VM specifica, la VM deve accettare connessioni da indirizzi compresi nell'intervallo 35.235.240.0/20.

Perché ricevo errori interni del server intermittenti?

La ricezione di un messaggio di errore con il formato: An internal server error occurred while authorizing your request. Error code X indica un errore interno. Gli errori interni con i codici di errore 1 o 30 indicano errori di backend. Una frequenza bassa di questi errori del backend indica spesso un problema temporaneo. I client dovrebbero ritentare la richiesta utilizzando il backoff esponenziale.

Codici di errore

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

Codice o messaggio di errore Descrizione Risolvere i problemi
Codice di errore 7 L'ID client OAuth o i valori dei secret sono vuoti. Verifica che il tuo ID client e il secret siano configurati correttamente per la tua app visualizzando la pagina Credenziali. Se il tuo ID client e il tuo secret sembrano configurati correttamente, utilizza il metodo GET per vedere lo stato attuale e il metodo PATCH per reimpostare l'ID client e il secret:
API Compute Engine: GET, PATCH
API App Engine: GET, PATCH
Codice di errore 9 Un reindirizzamento OAuth non è stato completato. Si tratta di un errore interno ed è stato registrato per la revisione.
Codice di errore 9 (con regole di riscrittura del percorso) Un reindirizzamento OAuth non è stato completato. Le regole di riscrittura del percorso del bilanciatore del carico Google Cloud interferiscono con la capacità di IAP di completare un flusso OAuth. Se ospiti più backend protetti da un bilanciatore del carico Google Cloud e utilizzi regole di riscrittura del percorso, assicurati che entrambi i backend utilizzino gli stessi ID client OAuth per IAP. Puoi modificare un ID client OAuth per un servizio di backend utilizzando il comando gcloud compute backend-services update.
Codice di errore 11 Il tuo ID client OAuth non è configurato correttamente. Verifica che il tuo ID client e il secret siano configurati correttamente per la tua app visualizzando la pagina Credenziali. Se il tuo ID client e il tuo secret sembrano configurati correttamente, utilizza il metodo GET per vedere lo stato attuale e il metodo PATCH per reimpostare l'ID client e il secret:
API Compute Engine: GET, PATCH
API App Engine: GET, PATCH
Codice di errore 13 Il token OpenID Connect (OIDC) non è valido. Assicurati che l'ID client configurato per IAP non venga eliminato visualizzando la pagina Credenziali.
Codice di errore 51 Il tuo browser non supporta il pool di connessioni. Un browser attuale e aggiornato può gestire gli errori di pool di connessioni. Assicurati che gli utenti finali utilizzino un browser corrente e aggiornato. Per saperne di più, vedi Limitare l'accesso alle risorse a domini specifici.
Codice di errore 52 Il nome host fornito non corrisponde al certificato SSL sul server. L'amministratore di sistema potrebbe dover aggiornare il certificato SSL. Per saperne di più, vedi Limitare l'accesso alle risorse a domini specifici.
Codice di errore 53 Il nome host non corrisponde ai domini consentiti dall'amministratore di IAP. L'amministratore deve aggiornare l'elenco dei domini consentiti per includere il nome host. Per saperne di più, vedi Limitare l'accesso alle risorse a domini specifici.
Codice di errore 429 Il progetto supera la soglia al minuto per le richieste. I progetti IAP sono limitati a un massimo di 360.000 richieste al minuto. Se si verifica questo errore, riduci il volume di richieste per il tuo progetto. Puoi contattare l'assistenza Google Cloud se hai domande.
Codice di errore 4003 Potrebbe significare che l'istanza non è in ascolto sulla porta a cui stai tentando di connetterti o che il firewall è chiuso. Ciascuno di questi problemi potrebbe causare la mancata riuscita del test di connettività all'avvio dell'istanza VM. Assicurati che il processo di ascolto sulla VM sia in esecuzione e sulla porta corretta. Inoltre, verifica che il Firewall di Google Cloud sia configurato correttamente e che sia aperto sulla porta a cui ti stai collegando.
Codice di errore 4033 Non hai l'autorizzazione per accedere all'istanza, l'istanza non esiste o l'istanza è stata arrestata. Assicurati di avere il ruolo IAM Utente del tunnel con protezione IAP applicato alla risorsa a cui ti stai collegando visualizzando la pagina Identity-Aware Proxy.
Codice di errore 4047 L'istanza non esiste oppure l'istanza è stata arrestata. Assicurati che la VM sia accesa e abbia completato l'avvio.

Se non riesci a risolvere il problema, contatta l'assistenza clienti fornendo la descrizione dell'errore e la risposta che riceverai da una chiamata GET all'API. Puoi rimuovere il client secret dalla risposta.