Wie behebe ich Fehler vom Typ 403 „Fehlendes Authentifizierungstoken“ am REST-API-Endpunkt von API-Gateway?
Wenn ich versuche, meine REST-API des Amazon API Gateway aufzurufen, erhalte ich die 403-Fehlermeldung „Fehlendes Authentifizierungstoken“.
Kurzbeschreibung
REST-API-Endpunkte von API Gateway geben aus folgenden Gründen Fehler vom Typ Fehlendes Authentifizierungstoken zurück:
- Die API-Anfrage wird an einen Vorgang oder eine Ressource gestellt, die nicht existiert.
- Die API-Anforderung ist nicht signiert, wenn für den API-Vorgang die Authentifizierung über AWS Identity and Access Management (IAM) aktiviert ist.
- Die API kann mit einer modifizierten Gateway-Antwort konfiguriert sein, oder die Antwort stammt von einer Backend-Integration.
Informationen zur Behebung anderer 403-Fehler für API Gateway finden Sie unter Wie behebe ich HTTP-403-Fehler von API Gateway?
Lösung
Stellen Sie sicher, dass der Ressourcenpfad von API-Gateway einen konfigurierten Vorgang und eine konfigurierte Ressource enthält
Folgen Sie den Anweisungen unter Einrichten eines Vorgangs über die Konsole von API Gateway. Weitere Informationen finden Sie unter Einrichten von API-Ressourcen.
**Wichtig:**Damit die Änderungen wirksam werden, müssen Sie die API bereitstellen.
Stellen Sie bei APIs mit Proxy-Ressourcenintegration, wo der Anforderungsvorgang an die Root-Ressource gesendet wird, sicher, ob ein Vorgang unter der Root-Ressource konfiguriert ist.
Stellen Sie sicher, dass die Antworten von API Gateway nicht geändert wurden oder dass die Backend-Integration die Antwort nicht sendet
Stellen Sie sicher, dass die Gateway-Antworten in der API nicht geändert werden. Stellen Sie darüber hinaus sicher, dass der Fehler nicht vom Backend der Integration stammt. Überprüfen Sie die Ausführungs- und Backend-Protokolle von API Gateway.
Vergewissern Sie sich, dass die API-Anfrage signiert ist, wenn die IAM-Authentifizierung aktiviert ist
Weitere Informationen finden Sie unter Signieren von AWS API-Anfragen und Elemente einer AWS API-Anforderungssignatur.
Vergewissern Sie sich, dass Sie die richtige HTTP-Vorgangsanforderung an den REST-API-Endpunkt senden
Testen Sie einen REST-API-Endpunkt von einem Webbrowser aus, um automatisch eine GET-HTTP-Vorgangsanforderung zu senden.
Verwenden Sie einen anderen HTTP-Client, um eine POST-HTTP-Vorgangsanforderung zu testen. Verwenden Sie beispielsweise Postman auf der Postman-Website oder curl auf der Curl-Website.
Beispiel für einen Curl-Befehl, der die POST-HTTP-Methodenanforderung verwendet
$ curl -X POST <API URL> -d <request body>
Beispiel für das Senden einer Anfrage mit JSON-Kopfzeile
$ 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"}'
Beispiele für das Senden einer Curl-POST-Anfrage mit AWS V4-Signaturauthentifizierung
$ 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"
Ähnliche Informationen
Wie aktiviere ich die IAM-Authentifizierung für REST-APIs in API Gateway?
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren