Importación de usuarios sin restablecimiento de contraseñas
Las guías de migración de identidad siempre dicen lo mismo. Dicen que los usuarios deben restablecer sus contraseñas. Esto no es una regla. Es una elección. La mayoría de las herramientas eligen el camino fácil en lugar del correcto.
Puedes migrar usuarios sin un restablecimiento. Solo necesitas verificar los hashes de contraseña existentes. Si tienes los hashes antiguos y tu nuevo sistema puede leerlos, el movimiento pasa desapercibido.
Un hash de contraseña no es un secreto. Bcrypt es bcrypt. Lleva su propia sal (salt) y factor de costo. Cualquier sistema que use bcrypt puede verificarlo. PBKDF2 funciona de la misma manera. Si tienes el hash, puedes comprobar una contraseña contra él sin conocer la contraseña real.
Utiliza la migración diferida (lazy migration) para ahorrar tiempo.
- Lleva el hash antiguo al nuevo sistema.
- Verifica el hash cuando el usuario inicie sesión.
- Reemplázalo con un nuevo formato inmediatamente.
En unas pocas semanas, tu base de datos se actualiza sola. Obtendrás cero correos de restablecimiento de contraseña y cero tickets de soporte.
Diferentes fuentes proporcionan diferentes formatos.
Duende o ASP.NET Identity autoalojados: Estos utilizan V3 PBKDF2 o bcrypt. El nuevo sistema puede verificar y volver a hashear estos fácilmente. Este es un proceso limpio.
Auth0: Estos utilizan bcrypt. Puedes importarlos directamente. Sin embargo, no puedes obtenerlos a través de una API estándar. Auth0 no devuelve hashes a través de la API por seguridad. Debes solicitar un archivo de exportación masiva a su soporte técnico. Este archivo contiene los hashes bcrypt. Utiliza este archivo para que la migración pase desapercibida.
Si no puedes obtener los hashes, los usuarios deberán establecer una nueva contraseña. Este es un plan de contingencia honesto. No permitas que una herramienta te obligue a realizar un restablecimiento si puedes evitarlo.
Los restablecimientos forzados causan problemas:
- Crean una alta carga de soporte.
- Entrenan a los usuarios para confiar en correos de phishing.
- Convierten un cambio silencioso en un problema ruidoso.
Una buena migración debería sentirse como si no hubiera pasado nada. Pregunta si puedes obtener los hashes antiguos antes de decirles a tus usuarios que restablezcan sus contraseñas.
Fuente: https://dev.to/authagonal/importing-users-without-a-password-reset-5h1j
