¿Es seguro volver a configurar un token de autenticación JSON Web Token (JWT) con las credenciales del usuario?

2

Según entiendo las respuestas a esta pregunta JWT: ¿la actualización de un token caducado es una buena estrategia? , uno debe usar un token de actualización para actualizar un token de autenticación que caduca.

Como mi aplicación web no debe tener estado y no puedo saber si el token de actualización fue revocado, no tiene sentido usar un token de actualización.

En su lugar, quiero actualizar el token de autenticación simplemente enviando las credenciales de los usuarios nuevamente para obtener un nuevo token de autenticación. Para que esto funcione, el cliente tiene que almacenar las credenciales en la memoria, lo que podría ser un problema.

¿Hay otras formas de lograr esto o es la única forma segura de agregar una lista de tokens de actualización revocados?

    
pregunta Hendrik 24.04.2016 - 12:01
fuente

1 respuesta

2

El mecanismo de actualización se construye con precisión para evitar guardar las credenciales. Las credenciales le dan acceso a toda la cuenta, mientras que refresh token solo le da acceso a auth token s que funcionará para el dominio designado.

Dice que su aplicación no tiene estado, pero si puede guardar las credenciales, ¿por qué no puede guardar un token de actualización?
Además, su aplicación debería manejar la caducidad de las credenciales tanto como debería manejar la caducidad del token de actualización. Aquí hay algunas maneras para que caduquen las credenciales:

  • El usuario cambió la contraseña
  • El usuario perdió el derecho de ejecutar la aplicación
  • La cuenta fue suspendida
  • usuario cambió el nombre de usuario

Este es el diseño básico que debe seguir:

  1. Intente comunicarse con su API de recursos usando su auth token
  2. Si 1. falló, intente adquirir un auth token con su refresh token
  3. Si 2. falló, muestre la vista de inicio de sesión para adquirir un nuevo refresh token

Sospecho que estás usando OAuth . Respeta el patrón de diseño que estás siguiendo, hacer algo fuera del patrón te pondrá en riesgo.

También podría ofrecer a sus usuarios la posibilidad de revocar una sesión ( refresh token ). De esa manera, pueden cerrar sesión en un dispositivo comprometido sin tener que cambiar su contraseña. Si guarda la contraseña, la única forma de cerrar la sesión de forma remota en un dispositivo es cambiar la contraseña y, por lo tanto, cerrar la sesión de todos sus dispositivos.

    
respondido por el Thibault D. 25.04.2016 - 10:20
fuente

Lea otras preguntas en las etiquetas