subject_token) を、RFC 8693 に準拠して /oauth/token エンドポイントを呼び出すことで、Auth0 のアクセストークン、ID トークン、リフレッシュトークンに交換できます。
仕組み
subject_token_type パラメーターに基づいて一意に選択され、その設定は Custom Token Exchange Profile で行います。

subject_token_type をリクエストを処理する Action にマッピングする Custom Token Exchange Profile を定義する必要があります。
Custom Token Exchange フローがトリガーされると、次の処理が行われます。
- アプリケーションは、交換対象のセキュリティトークン (
subject_token) と対応するsubject_token_typeを含むPOSTリクエストを/oauth/tokenエンドポイントに送信します。必要に応じて、リクエストにはactor_tokenとactor_token_typeを含めることもでき、これによりユーザーに代わって動作する主体を識別できます。 - Auth0 はクライアントからのリクエストと認証情報を検証します。
- 関連付けられた Custom Token Exchange Action が実行されます。カスタムコードでは、
subject_tokenをデコードして検証し、必要な認可ポリシーを適用し、交換を承認するためにトランザクションのユーザーを設定する必要があります。また、Action はapi.authentication.setActor()を使用してトランザクションの actor を設定することもできます。これにより、発行されたトークンにactクレームが含まれ、ユーザーに代わって動作している主体を識別できます。 - 続いて、標準の Auth0 パイプラインの残りの処理が実行され、設定されたユーザーに対して Auth0 のアクセストークンと、必要に応じて IDトークンおよびリフレッシュトークンが生成されます。
- リクエスト元のアプリケーションは、新たに発行されたこれらのトークンを使用して、Action で設定されたユーザーに代わって安全に API を呼び出せます。
はじめに
- トークン交換を制御するロジックを含む Action を作成してデプロイします。この Action では、次の処理を行うカスタムコードを記述します。
- 受信した
subject_tokenを安全にデコードして検証する。 - トランザクションに必要な認可手順を実行する。
- Custom Token Exchange Actions API Object で使用可能なメソッドを使って、トランザクションに対応するユーザーを設定する。
- 受信した
- テナントで Custom Token Exchange Profile を作成します。このプロファイルにより、リクエストで使用する特定の
subject_token_typeと、先ほど作成した Action が 1 対 1 で対応付けられます。 - アプリケーションで Custom Token Exchange を有効にします。
- API を呼び出す: 必要なパラメーター (
subject_tokenと、設定したプロファイルに対応するsubject_token_typeを含む) を指定して、/oauth/tokenエンドポイントにPOSTリクエストを送信できます。詳細は、Custom Token Exchange を使用して API を呼び出すを参照してください。