IDプロバイダー (IdP) のアクセストークンは検証する必要がありません。IdP アクセストークンを発行元の IdP に渡して検証を行ってください。詳しくは、Identity Provider Access Tokensを参照してください。
401 Unauthorized を返して拒否しなければなりません。
- 標準的な JWT 検証を実行します。 アクセストークンは JWT であるため、標準的な JWT の検証手順を実行する必要があります。詳しくは Validate JSON Web Tokens を参照してください。
-
トークンの audience クレームを検証します。 標準的な JWT 検証を実行していれば、JWT のペイロードはすでにデコードされており、その標準クレームも確認済みのはずです。トークンの audience クレーム (
aud、文字列の配列) は、最初のトークンリクエストによって決まります。audフィールドには、カスタム API に対応する audience と、/userinfoエンドポイントに対応する audience の両方が含まれる場合があります。トークンの audience 値のうち少なくとも 1 つは、API’s Settings の Identifier フィールドで定義されている対象 API の一意の識別子と一致している必要があります。詳しくは アクセストークンを取得する を参照してください。 -
権限 (スコープ) を検証します。 アプリケーションに、API へアクセスするために必要な権限が付与されていることを確認します。そのためには、デコードされた JWT のペイロードにある
scopeクレーム (scope、スペース区切りの文字列リスト) を確認する必要があります。これは、アクセス対象のエンドポイントに必要な権限と一致している必要があります。たとえば、カスタム API がユーザーレコードの読み取り、作成、削除を行う 3 つのエンドポイントを提供している場合、API を Auth0 に登録した際に、それに対応する 3 つの権限を作成します。create:usersは/createエンドポイントへのアクセスを提供しますread:usersは/readエンドポイントへのアクセスを提供しますdelete:usersは/deleteエンドポイントへのアクセスを提供します
/createエンドポイントへのアクセスをリクエストしても、アクセストークンのscopeクレームにcreate:usersという値が含まれていなければ、API はそのリクエストを拒否する必要があります。