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

Lecture de 3 minute(s)
0

Lorsque j'essaie d'invoquer mon API REST Amazon API Gateway, des messages d'erreur 403 « Jeton d'authentification manquant » s'affichent.

Brève description

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

Afin de résoudre d'autres erreurs 403 pour API Gateway, consultez la page Comment puis-je résoudre les erreurs API Gateway HTTP 403 ?

Résolution

Vérifiez qu'une opération et une ressource sont configurées dans le chemin de ressource API Gateway

Suivez les instructions de la page Configurer une opération à l'aide de la console API Gateway. Pour en savoir plus, reportez-vous à Configurer des ressources d'API.

Important : pour que les modifications soient appliquées, vous devez déployer l'API.

Pour les API avec intégration de ressource proxy dont l'opération de demande est envoyée à la ressource racine, vérifiez qu'une opération est configurée sous la ressource racine.

Vérifier que les réponses d'API Gateway ne sont pas modifiées ou que l'intégration 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 du backend d'intégration. Consultez les journaux d'exécution et les journaux du backend d'API Gateway.

Vérifier que la demande d'API est signée lorsque l'authentification IAM est activée

Pour en savoir plus, reportez-vous à Signer des demandes d'API AWS et Éléments d'une signature de demande d'API AWS.

Vérifiez que vous envoyez la demande d'opération HTTP correcte au point de terminaison API REST

Testez un point de terminaison API REST depuis un navigateur Web pour envoyer automatiquement une demande d'opération HTTP GET.

Pour tester une demande d'opération HTTP POST, utilisez un autre client HTTP. Par exemple, utilisez Postman sur le site Web Postman ou curl sur le site Web Curl.

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

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

Exemple d'envoi de demande avec 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 POST curl 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 puis-je activer l'authentification IAM pour les API REST API Gateway ?