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
500em 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 HTTP500ou 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:
-
No log de acesso, localize a solicitação e anote o valor
opcRequestId. -
Confirme se o status de resposta visível ao cliente é HTTP
500. -
Pesquise o log de execução pelo mesmo valor
opcRequestId. -
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:
-
Envie a mesma solicitação de API novamente.
-
Confirme se a solicitação não retorna mais HTTP
500durante a autenticação. -
Confirme se o log de execução não mostra mais
authentication.idpCallFailedpara a solicitação. -
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: