Comprender los tokens de actualización
Conoce los tokens de actualización y la función que desempeñan en el proceso de autorización
¿Qué son los tokens de actualización?
Las aplicaciones seguras modernas suelen utilizar tokens de acceso para garantizar que un usuario tenga acceso a los recursos adecuados, y estos tokens de acceso suelen tener una vida útil limitada. Esto se hace por varias razones de seguridad: por un lado, limitar la vida útil del token de acceso limita la cantidad de tiempo que un atacante puede utilizar un token robado. Además, la información contenida en el token de acceso o referenciada por él podría perder vigencia.
Cuando los tokens de acceso caducan o pierden su validez, pero la aplicación sigue necesitando acceder a un recurso protegido, se enfrenta al problema de obtener un nuevo token de acceso sin obligar al usuario a conceder de nuevo el permiso. Para resolver este problema, OAuth 2.0 introdujo un artefacto llamado token de actualización. Un token de actualización permite a una aplicación obtener un nuevo token de acceso sin preguntar al usuario.
Obtención de tokens de actualización
Una aplicación puede solicitar un token de actualización como parte del proceso de obtención de un token de acceso. Muchos servidores de autorización implementan el mecanismo de solicitud de token de actualización definido en la especificación OpenID Connect. En este caso, una aplicación debe incluir el ámbito offline_access
al iniciar una solicitud de código de autorización. Después de que el usuario se autentique correctamente y otorgue su consentimiento para que la aplicación acceda al recurso protegido, la aplicación recibirá un código de autorización que se puede intercambiar en el punto de conexión del token tanto por un token de acceso como por un token de actualización.
Uso de tokens de actualización
Cuando se necesita un nuevo token de acceso, la aplicación puede realizar una solicitud POST
al punto de conexión del token utilizando un tipo de concesión de refresh_token
(las aplicaciones web deben incluir un client secret). Para utilizar un token de actualización para obtener un nuevo token de identificación, el servidor de autorización tendría que admitir OpenID Connect y el ámbito de la solicitud original tendría que incluir openid
.
Aunque los tokens de actualización suelen ser de larga duración, el servidor de autorización puede invalidarlos. Algunas de las razones por las que un token de actualización puede dejar de ser válido son:
- el servidor de autorización ha revocado el token de actualización;
- el usuario ha revocado su consentimiento de autorización;
- el token de actualización ha caducado;
- la política de autenticación del recurso ha cambiado (por ejemplo, originalmente el recurso solo utilizaba nombres de usuario y contraseñas, pero ahora requiere MFA).
Dado que los tokens de actualización pueden tener una larga vida útil, los desarrolladores deben asegurarse de que existen requisitos de almacenamiento estrictos para evitar que se filtren. Por ejemplo, en las aplicaciones web, los tokens de actualización solo deben salir del backend cuando se envían al servidor de autorización, y el backend debe ser seguro. El client secret debe protegerse de forma similar. Las aplicaciones móviles no requieren un client secret, pero deben asegurarse de almacenar los tokens de actualización en algún lugar al que solo pueda acceder la aplicación cliente.
Tokens de actualización en Auth0
Con Auth0, puedes obtener un token de actualización al utilizar el flujo de código de autorización (para aplicaciones web regulares o nativas/móviles), el flujo de dispositivo o la concesión de contraseña de propietario de recurso Todos los principales SDK de Auth0 soportan la adquisición, uso y revocación de tokens de actualización de forma inmediata, sin tener que preocuparte por el formato de los mensajes. Los lenguajes compatibles con SDK incluyen Node.js, .NET, PHP, ¡y muchos más!
Para obtener más información sobre los tokens de actualización en Auth0, incluido cómo revocarlos, consulta la documentación sobre tokens de actualización.
Regístrese gratis
Empiece a construir hoy mismo y proteja sus aplicaciones con la plataforma de identidad Auth0.