> ## 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.

> Describe cómo funcionan los tokens de delegación en Auth0.

# Tokens de delegación

<Warning>
  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.
</Warning>

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 <Tooltip tip="JSON Web Token (JWT): Formato estándar de ID Token (y, con frecuencia, formato de Token de acceso) usado para representar claims de forma segura entre dos partes." cta="Ver glosario" href="/es/docs/glossary?term=JWT">JWT</Tooltip>.

El <Tooltip tip="ID Token: Credencial destinada al propio cliente, en lugar de al acceso a un recurso." cta="Ver glosario" href="/es/docs/glossary?term=ID+token">token de ID</Tooltip> 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 <Tooltip tip="Security Assertion Markup Language (SAML): Protocolo estandarizado que permite que dos partes intercambien información de autenticación sin una contraseña." cta="Ver glosario" href="/es/docs/glossary?term=SAML">SAML</Tooltip> ni de <Tooltip tip="Security Assertion Markup Language (SAML): Protocolo estandarizado que permite que dos partes intercambien información de autenticación sin una contraseña." cta="Ver glosario" href="/es/docs/glossary?term=WS-Fed">WS-Fed</Tooltip>. 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.

<div id="auth0js-example">
  ## Ejemplo de Auth0.js
</div>

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**.

<div id="validity-period-and-termination">
  ## Período de validez y terminación
</div>

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.

<div id="use-delegation-tokens-with-public-applications">
  ## Usar tokens de delegación con aplicaciones públicas
</div>

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`.
