

# HTTP API JWT オーライザーに関する問題のトラブルシューティング
<a name="http-api-troubleshooting-jwt"></a>

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

## 問題: API が `401 {"message":"Unauthorized"}` を返します
<a name="http-api-troubleshooting-jwt.unauthorized"></a>

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` を検証します。`aud` と `client_id` の両方が存在する場合、API Gateway は `aud` を評価します。

また、JWTをデコードし、APIが必要とする発行者、対象者、スコープと一致することを確認することもできます。ウェブサイトの [jwt.io](https://jwt.io/) は、ブラウザで JWT をデバッグすることができます。OpenID Foundation では、[JWT で使用するライブラリのリスト](https://openid.net/developers/jwt-jws-jwe-jwk-and-jwa-implementations/)が管理されます。

JWT オーソライザーの詳細については、「[API Gateway の JWT オーソライザーを使用して HTTP API へのアクセスを制御する](http-api-jwt-authorizer.md)」を参照してください 。