J’ai essayé d'invoquer mon API REST Amazon API Gateway et des messages d'erreur 403 « Jeton d'authentification manquant » se sont affichés.
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érifier qu'une opération et une ressource sont configurées dans le chemin de ressource API Gateway
Suivez les instructions figurant dans la section Configurer une méthode à l'aide de la console API Gateway. Pour en savoir plus, consultez la section 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 la requête 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 n'ont pas été modifiées et que l'intégration du backend n'a pas envoyé la réponse
Assurez-vous que les réponses de la passerelle n’ont pas été 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 plus d'informations, consultez les sections AWS Signature version 4 pour les demandes d'API et Éléments d'une signature de demande d'API AWS.
Vérifier que vous avez envoyé 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 requête avec en-tête JSON
curl --location -X POST 'https://1234WXYZ.execute-api.your-aws-region.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'
Exemples d’envoi de requête 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:AWS_REGION:AWS_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:your-aws-region:execute-api"
Informations connexes
Comment puis-je activer l'authentification IAM pour les API REST API Gateway ?