デフォルトでは、2017 年 6 月 8 日時点で使用中のアドオンがないテナントでは、委任は無効になっています。現在、委任を必要とするアドオンを使用しているレガシーテナントは、この機能を引き続き利用できます。今後、委任機能が変更またはサービスから削除される場合は、現在利用中のお客様に事前に通知し、移行のための十分な期間を設けます。
委任トークンは、アプリケーションが、呼び出し元プログラムと同じテナント内で Auth0 に登録および設定された Firebase や SAP などの Application Add-on の API を呼び出す必要がある場合に、取得して使用します。
既存のトークンがある場合、このエンドポイントは target アプリケーションのシークレットで署名された新しいトークンを生成します。これは、アプリケーションから API にユーザーの ID を受け渡すために使用されます。
委任トークンの種類はプロバイダーによって異なります。たとえば、Azure Blob Storage 向けに発行される場合は SAS (Shared Access Signature) になります。Firebase Add-on 向けであれば、 になります。
認証済みユーザーの は、特定のターゲット向けの委任トークンをリクエストするために /delegation エンドポイントで使用できます。ターゲットには、Auth0 で設定された Application Add-on を指定できます。これを実行できる Add-on は、 または Add-on 以外です。Add-on は、Firebase などの Add-on サービスから取得したシークレットを使用して Auth0 で設定されている必要があります。シークレットの設定手順は、各 Add-on の設定ページで確認できます。これらのシークレットは委任トークンの署名に使用され、Add-on API がトークンを検証して信頼できるようにします。
委任エンドポイントでは、target、scope、呼び出す API (api_type) 、および追加パラメーター用の自由形式の領域など、委任トークンの内容を制御する複数のパラメーターを設定できます。
有効化した Add-on の新しいトークンを Auth0.js を使用して取得する方法については、「Delegation Token Request」を参照してください。なお、この例は Auth0.js ライブラリの バージョン 7 を対象としています。Auth0.js の バージョン 8 では、委任 はサポートされていません。
有効期間と、委任トークンを失効できるかどうかは、Add-on ごとに異なります。詳しくは、各 Add-on API の提供元が公開しているドキュメントを参照してください。
公開アプリケーションで 委任 エンドポイントを使用する際は、重要な注意点があります。
公開アプリケーションから /token エンドポイントを呼び出すと、Application Settings の JsonWebToken Signature Algorithm が HS256 に設定されていても、IDトークン は強制的に RS256 で署名されます。
その後、その IDトークン を使って 委任 エンドポイントを呼び出すと、アプリケーションの JsonWebToken Signature Algorithm が HS256 に設定されている場合は失敗します。これは、委任 ではアプリケーションの設定に従って検証が行われる一方、IDトークン はアルゴリズムが強制的に変更されたため、別のアルゴリズムで発行されているためです。
そのため、公開アプリケーションで 委任 を使用する場合は、アプリケーションの JsonWebToken Signature Algorithm を RS256 に設定することが重要です。