> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0 委譲トークンの仕組みと、レガシーの `/delegation` エンドポイントが標準の OAuth 2.0 トークン交換を優先して非推奨となっている理由について説明します。

# 委譲トークン

<Warning>
  デフォルトでは、2017 年 6 月 8 日時点で使用中のアドオンがないテナントでは、委譲は無効化されています。現在、委譲を必要とするアドオンを使用している既存のテナントは、この機能を引き続き利用できます。今後、委譲機能が変更またはサービスから削除される場合は、現在利用中のお客様に事前に通知し、移行のための十分な期間が設けられます。
</Warning>

委譲トークンは、あるアプリケーションが、呼び出し元プログラムと同じテナント内で Auth0 に登録・設定された Firebase や SAP などのアプリケーション アドオンの API を呼び出す必要がある場合に取得して使用します。

既存のトークンがある場合、このエンドポイントは `target` アプリケーションのシークレットで署名された新しいトークンを生成します。これは、ユーザーの識別情報をアプリケーションから API に渡すために使用されます。

委譲トークンの種類は、プロバイダーによって異なります。たとえば、Azure Blob Storage 用に発行される場合は SAS (Shared Access Signature) になります。Firebase アドオン用であれば、<Tooltip tip="JSON Web Token（JWT）: 2 者間でクレームを安全に表現するために使用される標準的な ID トークン形式（および多くの場合アクセストークン形式）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JWT">JWT</Tooltip> になります。

認証済みユーザーの <Tooltip tip="ID トークン: リソースへのアクセスではなく、クライアント自身を対象とした認証情報。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=ID+token">ID トークン</Tooltip> は、`/delegation` エンドポイントで使用して、特定のターゲット向けの委譲トークンをリクエストできます。ターゲットには、Auth0 で設定されたアプリケーション アドオンを指定できます。これを行えるのは、<Tooltip tip="Security Assertion Markup Language（SAML）: パスワードなしで 2 者間の認証情報のやり取りを可能にする標準化されたプロトコル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=SAML">SAML</Tooltip> または <Tooltip tip="Security Assertion Markup Language（SAML）: パスワードなしで 2 者間の認証情報のやり取りを可能にする標準化されたプロトコル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=WS-Fed">WS-Fed</Tooltip> のアドオンではないアドオンです。アドオンは、Firebase などのアドオンサービスから取得したシークレットを使って Auth0 で設定されている必要があります。シークレットの設定手順は、各アドオンの設定ページで確認できます。これらのシークレットは委譲トークンへの署名に使用され、アドオン API がそのトークンを検証して信頼できるようにします。

委譲エンドポイントでは、`target`、`scope`、呼び出す API (`api_type`) に加え、追加パラメーター用の自由形式の領域など、委譲トークンの内容を左右する複数のパラメーターを設定できます。

<div id="auth0js-example">
  ## Auth0.js の例
</div>

有効化した アドオン の新しいトークンを **Auth0.js** で取得する方法については、「Delegation Token Request」を参照してください。なお、この例は **Auth0.js** ライブラリの **バージョン 7** 向けで、**Auth0.js** の **バージョン 8** では委譲は**サポートされていません**。

<div id="validity-period-and-termination">
  ## 有効期間と終了
</div>

有効期間や委譲トークンを取り消せるかどうかは、アドオンごとに異なります。詳細については、各アドオン API の提供元が公開しているドキュメントを参照してください。

<div id="use-delegation-tokens-with-public-applications">
  ## 公開アプリケーションで委譲トークンを使用する
</div>

公開アプリケーションで委譲エンドポイントを使用する際には、重要な注意点があります。

公開アプリケーションから `/token` エンドポイントを呼び出すと、アプリケーション設定の JsonWebToken Signature Algorithm が `HS256` に設定されていても、ID トークンは強制的に `RS256` で署名されます。

その後、その ID トークンを使って委譲エンドポイントを呼び出すと、アプリケーションの JsonWebToken Signature Algorithm が `HS256` に設定されている場合は失敗します。これは、委譲ではアプリケーションの設定に従って検証が行われる一方で、ID トークンはアルゴリズムが強制的に変更されたため、別のアルゴリズムで発行されているからです。

したがって、公開アプリケーションで委譲を使用する場合は、アプリケーションの JsonWebToken Signature Algorithm を `RS256` に設定しておくことが重要です。
