Nuevo mecanismo creación de usuarios y recuperación contraseña

Aprovechando el PenTesting de Plataforma que está haciéndonos el equipo de Cyber y una propuesta de mejora, se ha implementado un nuevo mecanismo para la creación de usuarios desde el auto-registro (sign-up), así como para la recuperación de contraseña en caso de olvido y comunicación de modificación de contraseña para un usuario desde el control-panel o desde las APIs de gestión, evitando la transmisión de contraseñas vía email.

https://gitlab.devops.onesait.com/onesait/platform/engine/onesait-platform/onesait-cloud-platform/-/issues/1909

Auto-registro (sign-up)

Se ha modificado el formulario de alta de usuario para que no sea necesario registrar la contraseña, sino que ésta la proporcionará el usuario al validar su email:

Esto no registra al usuario todavía, sino que genera un email a la dirección de correo proporcionado, con un link en el que terminar el proceso de registro.

El usuario recibirá un email de este estilo, indicando la url en la que puede terminar el proceso de registro, así como un aviso de que en caso de no finalizar el proceso en un tiempo dado (configurable por instalación), el link desaparecerá así como la información previa aportada.

 

Finalizado el registro se vuelve al login para que el usuario se autentique si lo desea

Recuperación de contraseña

Anteriormente se enviaba la contraseña por email directamente. Ahora se lanza un flujo de recuperación de contraseña:

El usuario registrado introduce su dirección de email para su recuperación:

 

Y se devuelve al usuario a la página de login indicándole que consulte su email:

En el email se indica el enlace para introducir la nueva contraseña, así como el tiempo máximo para completar el proceso, tiempo tras el cual el link dejará de estar disponible

The link redirects to a new form to add the new password:

 

Tras lo cual se devuelve al usuario a la página de login

 

Reseteo o modificación de contraseña por un Administrador desde el control panel

Hay otros dos puntos en los que un usuario administrador puede modificar la contraseña de otro usuario:

  • Desde el listado de usuarios:

  • Desde la edición de usuarios:

En el primer caso, se genera una contraseña aleatoria y es obligatorio modificarla en un tiempo configurable o el usuario se bloqueará. En el segundo, no es necesario modificarla.

Anteriormente se enviaba un email con la nueva contraseña modificada o generada. Con el nuevo mecanismo, en ambos casos se envía email con un link a una pantalla donde consultar la nueva contraseña. Pasado un tiempo configurable, el link deja de estar disponible:

Siguiendo el link se llega a la pantalla de contraseña:

Gestión de contraseñas desde APIs REST

  • Creación de usuarios:

En las APIs, el registro de usuario no aplica, ya que se permite crear usuarios, pero con un token Bearer que permita hacerlo, por lo que en realidad quien use esa funcionalidad ya está autenticado en la plataforma y dispone de permisos adecuados.

  • Reseteo de contraseñas:

Actualmente se hace enviando un email con la contraseña. Se ha procedido a deprecar esta funcionalidad, para que siga siendo retro-compatible con las aplicaciones que actualmente utilicen este método, pero que sean conscientes de que en el futuro desaparecerá:

 

Se ha añadido una nueva función:

que envía el mismo email que cuando se hace vía página de login, y necesita confirmación del usuario introduciendo su nueva contraseña yendo al mismo formulario.