クライアント認証情報フロー で発行されるトークンでは、Hooks を追加することで、スコープを変更したりカスタムクレームを追加したりできます。
Hooks を使うと、Node.js コードで Auth0 の動作をカスタマイズできます。Hooks は、Auth0 プラットフォームの特定の拡張ポイント (クライアント認証情報フローなど) に関連付けられた、安全で自己完結型の関数です。Auth0 は実行時に Hooks を呼び出し、カスタムロジックを実行します。
Hooks は、Auth0 Dashboard または Management API で管理できます。
特定の拡張ポイントに対して複数のフックを作成できますが、各拡張ポイントで一度に有効にできるフックは 1 つだけです。その拡張ポイントに対してあとから作成したフックは自動的に無効になるため、明示的に有効にする必要があります。有効になっているフックは、すべてのアプリケーションと API に対して実行されます。
このチュートリアルを始める前に、次の作業を行っておく必要があります。
Hook を作成 : トークンをカスタマイズする Hook を作成します。
Hook をテスト : クライアント認証情報フローを実行し、アクセストークンをデコードして新しい Hook をテストします。
この例では、次のことを行います。
アクセストークン に任意のクレーム (https://foo.com/claim) を追加する
設定済みの API に権限を 1 つ追加する
トークンをカスタマイズするための Hook を作成します。拡張ポイントの選択を求められたら、Client Credentials Exchange を選択し、エディターに次のコードを追加します。
作成した フック をテストするには、Client Credentials 交換を実行してアクセストークン を取得し、それをデコードして内容を確認する必要があります。
トークンを取得するには、クライアント認証情報フローのエンドポイント に POST リクエストを送信します。CLIENT_ID、CLIENT_SECRET、API_IDENTIFIER のプレースホルダー値は、それぞれご利用のアプリケーションの Client ID 、ご利用のアプリケーションの Client Secret 、および API の Identifier に必ず置き換えてください。Client ID と Client Secret は アプリケーション の設定で、API Identifier は API の設定で確認できます。
成功すると、レスポンスには次のものが含まれます:
access_token
有効期限 (秒単位、expires_in)
Bearer に設定されたトークンの種類 (token_type)
追加の権限 extra (scope) (これはご利用のHooksによって追加されたものです)
アクセストークンをデコードして内容を確認する最も簡単な方法は、JWT.io Debugger を使用することです。
アクセストークンをコピーしてエディターに貼り付けます。JWT は自動的にデコードされ、その内容が表示されます。
ペイロード の最後の 2 項目は、どちらもフックによって設定されていることに注目してください。
"scope": "extra"
"https://foo.com/claim": "bar"