Resolução de problemas e perguntas frequentes

Este documento fornece orientações de resolução de problemas e respostas a Perguntas frequentes sobre o Identity-Aware Proxy (IAP).

Resolução de problemas de início de sessão na Web

Se encontrar erros durante o início de sessão ou ao aceder à sua aplicação, a inspeção do tráfego de rede do navegador pode ajudar a diagnosticar o problema.

Inspeção do tráfego de rede

  1. Abra uma nova janela de navegação anónima (Chrome) ou privada no navegador.
  2. Abra as ferramentas para programadores do navegador e aceda ao separador Rede.
  3. Selecione a opção Manter registo para capturar todos os pedidos durante os redirecionamentos.
  4. Reproduza o problema navegando para o URL onde está a ter problemas.
  5. Examine os pedidos de rede no registo para identificar onde ocorreu o erro.

Analisar o tráfego de rede

Quando acede a uma aplicação protegida pelo IAP, é redirecionado para a página de início de sessão. Após a autenticação bem-sucedida com o fornecedor de identidade, é feita uma solicitação ao domínio https://iap.googleapis.com para concluir a autenticação antes de ser emitido um cookie de IAP e o utilizador ser redirecionado para a aplicação.

Pode resolver problemas com base no domínio onde o erro ocorre:

  • Erros em iap.googleapis.com: se ocorrer um erro no domínio iap.googleapis.com, é apresentada uma mensagem de erro detalhada na página. Se o erro estiver relacionado com as suas definições de IAP, como problemas de cliente OAuth, ajuste as definições. Se encontrar erros do cliente que não sabe como resolver ou se vir erros do servidor, abra um Google Cloud pedido de apoio técnico.
  • Erros no domínio da aplicação: se ocorrer um erro depois de ser redirecionado para o domínio da aplicação protegido pela IAP, é apresentado um código de erro. Consulte a secção Códigos de erro para ver detalhes sobre erros comuns. Se não conseguir resolver o problema, abra um Google Cloud pedido de apoio técnico.

Que apps posso proteger com a IAP?

As IAPs podem ser usadas com o seguinte:

  • Apps 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)
  • Contentores 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

Não é possível usar o IAP com o Cloud CDN.

Por que motivo existe um # no final do meu URL depois de iniciar sessão na minha app?

Em alguns navegadores e em determinadas condições, pode ser anexado um # ao URL após a autenticação. Isto é normal e não causa problemas ao iniciar sessão.

Por que motivo os meus pedidos estão a falhar e a devolver 405 Method Not Allowed?

Normalmente, isto acontece quando os cookies não estão anexados aos seus pedidos. Os métodos JavaScript não anexam cookies por predefinição.

Os diferentes métodos de pedido requerem abordagens diferentes:

  • Para XMLHttpRequest, defina withCredentials como true.
  • Para a API Fetch, defina credentials como include ou same-origin.

Para processar erros relacionados com a sessão, consulte o artigo Gerir sessões de IAP.

Por que motivo estou a receber um HTTP 401 Unauthorized em vez de um 302 Redirect?

A IAP envia um 302 Redirect apenas quando o seu cliente está configurado para processar redirecionamentos.

Adicione HTTP Accept="text/html,*/*" aos cabeçalhos do pedido para indicar suporte para redirecionamentos.

Por que motivo os pedidos POST não estão a acionar redirecionamentos?

Os navegadores não fazem o redirecionamento em resposta a pedidos POST. Em alternativa, o IAP devolve um código de estado 401 Unauthorized.

Para pedidos POST a recursos protegidos pelo IAP, inclua uma das seguintes opções:

  • Um token de ID num cabeçalho Authorization: Bearer
  • Cookies válidos (consulte a secção sobre atualizar sessões)

Posso usar as CAsI se tiver desativado a API?

Sim, os recursos protegidos pelo IAP permanecem acessíveis quando a API está desativada, mas não pode modificar as autorizações de IAM.

Como posso impedir que os utilizadores com a função Proprietário usem a IAP para TCP?

Idealmente, limite a utilização da função de proprietário (roles/owner) a favor de autorizações mais detalhadas. Consulte as práticas recomendadas de IAM para receber orientações.

Se tal não for possível, pode bloquear a IAP para TCP através de regras de firewall.

Que domínio usa o IAP para TCP?

A IAP usa os seguintes domínios pertencentes à Google:

Por que motivo estou a receber Server Error?

Se vir:

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

É possível que a sua firewall esteja a bloquear os IPs do equilibrador de carga.

Verifique se a sua firewall permite tráfego de 130.211.0.0/22 e 35.191.0.0/16. Se estes IPs não conseguirem alcançar o seu back-end, as suas aplicações vão ficar inacessíveis.

Para ligações TCP do IAP a VMs específicas, certifique-se também de que a VM aceita ligações do intervalo 35.235.240.0/20.

Por que motivo estou a receber erros internos do servidor intermitentes?

As mensagens como An internal server error occurred while authorizing your request. Error code X indicam falhas no back-end.

Normalmente, os códigos de erro 1, 30, 62, 63, 64 ou 703 refletem problemas temporários. Implemente a retirada exponencial para novas tentativas.

Como posso resolver erros de quota excedida (código de erro 429)?

O código de erro 429 ocorre quando a sua aplicação excede os limites de pedidos do IAP. O serviço aplica quotas separadas:

  • Pedidos baseados no navegador: 360 000 por minuto por projeto
  • Pedidos programáticos: 360 000 por minuto por projeto

Um pedido programático é aquele que inclui um cabeçalho AUTHORIZATION ou PROXY-AUTHORIZATION e nenhum cookie de IAP. Todos os outros pedidos (incluindo os que não têm credenciais) são considerados pedidos do navegador.

Estes limites aplicam-se coletivamente a todos os recursos protegidos pelo IAP no seu projeto.

Se estiver a ter erros relacionados com a quota, considere estas soluções:

  • Evite testes de carga em produção. Em alternativa, use caminhos de rede alternativos que ignorem a IAP.
  • Para o tráfego de serviço para serviço, implemente a retirada exponencial para processar erros 429 de forma adequada.
  • Distribua aplicações com tráfego elevado por vários projetos.
  • Use o Apigee ou soluções de gateway de API semelhantes para aplicações baseadas em API.
  • Contacte o Google Cloud apoio técnico para aumentar a quota se o crescimento orgânico estiver a causar o problema.

Problemas de início de sessão ou comportamento inesperado com a IAP através da Identity Platform

Quando usa um fornecedor de identidade (IdP) de terceiros com a Identity Platform, os dados de reivindicaçõ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, cerca de 4 KB). As lojas de IAP armazenam informações de sessão, incluindo estas reivindicações, em cookies do navegador.

Exceder o limite de tamanho dos cookies de sessão pode originar falhas de início de sessão ou ciclos de início de sessão infinitos. Para evitar estes problemas, considere as seguintes ações:

  • Reduza as reivindicações: configure o seu IdP de terceiros para enviar apenas reivindicações essenciais para a Identity Platform. Minimizar o tamanho e o número de reivindicações incluídas no token.

  • Inspecione o tamanho dos cookies: use as ferramentas para programadores do navegador para verificar o tamanho dos cookies definidos no domínio da sua aplicação. Procure avisos relacionados com o tamanho dos cookies, particularmente para cookies relacionados com a CIsA.

  • Teste as reivindicações mínimas: configure temporariamente o IdP para enviar o conjunto de reivindicações mais pequeno possível. Se isto resolver o problema, confirma que a limitação do tamanho dos cookies é a causa principal.

Códigos de erro

A tabela seguinte apresenta códigos e mensagens de erro comuns devolvidos quando configura e usa as CAsI.

Código de erro Descrição Resolução de problemas
7 ID de cliente ou segredo OAuth vazio Visite a página Credenciais para validar o ID de cliente e o segredo. Se aparecerem corretas, mas não estiverem a funcionar, use métodos da API para verificar as definições (GET para o Compute Engine e