custom-token-exchange トリガーによって、そのプロファイルに関連付けられた 1 つの Action が実行されます。Action が正常に完了し、トランザクションにユーザーが設定されると、その後 post-login Actions と Auth0 パイプラインの残りの処理が、そのログイン済みユーザーに対して実行されます。

Custom Token Exchange と Post Login Actions
event.transaction.protocol は oauth2-token-exchange に設定されます。Custom Token Exchange とネイティブソーシャルログインは、どちらもトークン交換のグラントタイプを使用します。両者を区別するには、subject_token_type の値を使用します。この値は、いずれかの Custom Token Exchange Profile に対応している必要があります。
Custom Token Exchange Early Access では、
api.authentication.challengeWith() と api.authentication.enrollWith() はサポートされていません。Post-Login Actions でこれらのメソッドを使用すると、トランザクションは回復不能なエラーで失敗します。subject_token_type の値に応じて、event.transaction.protocol==oauth2-token-exchange の場合は、これら 2 つのメソッドをスキップするようにしてください。委任におけるアクターのサポート
custom-token-exchange トリガーは、委任された認可のシナリオをサポートします。Action は api.authentication.setActor() を呼び出して、発行されるトークンに act クレームを含めることができます。これにより、対象ユーザーに代わって動作する主体を識別できます。
setActor() は、リクエストに actor_token が含まれているかどうかにかかわらず呼び出せます。actor_token パラメーターは、呼び出し元のアプリケーションがアクター情報を Action に渡す方法の 1 つですが、アクターの識別情報は subject_token 自体に埋め込むことも、Action コード内で別のカスタムな方法を使って取得することもできます。
リクエストに actor_token と actor_token_type が含まれている場合、これらの値は event.transaction で利用できます。actor_token_type が urn:ietf:params:oauth:token-type:id_token で、そのトークンが同じテナントの有効な Auth0 IDトークンである場合、サーバーは自動的にトークンを検証し、アクターのユーザープロファイルを event.transaction.actor_token_user に設定します。
setActor() で設定した act クレームは、event.transaction.actor を通じて Post-Login Actions でも利用できます。
トリガー
Custom Token Exchange
custom-token-exchange トリガーは、Auth0 パイプラインの最初のステップです。この関数は、受信したCustom Token Exchangeリクエストが検証され、既存のユーザープロファイルに正常にマッピングされた後に実行されます。
参考資料
- イベントオブジェクト:
subject_token、IP アドレス、クライアントなど、Token Exchange リクエストに関するコンテキスト情報を提供します。 - API オブジェクト: Token Exchange Action で使用できるメソッドを提供します。これにより、ユーザーの指定、委任用アクターの設定、トランザクションの拒否、ユーザーメタデータの設定、Actions キャッシュへのアクセスなどを行えます。