Comment puis-je résoudre les erreurs 403 « Jeton d'authentification manquant » à partir d'un point de terminaison API REST API Gateway ?

Lecture de 3 minute(s)
0

Lorsque j'essaie d'appeler mon API REST Amazon API Gateway, je continue à recevoir les messages d'erreur 403 « Jeton d'authentification manquant ». Comment résoudre ces erreurs ?

Brève description

Les points de terminaison API REST API Gateway renvoient le message Jeton d'authentification manquant pour les raisons suivantes :

Pour résoudre d'autres erreurs 403 pour API Gateway, voir Comment résoudre les erreurs HTTP 403 provenant d'API Gateway ?

Solution

Vérifier qu'il existe une méthode et une ressource configurée dans le chemin de ressource API Gateway

Suivez les instructions de la section Configuration d'une méthode à l'aide de la console API Gateway. Pour plus d'informations, consultez Configuration de vos ressources API.

Remarque : vous devez déployer l'API pour que les modifications entrent en vigueur.

Pour les API avec une intégration des ressources proxy où la méthode de demande est envoyée à la ressource racine, vérifiez qu'une méthode est configurée sous la ressource racine.

Vérifiez que les réponses d'API Gateway n'ont pas été modifiées ou que l'intégration du backend n'envoie pas la réponse

Assurez-vous que les réponses de la passerelle ne sont pas modifiées dans l'API. Assurez-vous également que l'erreur ne provient pas de l'intégration backend. Vérifiez les journaux d'exécution et les journaux backend de l'API Gateway.

Vérifier que la demande d'API est signée si l'authentification IAM est activée pour la méthode API

Pour plus d'informations, consultez Signature de demandes d'API AWS et Éléments d'une signature de demande d'API AWS.

Vérifier que vous envoyez la demande de méthode HTTP correcte au point de terminaison API REST

Le teste d'un point de terminaison API REST directement à partir d'un navigateur web envoie automatiquement une demande de méthode GET HTTP.

Utilisez un autre client HTTP pour tester une méthode POST HTTP. Par exemple, Postman ou curl.

Exemple de commande curl qui utilise la demande de méthode POST HTTP

$ curl -X POST  <API URL> -d <request body>

Exemple d'envoi de demande avec un en-tête JSON

$ curl --location -X POST 'https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'

Exemples d'envoi de demande curl POST avec authentification par signature AWS V4

$ curl -X POST "<ENDPOINT>" -d <data> --user <AWS_ACCESS_KEY>:<AWS_SECRET_KEY> --aws-sigv4 "aws:amz:<REGION>:<SERVICE>"
$ curl -X POST "https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy" -d '{"x":"y"}' --user ABCD:1234 --aws-sigv4 "aws:amz:us-east-1:execute-api"

informations connexes

Comment activer l'authentification IAM pour les API REST API Gateway ?