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