Este documento fornece orientações para solução de problemas e respostas a perguntas frequentes sobre o Identity-Aware Proxy (IAP).
Solução de problemas de login na Web
Se você encontrar erros durante o login ou ao acessar o aplicativo, inspecionar o tráfego de rede do navegador pode ajudar a diagnosticar o problema.
Como inspecionar o tráfego de rede
- Abra uma nova janela anônima (Chrome) ou particular no navegador.
- Abra as ferramentas para desenvolvedores do navegador e acesse a guia Rede.
- Selecione a opção Preserve log para capturar todas as solicitações durante os redirecionamentos.
- Reproduza o problema acessando o URL em que ele está ocorrendo.
- Analise as solicitações de rede no registro para identificar onde o erro ocorreu.
Analisar o tráfego de rede
Ao acessar um aplicativo protegido pelo IAP, você é redirecionado para
a página de login. Após a autenticação com o provedor de identidade, uma
solicitação é feita ao domínio https://iap.googleapis.com para concluir
a autenticação antes que um cookie do IAP seja emitido e você seja
redirecionado para o aplicativo.
É possível resolver problemas com base no domínio em que eles ocorrem:
- Erros em
iap.googleapis.com: se ocorrer um erro no domínioiap.googleapis.com, uma mensagem de erro detalhada será exibida na página. Se o erro estiver relacionado às configurações do IAP, como problemas com o cliente OAuth, ajuste as configurações. Se você encontrar erros de cliente que não sabe como resolver ou se encontrar erros de servidor, abra um tíquete de suporte doGoogle Cloud . - Erros no domínio do aplicativo: se ocorrer um erro depois que você for redirecionado para o domínio do aplicativo protegido pelo IAP, um código de erro será exibido. Consulte a seção Códigos de erro para detalhes sobre erros comuns. Se não for possível resolver o problema, abra um tíquete de suporte doGoogle Cloud .
Quais apps posso proteger com o IAP?
O IAP pode ser usado com:
Aplicativos do ambiente padrão do App Engine e do ambiente flexível do App Engine
Instâncias do Compute Engine com serviços de back-end de balanceamento de carga HTTP(S)
contêineres do Google Kubernetes Engine.
Apps do Cloud Run com serviços de back-end de balanceamento de carga HTTP(S)
Cloud Run com um clique e sem serviços de back-end de balanceamento de carga
O IAP não pode ser usado com o Cloud CDN.
Por que há um # no fim do meu URL depois de fazer login no meu app?
Em alguns navegadores e sob certas condições, um
#pode ser anexado ao URL após a autenticação. Isso é normal e não causará problemas ao fazer login.Por que minhas solicitações estão falhando e retornando
405 Method Not Allowed?Isso geralmente acontece quando os cookies não estão anexados às suas solicitações. Os métodos JavaScript não anexam cookies por padrão.
Métodos de solicitação diferentes exigem abordagens diferentes:
Para
XMLHttpRequest, definawithCredentialscomotrue.Para a API Fetch, defina
credentialscomoincludeousame-origin.
Por que estou recebendo um
HTTP 401 Unauthorizedem vez de um302 Redirect?O IAP envia um
302 Redirectsomente quando o cliente está configurado para processar redirecionamentos.Adicione
HTTP Accept="text/html,*/*"aos cabeçalhos da solicitação para indicar suporte a redirecionamentos.Por que as solicitações POST não estão acionando redirecionamentos?
Os navegadores não redirecionam em resposta a solicitações POST. Em vez disso, o IAP retorna um código de status
401 Unauthorized.Para solicitações POST para recursos protegidos pelo IAP, inclua uma das seguintes opções:
Um token de ID em um cabeçalho
Authorization: BearerCookies válidos (consulte Como atualizar sessões)
Posso usar o IAP se eu tiver desativado a API?
Sim, os recursos protegidos pelo IAP permanecem acessíveis quando a API está desativada, mas não é possível modificar as permissões do IAM.
Como posso impedir que usuários com o papel de Proprietário usem o IAP para TCP?
O ideal é limitar o uso do papel de Proprietário (
roles/owner) em favor de permissões mais granulares. Consulte as práticas recomendadas do IAM para mais orientações.Se isso não for possível, bloqueie o IAP para TCP usando regras de firewall.
Qual domínio o IAP para TCP usa?
O IAP usa os seguintes domínios do Google:tunnel.cloudproxy.appmtls.tunnel.cloudproxy.app(quando o acesso baseado em certificado está ativado)
Por que estou recebendo
Server Error?Se você encontrar:
The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.É possível que o firewall esteja bloqueando os IPs do balanceador de carga.
Verifique se o firewall permite o tráfego de
130.211.0.0/22e35.191.0.0/16. Se esses IPs não conseguirem acessar o back-end, seus aplicativos ficarão inacessíveis.Para conexões TCP do IAP com VMs específicas, verifique também se a VM aceita conexões do intervalo
35.235.240.0/20.Por que estou recebendo erros internos intermitentes do servidor?
Mensagens como
An internal server error occurred while authorizing your request. Error code Xindicam falhas de back-end.Os códigos de erro
1,30,62,63,64ou703geralmente refletem problemas temporários. Implemente a espera exponencial para novas tentativas.Como corrigir erros do Identity Platform (código do erro 38)
O código de erro
38indica que o URL de autenticação do Identity Platform para sua identidade externa não está configurado corretamente no IAP.Para encontrar o URL, faça o seguinte:
Acesse a página do IAP.
Clique na guia Aplicativos.
Na coluna Recurso, encontre seu aplicativo e marque a caixa de seleção.
Em URL de autenticação ou URL de login, verifique se o URL está correto.
Para saber como usar identidades externas com o IAP, consulte Autenticar usuários com identidades externas.
Como posso resolver erros de cota excedida (código do erro 429)?
O código do erro 429 ocorre quando seu aplicativo excede os limites de solicitação do IAP. O serviço aplica cotas separadas:
Solicitações baseadas em navegador:360.000 por minuto por projeto
Solicitações programáticas:360.000 por minuto por projeto
Uma solicitação programática é aquela que inclui um cabeçalho
AUTHORIZATIONouPROXY-AUTHORIZATIONe nenhum cookie do IAP. Todas as outras solicitações (incluindo aquelas sem credenciais) são consideradas solicitações do navegador.Esses limites se aplicam coletivamente a todos os recursos protegidos pelo IAP no seu projeto.
Se você estiver enfrentando erros relacionados a cotas, considere estas soluções:
Evite fazer testes de carga na produção. Em vez disso, use caminhos de rede alternativos que ignoram o IAP.
Para o tráfego de serviço para serviço, implemente a espera exponencial para lidar com erros 429 de maneira adequada.
Distribua aplicativos de alto tráfego em vários projetos.
Use a Apigee ou soluções de gateway de API semelhantes para aplicativos baseados em API.
Entre em contato com o suporte doGoogle Cloud para aumentar as cotas se o crescimento orgânico estiver causando o problema.
Problemas de login ou comportamento inesperado com o IAP usando o Identity Platform
Ao usar um provedor de identidade (IdP) de terceiros com o Identity Platform, dados de declarações grandes no token de ID podem fazer com que o cookie de sessão do IAP exceda os limites de tamanho do navegador (normalmente em torno de 4 KB). O IAP armazena informações de sessão, incluindo essas declarações, em cookies do navegador.
Exceder o limite de tamanho do cookie de sessão pode causar falhas de login ou loops de login infinitos. Para evitar esses problemas, considere as seguintes ações:
Reduzir declarações: configure o IdP de terceiros para enviar apenas declarações essenciais ao Identity Platform. Minimize o tamanho e o número de declarações incluídas no token.
Inspecione o tamanho dos cookies: use as ferramentas para desenvolvedores do navegador para verificar o tamanho dos cookies definidos no domínio do aplicativo. Procure avisos relacionados ao tamanho do cookie, especialmente para cookies relacionados ao IAP.
Testar declarações mínimas: configure temporariamente o IdP para enviar o menor conjunto possível de declarações. Se isso resolver o problema, significa que a limitação de tamanho do cookie é a causa raiz.
Por que estou recebendo um erro HTTP 502 com "IDs do cliente/secrets do cliente OAuth da Conta do Google vazios"?
Se você acessar o aplicativo protegido pelo IAP e receber um erro
HTTP 502 Bad Gatewaycom a mensagemEmpty Google Account OAuth client ID(s)/secret(s)., o IAP não poderá encontrar as credenciais do OAuth para o aplicativo.Esse erro geralmente ocorre nos seguintes cenários:
- O projeto não pertence a uma organização:o cliente OAuth padrão gerenciado pelo Google só está disponível para projetos que pertencem a uma organização doGoogle Cloud . Se o projeto não pertencer a uma organização, será necessário configurar credenciais OAuth personalizadas para o App Engine ou para a respectiva plataforma.
- As credenciais do OAuth foram excluídas ou não foram configuradas:se você já configurou credenciais personalizadas do OAuth e o cliente OAuth foi excluído, recrie as credenciais na página "Credenciais" e atualize as configurações do IAP, conforme descrito em Usar clientes OAuth personalizados com o IAP.
Códigos de erro
A tabela a seguir lista códigos de erro comuns e mensagens retornadas ao configurar e usar o IAP.
Código do erro Descrição Solução de problemas 7, HTTP 502 ID do cliente ou chave secreta do OAuth vazios ( Empty Google Account OAuth client ID(s)/secret(s).)Se o projeto não pertencer a uma organização, configure credenciais OAuth personalizadas. Caso contrário, acesse a página "Credenciais" para verificar o ID do cliente e a chave secreta ou verifique as configurações usando os métodos da API ( GETpara o Compute Engine,GETpara o App Engine) e redefina-as comPATCH. Para mais informações, consulte Erro HTTP 502.9 Falha no redirecionamento do OAuth Este é um erro interno que foi registrado automaticamente. Você não precisa fazer nada. 9 (com regras de reescrita de caminho) Falha no redirecionamento do OAuth As regras de reescrita de caminho do balanceador de carga estão impedindo a conclusão do OAuth. Verifique se todos os back-ends por trás do balanceador de carga usam IDs de cliente OAuth idênticos. É possível atualizar isso usando o comando gcloud compute backend-services update.9 (com regras de roteamento de rota) Falha no redirecionamento do OAuth Crie variantes de regras de caminho para as duas versões de cada caminho (com e sem barras finais) e direcione-as para o mesmo back-end. Por exemplo, inclua regras para /path/e/path.11 ID do cliente OAuth configurado incorretamente Verifique o ID do cliente e a chave secreta na página "Credenciais". Se elas parecerem corretas, mas não estiverem funcionando, use os métodos da API para verificar as configurações ( GETpara o Compute Engine,GETpara o App Engine) e redefina-as comPATCH.13 Token OIDC inválido Acesse a página "Credenciais" para confirmar que o ID do cliente não foi excluído ou modificado incorretamente. 51 O navegador não é compatível com o pool de conexões Peça aos usuários finais que atualizem os navegadores para as versões atuais. Para mais detalhes sobre os requisitos de conexão, consulte Restringir o acesso a recursos. 52 Incompatibilidade entre o nome do host e o certificado SSL O administrador do sistema precisa atualizar o certificado SSL para corresponder ao nome do host. Consulte Restringir o acesso a recursos para mais orientações. 52 (com item no mapa de certificados principal) Incompatibilidade entre o nome do host e o certificado SSL O IAP não é compatível com entradas de mapa de certificados primários. Use entradas separadas para mapear cada certificado para o nome de host correto. Consulte Criar um item no mapa de certificados para mais orientações. 53 O nome do host não está nos domínios permitidos Um administrador precisa adicionar seu nome de host à lista de domínios permitidos. Consulte Restringir o acesso a recursos para ver instruções. 253, HTTP 429 A cota de solicitações foi excedida Você atingiu os limites de solicitação (360.000/min para cada tipo de solicitação). Considere distribuir as cargas de trabalho em vários projetos, implementar a limitação de solicitações do lado do cliente ou entrar em contato com o suporte para aumentar as cotas, se necessário, para um crescimento legítimo. 551 IAP ativado em vários lugares Não é possível ativar o IAP na regra de encaminhamento e no serviço de back-end. Desative-o em um local seguindo as orientações em Ativar para o Compute Engine. 700, 701 Problemas com o provedor de pool de colaboradores Configure exatamente um provedor para seu pool de força de trabalho. Consulte as limitações dos pools de colaboradores para ver os requisitos detalhados. 705 ID do cliente OAuth ausente para identidade de colaboradores Siga o processo de configuração completo: primeiro crie um ID do cliente OAuth e depois atualize as configurações do IAP. 708 Nome do pool de força de trabalho inválido Verifique se o pool de colaboradores existe e usa o formato correto: locations/global/workforcePools/WORKFORCE_POOL_ID.4003 Problema de conexão ou firewall Verifique se o processo da VM está em execução e detectando na porta esperada. Verifique também se as regras de firewall permitem conexões nessa porta. 4010 Conexão encerrada pelo destino Redefina a VM. Se os problemas persistirem, examine auth.log(geralmente em/var/log/) ou use o console serial para diagnósticos mais detalhados.4033 Problema de permissão, existência ou estado da VM Confirme se você tem o papel de usuário do túnel atribuído ao recurso na página do IAP e verifique se a VM existe e está em execução. 4047 A instância não existe ou foi interrompida Verifique se a VM está ligada e se a sequência de inicialização foi concluída. Se não for possível resolver o problema ou se o erro não estiver listado nesta página, entre em contato com o Cloud Customer Care com uma descrição do erro e a resposta que você recebeu de uma chamada
GETpara a API. Remova a chave secreta do cliente da resposta.