HTTP API JWT オーライザーに関する問題のトラブルシューティング - Amazon API Gateway

HTTP API JWT オーライザーに関する問題のトラブルシューティング

次に、HTTP API で JSON ウェブトークン (JWT) オーソライザーを使用するときに発生する可能性のあるエラーおよび問題のトラブルシューティングに関するアドバイスを示します。

問題: API が 401 {"message":"Unauthorized"} を返します

API からのレスポンスで www-authenticate ヘッダーを確認します。

次のコマンドは、curl を使用して、$request.header.Authorization を ID ソース として使用する JWT オーソライザーを使用して API にリクエストを送信します。

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

API からのレスポンスには www-authenticate ヘッダーが含まれます。

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

この場合、www-authenticate ヘッダーには、有効な対象者に対してトークンが発行されなかったことが示されます。API Gateway でリクエストを承認するには、JWT の aud または client_id クレームが、オーソライザー用に設定されている対象者のエントリの 1 つと一致する必要があります。API Gateway は、aud が存在しない場合にのみ、client_id を検証します。audclient_id の両方が存在する場合、API Gateway は aud を評価します。

また、JWTをデコードし、APIが必要とする発行者、対象者、スコープと一致することを確認することもできます。ウェブサイトの jwt.io は、ブラウザで JWT をデバッグすることができます。OpenID Foundation では、JWT で使用するライブラリのリストが管理されます。

JWT オーソライザーの詳細については、「API Gateway の JWT オーソライザーを使用して HTTP API へのアクセスを制御する」を参照してください 。