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

subject_token_type を、そのリクエストを処理する Action にマッピングする カスタムトークン交換プロファイル を定義する必要があります。
カスタムトークン交換フローがトリガーされると、次のように処理されます。
- アプリケーションは、交換対象のセキュリティトークン (
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 を設定することもでき、その結果、発行されるトークンに、ユーザーに代わって動作している主体を示すactclaim が含まれます。 - 続いて、標準の Auth0 pipeline の残りの処理が実行され、設定されたユーザーに対して Auth0 アクセストークン が生成され、必要に応じて ID トークン と リフレッシュトークン も生成されます。
- リクエスト元のアプリケーションは、その後、Action で設定されたユーザーに代わって API を安全に呼び出すために、これらの新しく発行されたトークンを使用できます。
audience を urn:YOUR_AUTH0_TENANT_DOMAIN:session_transfer に設定すると、アクセストークンではなく Session Transfer Token が返されます。このトークンをアプリケーションで引き換えることで、別のユーザーとして Web セッションを確立できます。詳細については、セッション委譲 を参照してください。
はじめに
- トークン交換を制御するロジックを含む Action を作成してデプロイする。この Action では、次の処理を行うカスタムコードを記述します。
- 受信した
subject_tokenを安全にデコードして検証する。 - トランザクションに必要な認可手順を実行する。
- 利用可能な カスタムトークン交換 Actions API オブジェクトのメソッドを使用して、トランザクションに対応するユーザーを設定する。
- 受信した
- テナントに カスタムトークン交換プロファイルを作成する。このプロファイルにより、リクエストで使用する特定の
subject_token_typeと、先ほど作成した Action の間に 1 対 1 のマッピングが確立されます。 - アプリケーションでカスタムトークン交換を有効にする。
- API を呼び出す: 必要なパラメーターを含めて、
/oauth/tokenエンドポイントにPOSTリクエストを送信できるようになります。これには、subject_tokenと、設定したプロファイルに対応するsubject_token_typeが含まれます。詳しくは、カスタムトークン交換を使用して API を呼び出すをご覧ください。