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.