Solución de problemas con los autorizadores JWT de la API HTTP
A continuación se le proporcionan consejos para solucionar errores y problemas que puedan surgir al utilizar los autorizadores de JSON Web Token (JWT) con API HTTP.
Problema: mi API devuelve 401
{"message":"Unauthorized"}
Compruebe el encabezado www-authenticate en la respuesta de la API.
El siguiente comando utiliza curl para enviar una solicitud a una API con un autorizador de JWT que utiliza $request.header.Authorization como su origen de identidad.
$curl -v -H "Authorization:token" https://api-id.execute-api.us-west-2.amazonaws.com/route
La respuesta de la API incluye un encabezado www-authenticate.
... < HTTP/1.1 401 Unauthorized < Date: Wed, 13 May 2020 04:07:30 GMT < Content-Length: 26 < Connection: keep-alive < www-authenticate: Bearer scope="" error="invalid_token" error_description="the token does not have a valid audience" < apigw-requestid: Mc7UVioPPHcEKPA= < * Connection #0 to host api-id.execute-api.us-west-2.amazonaws.com left intact {"message":"Unauthorized"}}
En este caso, el encabezado www-authenticate muestra que el token no se emitió para un destinatario válido. Para que API Gateway autorice una solicitud, la reclamación aud o client_id de JWT debe coincidir con una de las entradas de destinatario configuradas para el autorizador. API Gateway valida client_id solo si aud no está presente. Cuando aud y client_id están presentes, API Gateway evalúa aud.
También puede decodificar un JWT y comprobar que coincida con el emisor, el destinatario y los ámbitos que requiere su API. El sitio web jwt.io
Para obtener más información acerca de los autorizadores de JWT, consulte Control del acceso a API HTTP con autorizadores de JWT en API Gateway.