Vaya, he perdido mi teléfono. ¿Cómo puedo obtener el OTP ahora?

¿Qué sucede si implementaste la autenticación de dos factores con tu teléfono y lo perdiste?

¿Cómo recuperar y usar otro programa, por ejemplo, pass-otp, en su lugar?

Dado que no se puede iniciar sesión sin el segundo factor, ¿cómo obtener los tokens (secreto, emisor) que permitirán configurar otro programa?

2 Me gusta

Tendrás que desactivar la autenticación de dos factores (2FA) a través de la consola de Rails. Por el momento, Discourse no cuenta con un mecanismo de recuperación integrado basado en SMS o correo electrónico.

4 Me gusta

Discourse dispone de tokens de respaldo que deben utilizarse si pierdes tu dispositivo OTP.

También puedes registrar el OTP en varios dispositivos.

Las claves FIDO2 también pueden utilizarse, y Discourse admite el uso de múltiples claves, por lo que puedes tener claves de respaldo almacenadas en lugares seguros, tu clave principal y las que están integradas en tu dispositivo, como la huella dactilar de Android o los dispositivos de inicio de sesión de Windows Hello en portátiles.

Si no hiciste ninguna de estas opciones, tendrás que contactar con el equipo de administración y pedirles que desactiven la autenticación en dos pasos (2FA) en tu cuenta.

12 Me gusta

Vale, ¿podrías indicarme el procedimiento para desactivar la 2FA desde la consola?

2 Me gusta

Busca “disable 2fa” y el primer resultado dice

Así que:

./launcher enter app
rails c
id = User.find_by(username: "TUUSUARIO").id
UserSecondFactor.totps.where(user_id: id).each(&:destroy!)
9 Me gusta

Bueno, en realidad, después de seguir el método anterior, no tengo posibilidad de iniciar sesión, ni siquiera por correo electrónico, con el siguiente mensaje:

El método de segundo factor seleccionado no está habilitado para tu cuenta.

Otro administrador verificó que la cuenta no tenía 2FA habilitado.


EDIT He reorientado el tema a bug porque la solución propuesta no funciona.

1 me gusta

Hoy lo volví a revisar y descubrí que:

[25] pry(main)> how.totp_enabled?
=> false
[26] pry(main)> how.backup_codes_enabled?
=> true
[27] pry(main)> how.totp_or_backup_codes_enabled?
=> true

Así que intenté eliminar también los códigos de respaldo, siguiendo la respuesta anterior de @falco:

UserSecondFactor.backup_codes.where(user_id: id).each(&:destroy!)

Ahora, aquí está la solución completa para deshabilitar OTP en un usuario que perdió su forma de acceder: debes eliminar tanto las entradas de totps como los backup_codes, de modo que la llamada a #totp_or_backup_codes_enabled? devuelva false.

3 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.