Perguntas frequentes e resolução de problemas

Este documento contém perguntas frequentes sobre o Identity-Aware Proxy (IAP).

Que apps posso proteger com a IAP?

As IAP 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 de pedidos 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:

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 do 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 de 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 de 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. Use caminhos de rede alternativos que ignorem o 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 da 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

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 GET para o App Engine) e repô-las com PATCH.
9 Falha no redirecionamento OAuth Este é um erro interno que foi registado automaticamente. Não tem de efetuar qualquer ação.
9 (com regras de reescrita de caminhos) Falha no redirecionamento OAuth As regras de reescrita de caminhos do seu equilibrador de carga estão a impedir a conclusão do OAuth. Certifique-se de que todos os back-ends atrás do balanceador de carga usam IDs de clientes OAuth idênticos. Pode atualizar esta definição através do comando gcloud compute backend-services update.
9 (com regras de encaminhamento de caminhos) Falha no redirecionamento OAuth Crie variantes de regras de caminhos para ambas as versões de cada caminho (com e sem barras invertidas finais) e direcione-as para o mesmo back-end. Por exemplo, inclua regras para /path/ e /path.
11 ID de cliente OAuth configurado incorretamente Verifique o ID de cliente e o segredo na página Credenciais. 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 GET para o App Engine) e repô-las com PATCH.
13 Símbolo OIDC inválido Aceda à página Credenciais para confirmar que o ID do cliente não foi eliminado nem modificado incorretamente.
51 O navegador não suporta o agrupamento de ligações Peça aos utilizadores finais que atualizem os respetivos navegadores para as versões atuais. Para ver mais detalhes sobre os requisitos de ligação, consulte o artigo Restrinja o acesso aos recursos.
52 Incompatibilidade entre o nome do anfitrião e o certificado SSL O administrador do sistema tem de atualizar o certificado SSL para corresponder ao nome de anfitrião. Consulte o artigo Restrinja o acesso aos recursos para ver orientações.
52 (com entrada de mapeamento de certificado principal) Incompatibilidade entre o nome do anfitrião e o certificado SSL O IAP não suporta entradas de mapeamento de certificados principais. Use entradas separadas para mapear cada certificado para o nome de anfitrião correto. Consulte o artigo Crie uma entrada de mapeamento de certificados para obter orientações.
53 O nome do anfitrião não está nos domínios permitidos Um administrador tem de adicionar o seu nome de anfitrião à lista de domínios permitidos. Consulte o artigo Restrinja o acesso aos recursos para ver instruções.
253, HTTP 429 Quota de pedidos excedida Atingiu os limites de pedidos (360 000/min para cada tipo de pedido). Considere distribuir as cargas de trabalho por vários projetos, implementar a limitação de pedidos do lado do cliente ou contactar o apoio técnico para aumentos de quotas, se necessário para um crescimento legítimo.
551 As CNAs estão ativadas em vários locais Não pode ativar a IAP na regra de encaminhamento e no serviço de back-end. Desative-o numa localização seguindo as orientações em Ative para o Compute Engine.
700, 701 Problemas do fornecedor do Workforce Pool Configure exatamente um fornecedor para o seu Workforce Pool. Reveja as limitações dos conjuntos de trabalhadores para ver os requisitos detalhados.
705 ID de cliente OAuth em falta para a identidade da força de trabalho Siga o processo de configuração completo: primeiro, crie um ID de cliente OAuth e, em seguida, atualize as definições do IAP.
708 Nome do conjunto de trabalhadores inválido Verifique se o seu workforce pool existe e usa o formato correto: locations/global/workforcePools/WORKFORCE_POOL_ID.
4003 Problema de ligação ou firewall Verifique se o processo da VM está em execução e a escutar na porta esperada. Verifique também se as suas regras de firewall permitem ligações nessa porta.
4010 A ligação foi fechada pelo destino Reponha a VM. Se os problemas persistirem, examine auth.log (normalmente em /var/log/) ou use a consola série para diagnósticos mais detalhados.
4033 Problema de autorização, existência ou estado da VM Confirme que tem a função de utilizador do túnel atribuída ao recurso através da página do IAP e verifique se a VM existe e está em execução.
4047 A instância não existe ou está parada Certifique-se de que a VM está ligada e concluiu totalmente a sequência de arranque.

Se não conseguir resolver o problema ou não vir o seu erro listado nesta página, contacte o Apoio ao cliente da nuvem com uma descrição do erro e da resposta que recebe de uma chamada GET à API. Certifique-se de que remove o segredo do cliente da resposta.