Los fallos de llamada del proveedor de autenticación se muestran como HTTP 500

Descubra cómo solucionar los fallos de llamadas del proveedor de autenticación que devuelven errores HTTP 500 al llamar a las API, después de haber creado correctamente gateways de API y despliegues de API con el servicio API Gateway.

Cuando API Gateway devuelve HTTP 500 durante la autenticación, la solicitud puede fallar antes de que llegue al servicio backend. En este caso, revise la ruta de acceso de llamada del proveedor de identidad configurada.

Emitir síntomas

Es posible que vea uno o más de los siguientes síntomas:

  • Un cliente recibe una respuesta HTTP 500 en una ruta que utiliza autenticación de token.

  • El servicio de backend no muestra una solicitud coincidente para la llamada de API fallida.

  • El fallo se produce durante la validación de introspección, detección o juego de claves web JSON (JWKS) remoto del token.

  • El fallo solo se produce en rutas que dependen de un proveedor de identidad externo.

Causas posibles

Este problema suele tener una de las siguientes causas:

  • The configured introspection_endpoint, discovery endpoint, or JWKS endpoint returns HTTP 500 or another unexpected response.

  • El gateway de API no se puede conectar al punto final del proveedor de identidad porque la conexión ha sufrido un timeout o se ha rechazado.

  • El proveedor de identidad devuelve una respuesta que API Gateway no puede analizar.

  • La política de autenticación hace referencia al punto final de proveedor incorrecto.

  • Las credenciales de cliente configuradas para la introspección de token son incorrectas o no son aceptadas por el proveedor de identidad.

Revisar la solicitud de autenticación fallida

Utilice la solicitud fallida para confirmar dónde se produce el error:

  1. En el log de acceso, busque la solicitud y observe el valor opcRequestId.

  2. Confirme que el estado de respuesta visible para el cliente es HTTP 500.

  3. Busque en el log de ejecución el mismo valor opcRequestId.

  4. Confirme si el log de ejecución informa authentication.idpCallFailed.

Si el log de ejecución informa authentication.idpCallFailed, solucione los problemas de la ruta de llamada del proveedor de identidad antes de solucionar los problemas de la ruta de backend.

Revisar la política de autenticación

Revise la política de autenticación para los problemas de credenciales y puntos finales del proveedor:

  • Confirme que el URI de punto final de detección, JWKS o introspección de la especificación de despliegue o la consola apunta al proveedor de identidad deseado.

  • Si el mensaje de log identifica introspection_endpoint, verifique ese punto final antes de revisar otros puntos finales de proveedor.

  • Confirme que el ID de cliente y el secreto de cliente configurados son válidos para el punto final de introspección.

  • Confirme que el proveedor de identidad devuelve un JSON válido con el formato esperado por la política de autenticación seleccionada.

Mensajes del registro de revisiones

Revise el log de ejecución para ver los mensajes que identifican la llamada de proveedor fallida:

  • 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

Estos mensajes ayudan a identificar si el fallo se debe a la disponibilidad del proveedor, a la accesibilidad de la red o a una respuesta de proveedor no válida.

Corregir fallos de llamadas del proveedor de autenticación

Aplique la resolución que coincida con el fallo identificado:

  • Si el URI de punto final del proveedor es incorrecto, actualice el punto final de detección, JWKS o introspección en la política de autenticación.

  • Si el proveedor de identidad devuelve HTTP 500, resuelva el error del proveedor antes de investigar el problema como un defecto de API Gateway.

  • Si no se puede analizar la respuesta del proveedor, actualice el proveedor de identidad para que devuelva un JSON válido con el formato esperado.

  • Si las credenciales de introspección son incorrectas, actualice las credenciales de cliente configuradas.

  • Si el punto final del proveedor agota el tiempo de espera o rechaza la conexión, pruebe el punto final desde una instancia informática que utilice la misma ruta de red que la subred del gateway. A continuación, corrija el firewall, la tabla de rutas, la regla de seguridad o la configuración de punto final de proveedor que bloquea la conexión.

Verificar llamadas de proveedor de autenticación

Después de actualizar la configuración del proveedor o la ruta de red, verifique que la autenticación se realice correctamente:

  1. Vuelva a enviar la misma solicitud de API.

  2. Confirme que la solicitud ya no devuelve HTTP 500 durante la autenticación.

  3. Confirme que el log de ejecución ya no muestra authentication.idpCallFailed para la solicitud.

  4. Confirme que la solicitud llegue al servicio backend esperado cuando el token sea válido.

Para obtener más información

Para obtener más información, consulte: