Falhas de chamada do provedor de autenticação aparecem como HTTP 500

Descubra como diagnosticar e solucionar problemas de falhas de chamada do provedor de autenticação que retornam erros HTTP 500 ao chamar APIs, tendo criado com sucesso gateways de API e implantações de API com o serviço API Gateway.

Quando o Gateway de API retorna HTTP 500 durante a autenticação, a solicitação pode falhar antes de atingir o serviço de back-end. Nesse caso, revise o caminho de chamada do provedor de identidades configurado.

Sintomas do Problema

Você pode ver um ou mais dos seguintes sintomas:

  • Um cliente recebe uma resposta HTTP 500 em uma rota que usa autenticação de token.

  • O serviço de back-end não mostra uma solicitação correspondente para a chamada de API com falha.

  • A falha ocorre durante a introspecção de token, descoberta ou validação remota do JWKS (JSON Web Key Set).

  • A falha ocorre apenas em rotas que dependem de um provedor de identidades externo.

Possíveis Causas

Esse problema geralmente tem uma das seguintes causas:

  • O ponto final introspection_endpoint, de descoberta ou JWKS configurado retorna HTTP 500 ou outra resposta inesperada.

  • O Gateway de API não pode se conectar ao ponto final do provedor de identidades porque a conexão expira ou é recusada.

  • O provedor de identidades retorna uma resposta que o Gateway de API não pode fazer parsing.

  • A política de autenticação faz referência ao ponto final do provedor errado.

  • As credenciais do cliente configuradas para introspecção de token estão incorretas ou não foram aceitas pelo provedor de identidades.

Revisar solicitação de autenticação com falha

Use a solicitação com falha para confirmar onde o erro ocorre:

  1. No log de acesso, localize a solicitação e anote o valor opcRequestId.

  2. Confirme se o status de resposta visível ao cliente é HTTP 500.

  3. Pesquise o log de execução pelo mesmo valor opcRequestId.

  4. Confirme se o log de execução reporta authentication.idpCallFailed.

Se o log de execução reportar authentication.idpCallFailed, solucione problemas do caminho de chamada do provedor de identidades antes de diagnosticar e solucionar problemas da rota de back-end.

Revisar a Política de Autenticação

Verifique a política de autenticação para problemas de ponto final do provedor e credencial:

  • Confirme se o URI do ponto final de descoberta, JWKS ou introspecção na especificação de implantação ou na Console aponta para o provedor de identidades pretendido.

  • Se a mensagem de log identificar introspection_endpoint, verifique esse ponto final antes de revisar outros pontos finais do provedor.

  • Confirme se o ID do cliente configurado e o segredo do cliente são válidos para o ponto final de introspecção.

  • Confirme se o provedor de identidades retorna um JSON válido no formato esperado pela política de autenticação selecionada.

Revisar Mensagens de Log

Revise o log de execução para mensagens que identificam a chamada do provedor com falha:

  • authentication.idpCallFailed

  • Unexpected response from the introspection_endpoint uri: <uri>, received (500, Server Error).

  • Unable to connect to the introspection_endpoint uri: <uri>, TIMEOUT. Make sure that the URI is accessible on the subnet of the gateway.

  • Unable to connect to the introspection_endpoint uri: <uri>, CONNECTION_REFUSED. Make sure that the URI is accessible on the subnet of the gateway.

  • Unable to parse response from Identity Provider

Essas mensagens ajudam a identificar se a falha é causada pela disponibilidade do provedor, pela acessibilidade da rede ou por uma resposta inválida do provedor.

Corrigir Falhas de Chamada do Provedor de Autenticação

Aplique a resolução que corresponda à falha identificada:

  • Se o URI do ponto final do provedor estiver incorreto, atualize a descoberta, o JWKS ou o ponto final de introspecção na política de autenticação.

  • Se o provedor de identidades retornar HTTP 500, resolva o erro do lado do provedor antes de investigar o problema como um defeito do Gateway de API.

  • Se não for possível fazer parse da resposta do provedor, atualize o provedor de identidades para retornar um JSON válido no formato esperado.

  • Se as credenciais de introspecção estiverem incorretas, atualize as credenciais do cliente configuradas.

  • Se o ponto final do provedor expirar ou recusar a conexão, teste o ponto final de uma instância de computação que use o mesmo caminho de rede da sub-rede do gateway. Em seguida, corrija a configuração do firewall, da tabela de roteamento, da regra de segurança ou do ponto final do provedor que bloqueia a conexão.

Verificar Chamadas do Provedor de Autenticação

Depois de atualizar a configuração do provedor ou o caminho de rede, verifique se a autenticação foi bem-sucedida:

  1. Envie a mesma solicitação de API novamente.

  2. Confirme se a solicitação não retorna mais HTTP 500 durante a autenticação.

  3. Confirme se o log de execução não mostra mais authentication.idpCallFailed para a solicitação.

  4. Confirme se a solicitação atinge o serviço de back-end esperado quando o token for válido.

Para obter mais informações

Para obter mais informações, consulte: