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)
- 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 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. Por padrão, os métodos JavaScript não anexam cookies.
Métodos de solicitação diferentes exigem abordagens diferentes:
- Para
XMLHttpRequest, definawithCredentialscomotrue - Para a API
Fetch,
defina
credentialscomoincludeousame-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 um dos seguintes elementos:
- Um token de ID em um cabeçalho
Authorization: Bearer - Cookies válidos (consulte 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 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ê vir:
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 tráfego de 130.211.0.0/22 e 35.191.0.0/16. Se esses IPs não puderem acessar seu back-end, os 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 intermitentes internos do servidor?
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 a espera exponencial para novas tentativas.
Como posso resolver erros de cota excedida (código do erro: 429)?
O código de erro 429 ocorre quando o aplicativo excede os limites de solicitação do IAP. O serviço impõe 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 AUTHORIZATION ou PROXY-AUTHORIZATION e nenhum cookie de 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 enfrentando erros relacionados à cota, considere estas soluções:
- Evite testes de carga na produção. 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.
- 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 suporte doGoogle Cloud 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 "Credenciais" para verificar o ID e a chave secreta do cliente. Se elas parecerem corretas, mas não estiverem funcionando, use métodos de 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 do 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 do 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 isso usando o comando gcloud compute backend-services update. |
| 9 (com regras de roteamento de caminho) | 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 e a chave secreta do cliente na página "Credenciais". Se elas parecerem corretas, mas não estiverem funcionando, use métodos de 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 "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 atualizarem 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 nome do host e certificado 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. |
| 52 (com entrada principal do mapa de certificados) | Incompatibilidade entre nome do host e certificado SSL | A IAP não é compatível com entradas de mapa de certificado principal. Use entradas separadas para mapear cada certificado ao nome de host correto. Consulte Criar uma entrada de mapa de certificados para orientação. |
| 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 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). Distribua as cargas de trabalho em vários projetos, implemente a limitação de solicitações do lado do cliente ou entre em contato com o suporte para aumentos de cota, se necessário para um crescimento legítimo. |
| 551 | IAP habilitado 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 de pool de funcionários | Configure exatamente um provedor para seu pool de força de trabalho. Consulte Limitações dos pools de força de trabalho para requisitos detalhados. |
| 705 | ID do cliente OAuth ausente para 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 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 está parada | Verifique se a VM está ligada e concluiu totalmente a sequência de inicialização. |
Se você não conseguir resolver o problema ou não encontrar o erro 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.