Fehlerbehebung bei Problemen mit HTTP-API JWT-Genehmigern - Amazon API Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung bei Problemen mit HTTP-API JWT-Genehmigern

Im Folgenden finden Sie Hinweise zur Fehlerbehebung bei Fehlern und Problemen, die bei der Verwendung von JSON Web Token(JWT)-Genehmigern mit HTTP-APIs auftreten können.

Problem: Meine API gibt zurüc 401 {"message":"Unauthorized"}

Überprüfen Sie den www-authenticate-Header in der Antwort von der API.

Der folgende Befehl verwendet curl, um eine Anforderung an eine API mit einem JWT-Genehmiger zu senden, der $request.header.Authorization als Identitätsquelle verwendet.

$curl -v -H "Authorization: token" https://api-id.execute-api.us-west-2.amazonaws.com/route

Die Antwort von der API enthält einen www-authenticate-Header.

... < 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"}}

In diesem Fall zeigt der www-authenticate-Header an, dass das Token nicht für eine gültige Zielgruppe ausgegeben wurde. Damit API Gateway eine Anfrage autorisieren kann, muss der aud- oder client_id-Claim von JWT mit einem der Audience-Einträge übereinstimmen, die für den Genehmiger konfiguriert sind. API Gateway validiert client_id nur, wenn nicht vorhanden aud ist. Wenn aud sowohl als auch vorhanden client_id sind, wertet API Gateway ausaud.

Sie können auch ein JWT dekodieren und überprüfen, ob es mit dem Aussteller, der Zielgruppe und den Bereichen übereinstimmt, die Ihre API benötigt. Die Website jwt.io kann JWTs im Browser debuggen. Die OpenID Foundation pflegt eine Liste mit Bibliotheken für die Arbeit mit JWTs.

Weitere Informationen zu JWT-Genehmigern finden Sie unter Steuern des Zugriffs auf HTTP-APIs mit JWT-Genehmigern.