> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-docs-5528-php-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# アクセストークンを検証する

> アクセストークンの検証方法について説明します。

アクセストークンは、API向けなので、意図されたAPIによってのみ検証されなければなりません。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  IDプロバイダー（IdP）のアクセストークンは、検証不要です。IdPのアクセストークンを検証するには、発行元のIdPに渡します。詳細については、「[IDプロバイダーのアクセストークン](/docs/ja-jp/secure/tokens/access-tokens/identity-provider-access-tokens)」を参照してください。
</Callout>

検査内容が1つでも失敗すると、トークンを無効であると見なして、要求を必ず`401 Unauthorized`の結果で拒否します。

1. **標準のJWT検証を行います。** アクセストークンはJWTであるため、標準のJWT検証手順を実行する必要があります。詳細については、「[JSON Web Tokenを検証する](/docs/ja-jp/secure/tokens/json-web-tokens/validate-json-web-tokens)」を参照してください。
2. **トークンのオーディエンスクレームを検証します。** 標準のJWT検証を行ったのであれば、すでにJWTのペイロードをデコードし、その標準クレームを確認したはずです。トークンのオーディエンスクレーム（`aud`、文字列の配列）は当初のトークン要求に依存します。`aud`フィールドには、カスタムAPIに対応するオーディエンスと`/userinfo`エンドポイントに対応するオーディエンスの両方を含めることができます。トークンの少なくとも1つのオーディエンス値が、対象APIの一意の識別子と一致しなければなりません。この識別子は[APIの設定](https://manage.auth0.com/#/apis)の\*\*［Identifier（識別子）］\*\* フィールドで定義されています。詳細については、「[アクセストークンを取得する](/docs/ja-jp/secure/tokens/access-tokens/get-access-tokens)」を参照してください。
3. **権限（スコープ）を確認します。** APIへのアクセスに必要な権限がアプリケーションに付与されていることを確認しますこれを行うには、JWTのペイロードで`scope`クレーム（`scope`、スペース区切りの文字列リスト）を確認する必要があります。アクセスするエンドポイントで求められる権限と一致している必要があります。たとえば、カスタムAPIがユーザーレコードの読み取り・作成・削除用に3つのエンドポイントを提供している場合は、Auth0でAPIを登録した際に対応する3つの権限が作成されています。

   1. `create:users`は`/create`エンドポイントにアクセスできるようにします
   2. `read:users`は`/read`エンドポイントにアクセスできるようにします
   3. `delete:users`は`/delete`エンドポイントにアクセスできるようにします

   この場合、アプリケーションは`/create`エンドポイントにアクセスを要求しますが、 アクセストークンの`scope`クレームに`create:users`が含まれていないため、APIが要求を拒否します。

## もっと詳しく

* [アクセストークンを取得する](/docs/ja-jp/secure/tokens/access-tokens/get-access-tokens)
* [アクセストークンを使用する](/docs/ja-jp/secure/tokens/access-tokens/use-access-tokens)
* [Management APIのアクセストークン](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens)
* [テスト用にManagement APIアクセストークンを取得する](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-testing)
* [本番環境のManagement APIアクセストークンの取得](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production)
* [トークンのベストプラクティス](/docs/ja-jp/secure/tokens/token-best-practices)
