Describe cómo funcionan los tokens de delegación en Auth0.
De forma predeterminada, la delegación está deshabilitada para los inquilinos que no usaban ningún add-on a fecha del 8 de junio de 2017. Los inquilinos heredados que actualmente usan un add-on que requiere delegación pueden seguir usando esta funcionalidad. Si la funcionalidad de delegación cambia o se elimina del servicio en algún momento, se notificará con antelación a los clientes que la usan actualmente y se les dará tiempo suficiente para migrar.
Se debe obtener y usar un token de delegación cuando una aplicación necesite llamar a la API de un Add-on de aplicación, como Firebase o SAP, registrado y configurado en Auth0, dentro del mismo inquilino que el programa que realiza la llamada.A partir de un token existente, este endpoint generará un nuevo token firmado con el secreto de la aplicación target. Esto se usa para transmitir la identidad del usuario desde la aplicación hasta una API.El tipo de token de delegación varía según el proveedor. Por ejemplo, si se emite para Azure Blob Storage, será una SAS (Shared Access Signature). Si es para el Add-on de Firebase, será un .El de un usuario autenticado se puede usar con el endpoint /delegation para solicitar un token de delegación para un target concreto. El target puede ser un Add-on de aplicación configurado en Auth0. Los Add-ons para los que esto se puede hacer son aquellos que no son Add-ons de ni de . El Add-on debe estar configurado en Auth0 con secrets obtenidos del servicio del Add-on, como Firebase. Las instrucciones para configurar los secrets están disponibles en la página de configuración de cada Add-on. Los secrets se usan para firmar el token de delegación, de modo que la API del Add-on pueda validar el token y confiar en él.El endpoint de delegación le permite establecer varios parámetros que controlan el contenido del token de delegación, incluidos target, scope, la API a la que se va a llamar (api_type) y un campo adicional de formato libre para parámetros adicionales.
Para ver un ejemplo de cómo obtener un nuevo token para un Add-on que haya activado con Auth0.js, consulte Solicitud de token de delegación. Tenga en cuenta que este ejemplo corresponde a la versión 7 de la biblioteca Auth0.js; la delegación no es compatible con la versión 8 de Auth0.js.
El período de validez y la posibilidad de revocar un token de delegación varían según cada Add-on. Para obtener más información, consulte la documentación disponible del proveedor de la API de cualquier Add-on.
Usar tokens de delegación con aplicaciones públicas
Hay una advertencia importante que debes tener en cuenta al usar el endpoint de delegación con aplicaciones públicas.Si llamas al endpoint /token desde una aplicación pública, el ID Token se firmará de forma obligatoria con RS256, incluso si el algoritmo de firma de JsonWebToken en la configuración de la aplicación está configurado como HS256.Si después llamas al endpoint de delegación con ese ID Token, fallará si el algoritmo de firma de JsonWebToken de la aplicación estaba configurado como HS256. Esto se debe a que la delegación valida según la configuración de la aplicación, pero el ID Token se emitió con un algoritmo distinto debido al cambio forzado de algoritmo.Por lo tanto, si tienes previsto usar delegación con una aplicación pública, es importante que configures el algoritmo de firma de JsonWebToken de tu aplicación como RS256.