Actualizar tokens en Auth0
Published: 2022-02-23 19:37:59

Auth0 emite un token de acceso o un token de ID en respuesta a una solicitud de autenticación. Puedes usar tokens de acceso para realizar llamadas autenticadas a una API segura, mientras que el token de ID contiene atributos de perfil de usuario representados en forma de notificaciones. Ambos son tokens web JSON (JWT) y, por lo tanto, tienen fechas de vencimiento indicadas mediante el claim **exp**, así como medidas de seguridad, como firmas. Por lo general, un usuario necesita un nuevo token de acceso cuando obtiene acceso a un recurso por primera vez, o después de que vence el token de acceso anterior que se le otorgó.

Un token de actualización es un tipo especial de token que se utiliza para obtener un token de acceso renovado. Puedes solicitar nuevos tokens de acceso hasta que el token de actualización esté en DenyList. Las aplicaciones deben almacenar tokens de actualización de forma segura porque esencialmente permiten que un usuario permanezca autenticado para siempre.

Para las aplicaciones nativas, los tokens de actualización mejoran significativamente la experiencia de autenticación. El usuario tiene que autenticarse una sola vez, a través del proceso de autenticación web. La re-autenticación posterior puede tener lugar sin la interacción del usuario, utilizando el token de actualización.

Puede aumentar la seguridad mediante la rotación del token de actualización, que emite un nuevo token de actualización e invalida el token anterior con cada solicitud realizada a Auth0 para obtener un nuevo token de acceso. Rotar el token de actualización reduce el riesgo de un token de actualización comprometido.

El comportamiento del token de actualización se aplica a las aplicaciones compatibles con OIDC. Puedes configurar una aplicación para que sea compatible con OIDC de una de las siguientes maneras:

- Habilitación del indicador de conformidad con OIDC para una aplicación.

- Pasar un claim de audiencia al endpoint `/authorize` de la API de autenticación.

<h2>Compatibilidad con SDK</h2>

<h3>Para aplicaciones web</h3>
Los SDK de Auth0 admiten tokens de actualización que incluyen:

- Node.js
- ASP.NET Core
- PHP
- Java

<h2>Para aplicaciones de una sola página</h2
>
Proporcionar una autenticación segura en los SPA tiene una serie de desafíos según el caso de uso de su aplicación. Los nuevos controles de privacidad del navegador, como la prevención de seguimiento inteligente (ITP), tienen un impacto negativo en la experiencia del usuario en los SPA al impedir el acceso a cookies de terceros.

Auth0 recomienda usar la rotación de tokens de actualización, que proporciona un método seguro para usar tokens de actualización en SPA, al mismo tiempo que proporciona a los usuarios finales un acceso fluido a los recursos sin la interrupción de la experiencia de usuario causada por la tecnología de privacidad del navegador, como ITP.

La guía anterior de Auth0 era utilizar el flujo de código de autorización con clave de prueba para el intercambio de código (PKCE) junto con la autenticación silenciosa en los SPA. Esta es una solución más segura que el flujo implícito pero no tan segura como el flujo de código de autorización con clave de prueba para intercambio de código (PKCE) con rotación de token de actualización.