Discourse viene con su propio sistema de autenticación integrado directamente en webauthn para 2FA. Creo que la única gran deficiencia que tenemos ahora es que no permitimos que la 2FA sea el único factor (opcionalmente).
Espero poder hacer de esto una opción para Discourse también, realmente odio las contraseñas y la 2FA + desafío solamente, para mí, se siente intrínsecamente mejor que la contraseña, sin duda.
Complicado, depende de cuán profundo quieras ir en la madriguera del conejo. Una PR de prototipo que agregue una configuración del sitio sería excelente, pero entiendo perfectamente que esto puede ser un compromiso de tiempo bastante grande.
Una actualización rápida: pronto llegará la compatibilidad con passkeys en Discourse. He estado trabajando en esto durante las últimas semanas y tenemos un par de PR (solicitudes de extracción) preliminares listas. Ver #23586, #23587 y #23591.
Creo que en unas 3-4 semanas podremos fusionar esto (detrás de una configuración del sitio desactivada por defecto). Y si concedemos unas semanas más para pruebas y corrección de errores, sospecho que podremos tener esto listo para producción en unos dos meses. ¡Mantente atento!
Acabo de habilitar la configuración del sitio y agregué una passkey a mi cuenta en un foro que administro, y esto parece funcionar perfectamente. Para habilitarlo temprano en un sitio, esto debería funcionar:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.experimental_passkeys=true
Una vez que esté habilitado, parece que solo tienes que abrir https://forum.example.com/my/preferences/security y agregar una passkey, luego cerrar sesión y usar la opción Iniciar sesión con una passkey para volver a iniciar sesión.
Hola a todos, sí, hemos fusionado algunas PR que añaden soporte para passkeys y ya lo estamos probando internamente.
Los pasos anteriores son correctos, si te gustaría ser un probador muy, muy temprano de la función. Todavía estamos ajustando algunas cosas, sin embargo, y una actualización/anuncio oficial llegará pronto.
Otra actualización antes de hacer un anuncio oficial: las passkeys ya están habilitadas aquí en meta. Por favor, pruébenlas e informen de cualquier problema respondiendo en este tema.
Nuestro plan es seguir probando la función durante otra semana más bajo la bandera experimental. Luego las anunciaremos oficialmente y eliminaremos la configuración experimental del sitio (es decir, el soporte de passkeys estará habilitado por defecto en todas las instancias que utilicen inicios de sesión locales).
¡Lo probé en Escritorio (Windows 11, Chrome) y funciona perfectamente!
Tuve que presionar Enviar correo electrónico de restablecimiento de contraseña para confirmar mi identidad porque normalmente inicio sesión con Google, así que no sé mi contraseña.
Lo probé en Android (10) y Chrome/App. Funciona bien, sin embargo:
Tocar la entrada activa el modal de passkey.
Ignorarlo y tocar la entrada de nuevo me permite escribir
Tocar el botón no hace nada (aparte de seleccionarlo y cerrar el teclado)
Gracias por el informe @Arkshine, había olvidado incluir un pequeño cambio en el componente móvil en un commit hace dos días. Un error vergonzoso, el botón no hacía nada en todos los dispositivos móviles.
De todos modos, ya está arreglado, lo acabo de probar en mi Android y debería funcionar para ti también.
Parece que un sistema ChromeOS no se puede usar como clave de acceso con Discourse (aunque se puede usar como tal con otros sitios web), ¿es eso intencional?
No lo estamos bloqueando específicamente. ¿Qué es exactamente un “sistema chromeos”? ¿Es Chrome en ChromeOS? ¿Puede compartir la versión del navegador y del sistema operativo?
Ah, interesante, gracias por la captura de pantalla. ¿Sospechas que el dispositivo no admite la verificación del usuario? ¿Puedes usar huella dactilar/Face ID o un PIN para desbloquear el dispositivo?
Según esta página, parece que la compatibilidad con Chrome OS es irregular.
Uso una contraseña. Podría valer la pena señalar que puedo agregar este dispositivo como un método de 2FA a una cuenta usando webauthn, pero no puedo agregarlo como una passkey.