/oauth/token エンドポイントの呼び出し時に、既存のトークンを Auth0 トークンに交換できます。カスタムトークン交換の一般的なユースケースには、次のようなものがあります。
- 別の 向けの Auth0 トークンを取得する
- 外部の と連携する
- Auth0 に移行する
- 委任された認可: プリンシパル (サービス、AI エージェント、サポート担当者など) がユーザーに代わって動作する
/oauth/tokenエンドポイントに渡されるsubject_tokensをデコードしてバリデーションするカスタムコードを記述する- アクセスを認可し、トランザクションを続行するユーザーを設定する。
カスタムトークン交換では、トランザクション上のユーザーを識別する対応するサブジェクトトークンを安全にバリデーションするという追加の責任を負う代わりに、トランザクションのユーザーを設定できる柔軟性が得られます。カスタムトークン交換で使用するサブジェクトトークンとアクタートークンは、Action コードで解釈できる限り、必要に応じて任意のトークン形式またはタイプにできます。受け取って受け入れるトークンには、必ず強固なバリデーションを実装してください。 これを怠ると、なりすましやリプレイ攻撃など、さまざまな攻撃ベクトルにさらされ、悪意のある第三者が他人の user ID で認証したり、許可なくその人の代理として行動したりできるようになります。サブジェクトトークンの安全なバリデーションを実装するためのさまざまな方法については、使用例とコードサンプル に記載されている推奨事項を確認し、適用してください。また、攻撃対策 機能についても考慮し、適用してください。
テナントログ
- 成功したトランザクション:
secteログ - 失敗したトランザクション:
fecteログ
setActor() を使用して actor を設定すると、監査のため、sub とネストされた actor を含む actor プロパティが secte のログエントリに含まれます。
テナントログは、トークン交換で発生した問題のトラブルシューティングに役立ちます。
制限事項
- MFA API メソッド
api.authentication.challengeWith()およびapi.authentication.EnrollWith() - インポートモードが
ONのカスタム DB 接続は、setUserByConnection()操作ではサポートされていません - サードパーティ クライアントおよび OIDC 非準拠クライアント
- 非対話型フローでは同意を取得できないため、対象の API では ユーザー同意のスキップを許可 を有効にする必要があります。