Este documento contém perguntas frequentes sobre o Identity-Aware Proxy (IAP).
Quais apps posso proteger com o IAP?
O IAP pode ser usado com:
- Apps do ambiente padrão 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)
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 em determinadas 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.
Diferentes métodos de solicitação exigem abordagens diferentes:
- Para
XMLHttpRequest
, definawithCredentials
comotrue
. - Para a API Fetch,
defina
credentials
comoinclude
ousame-origin
.
Para lidar com erros relacionados à sessão, consulte Como gerenciar sessões do IAP.
Por que estou recebendo um HTTP 401 Unauthorized
em vez de um 302 Redirect
?
O IAP envia um 302 Redirect
somente quando o cliente está configurado para
processar redirecionamentos.
Adicione HTTP Accept="text/html,*/*"
aos cabeçalhos de 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 a recursos protegidos pelo IAP, inclua uma das seguintes opções:
- Um token de ID em um cabeçalho
Authorization: Bearer
- Cookies 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 você não poderá modificar as permissões do IAM.
Como posso impedir que usuários com a função 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 receber 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.app
mtls.tunnel.cloudproxy.app
(quando o acesso baseado em certificado estiver 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.
Talvez seu firewall esteja bloqueando os IPs do balanceador de carga.
Verifique se o firewall permite tráfego de 130.211.0.0/22
e
35.191.0.0/16
. Se esses IPs não conseguirem acessar seu back-end, seus aplicativos
não vão estar acessí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 do servidor intermitentes?
Mensagens como An internal server error occurred while authorizing your request.
Error code X
indicam falhas no back-end.
Os códigos de erro 1
, 30
, 62
, 63
, 64
ou 703
geralmente refletem problemas temporários. Implemente uma espera exponencial para novas tentativas.
Como posso resolver erros de cota excedida (código de erro 429)?
O código de erro 429 ocorre quando o aplicativo excede os limites de solicitação do IAP. O serviço aplica cotas separadas:
- Solicitações baseadas no 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 AUTHORIZATION
ou
PROXY-AUTHORIZATION
e 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 por IAP no seu projeto.
Se você estiver com erros relacionados à cota, considere estas soluções:
- Evite testes de carga na produção: use caminhos de rede alternativos que ignoram o IAP.
- Para tráfego de serviço a serviço, implemente a espera exponencial para lidar com erros 429 de maneira suave.
- Distribuir 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 Google Cloud suporte para aumentar a cota se o crescimento orgânico estiver causando o problema.
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 | ID ou chave secreta do cliente OAuth vazios | Acesse a página de credenciais para verificar o ID e a chave secreta do cliente. Se elas parecerem corretas, mas não estiverem funcionando, use os métodos da API para verificar as configurações (GET para o Compute Engine, GET para o App Engine) e redefina-as com PATCH . |
9 | Falha no redirecionamento OAuth | Esse é um erro interno que foi registrado automaticamente. Você não precisa fazer nada. |
9 (com regras de substituição de caminho) | Falha no redirecionamento OAuth | As regras de substituição 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 esse valor usando o comando gcloud compute back-end services update. |
9 (com regras de roteamento de caminho) | Falha no redirecionamento OAuth | Crie variantes da regra de caminho para as duas versões de cada caminho (com e sem barras inclinadas) 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 e a chave secreta do cliente na página "Credenciais". Se elas parecerem corretas, mas não estiverem funcionando, use os métodos da API para verificar as configurações (GET para o Compute Engine, GET para o App Engine) e redefina-as com PATCH . |
13 | Token OIDC inválido | Acesse a página de credenciais para confirmar se o ID do cliente não foi excluído ou modificado incorretamente. |
51 | O navegador não tem suporte para pooling de conexões | Peça aos usuários finais para atualizar os navegadores para as versões atuais. Para mais detalhes sobre os requisitos de conexão, consulte Restringir o acesso a recursos. |
52 | Descontinuidade de certificado de nome de host/SSL | O administrador do sistema precisa atualizar o certificado SSL para corresponder ao nome do host. Consulte Restringir o acesso a recursos para 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. |
429 | A cota de solicitações foi excedida | Você atingiu os limites de solicitação (360.000/min para cada tipo de solicitação). Distribua as cargas de trabalho em vários projetos, implemente o controle de solicitações do lado do cliente ou entre em contato com o suporte para aumentar a cota, se necessário, para um crescimento legítimo. |
551 | O IAP está ativado em vários lugares | Não é possível ativar o IAP na regra de encaminhamento e no serviço de back-end. Desative em um local seguindo as orientações em Ativar para o Compute Engine. |
700, 701 | Problemas com o provedor do pool de funcionários | Configure exatamente um provedor para o pool de colaboradores. Consulte as limitações dos pools de recursos humanos para conferir os requisitos detalhados. |
705 | ID do cliente OAuth ausente para a identidade da força de trabalho | 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 força de trabalho 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 a função de usuário do túnel atribuída 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 está interrompida | Verifique se a VM está ligada e concluiu totalmente a sequência de inicialização. |
Se você não conseguir 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 recebida de uma chamada GET
para a API. Remova a chave secreta do cliente da resposta.