メインコンテンツへスキップ
POST /oauth/token Custom Token Exchange (CTE) は、RFC 8693 の仕様に準拠し、/oauth/token エンドポイントを呼び出すことで、アプリケーションが既存の IDトークンを Auth0 のトークンに交換できる仕組みを提供します。この機能は、同じユーザーに代わって別の対象者にアクセスするために既存の Auth0 トークンを交換する場合や、外部 IDプロバイダーとの統合を容易にする場合、または Auth0 プラットフォームへのシームレスなユーザー移行を可能にする場合など、高度な統合要件に対応するうえで特に有用です。交換プロセスは完全に管理可能であり、開発者は該当するユースケース専用の Auth0 Action で実行されるカスタムロジックを使用して、その詳細を制御できます。
Custom Token Exchange は現在、早期アクセスで提供されています。この機能を使用すると、Okta’s Master Subscription Agreement に記載されている該当する Free Trial 条項に同意したものとみなされます。ユーザーの subject_token を安全に検証することは、お客様の責任です。詳細については、User Guide を参照してください。

注記

  • アプリケーションに発行されるスコープは、要求したスコープと異なる場合があります。この場合、レスポンス JSON に scope パラメーターが含まれます。スコープは、API Access Policies for Applications で説明されているとおりにフィルタリングされます
  • subject_token_type は、既存の Custom Token Exchange Profile および関連付けられた Action に対応している必要があります。
  • クライアントシークレットを安全に保持できない非機密アプリケーション (たとえばネイティブアプリ) の場合、この endpoint ではクライアントシークレットを渡さないことがサポートされています。ただし、アプリケーション自体の tokenEndpointAuthMethod プロパティが none に設定されている必要があります。これは、UI (Dashboard > Applications > Application Settings) から行うことも、Management API を使用して行うこともできます。
  • アプリケーションで Custom Token Exchange を有効にする必要があります。詳細については、Custom Token Exchange のドキュメント を参照してください。

パラメーター

DPoP
string
リクエストの DPoP 証明。省略可能で、アプリケーションで Demonstrating Proof-of-Possession (DPoP) を使用している場合にのみ必要です。
auth0-forwarded-for
string
文字列形式のエンドユーザー IP です。サーバーサイドのシナリオで不審な IP スロットリング保護を有効にする場合は、これを設定します。

リクエスト本文

grant_type
string
必須
使用するフローを示します。Custom Token Exchange の場合は、urn:ietf:params:oauth:grant-type:token-exchange を使用してください。使用可能な値: urn:ietf:params:oauth:grant-type:token-exchange
subject_token_type
string
必須
サブジェクトトークンのタイプです。Custom Token Exchange では、http://acme.com/legacy-tokenurn:acme:legacy-token のように、自身が所有する名前空間配下の任意の URI を使用できます。次の名前空間は予約されているため、使用できません: http://auth0.com, https://auth0.com, http://okta.com, https://okta.com, urn:ietf, urn:auth0, urn:okta.
subject_token
string
必須
サブジェクトトークンです。Action でこれを検証し、ユーザーの識別に使用する必要があります。
client_id
string
必須
アプリケーションのクライアントIDです。他のグラントタイプと同様に、HTTP Basic Auth を使用して Authorization ヘッダーでクライアントIDを渡すこともできます。
client_secret
string
(省略可能) アプリケーションのクライアントシークレットです。他のグラントタイプと同様に、HTTP Basic Auth を使用して Authorization ヘッダーでクライアントシークレットを渡すこともできます。Auth0 Authentication API リファレンスドキュメント で説明しているとおり、ほかの方法も利用できます。Custom Token Exchange はパブリックアプリケーションでも使用できるため、追加のセキュリティを実装するには アタックプロテクション を参照してください。
audience
string
(省略可能) アクセス先の対象 API の一意の識別子です。指定しない場合は、Tenant Settings で設定されたデフォルトのテナント 対象者 が使用されます。
resource
string
(省略可能) アクセス先の対象 API (リソースサーバー) の識別子です。Auth0 テナントに登録されている API Identifier と一致している必要があります。テナントの Resource Parameter Compatibility Profilecompatibility に設定されている場合に、audience の代わりに使用します。
scope
string
(省略可能) OAuth2 の scope パラメーターです。
organization
string
(省略可能) リクエストに関連付ける組織または識別子です。また、Use Organization Names in Authentication API を有効にしている場合は、組織名を指定することもできます。

レスポンス

ステータス説明
200成功時のレスポンス