Sin embargo, un pequeño detalle: en Safari/Mac, la autenticación web es una función solo para desarrolladores y viene desactivada por defecto. Cuando se habilita, funciona bien. Pero probablemente deberíamos mostrar un mensaje o una advertencia cuando la autenticación web no esté habilitada. Actualmente, en Safari por defecto, nada en la interfaz indica que el proceso de registro no funcionará (la consola muestra un error):
Correcto, pero en este caso es una parte normal del trabajo en Discourse, por lo que cubriríamos el costo. Disculpa si no quedó claro, pero ¿ahora sí lo está?
¡Felicidades por el soporte de WebAuthn! Es interesante ver que implementaron su propia solución en lugar de usar el gem webauthn. Si tienen algún comentario para nosotros, me encantaría escucharlo
Una sugerencia para el boceto del “Flujo de inicio de sesión”: WebAuthn tiene un logotipo oficial que podría usarse en lugar de una imagen genérica de huella dactilar. Además de la huella dactilar, el reconocimiento facial, los patrones de deslizamiento y el PIN también son opciones comunes de verificación del usuario.
Gracias por tus comentarios, Rafe. Tendremos que agregar el algoritmo adicional aquí. Y también gracias por el enlace al logotipo oficial. Mi idea al configurar solo un algoritmo fue agregar la cantidad mínima de algoritmos compatibles para que todo funcione en la V1, ya que no estaba seguro de las sutilezas entre todos los algoritmos, y ES256 se utilizaba en todos los ejemplos que pude conseguir.
En cuanto a por qué en ese momento opté por no usar el gem, lo pensé mucho y sabía que en algún momento me preguntarían sobre esta decisión. Ciertamente leí gran parte del código del gem para comprender mejor la implementación. Las razones principales fueron:
No quería agregar una dependencia adicional a Discourse. Cada dependencia de gem añade sobrecarga adicional, sin importar lo excelente que sea el código de ese gem.
Quería comprender bien cómo funciona esta pieza crítica de seguridad de Discourse. Pensé que tener el código dentro del núcleo de Discourse haría las cosas más claras y fáciles de extender, sin tener una “caja negra”, por así decirlo. (No es una crítica al gem en sí ni a su complejidad; sé que la gente podría simplemente revisar el código allí, y me pareció bastante fácil seguir lo que ocurría).
No quería agregar más código del mínimo necesario para que WebAuthn funcionara. Por ejemplo, omití la atestación en nuestra implementación inicial. No creí que tuviera mucho sentido añadir todo un taller de herramientas cuando solo necesitábamos una llave inglesa.
Dicho esto, esto podría haber sido un error de mi parte, y si llegamos a la V2, V3, etc., del soporte de WebAuthn con atestaciones, más algoritmos compatibles y demás, podría volverse demasiado laborioso para nosotros convertirnos en “expertos en WebAuthn”, por así decirlo. En ese punto, creo que podríamos reevaluar el uso del gem.
Es una lástima que los iPhones necesiten un dispositivo de terceros para ello. Espero que iOS++ lo tenga integrado con la autenticación del dispositivo y el chip de seguridad. Como Windows, macOS y Android.
¡Estoy tan emocionado de iniciar sesión en Discourse solo con mirarlo!!
En realidad, me sorprende un poco que aún no haya soporte integrado para autenticadores… pero son noticias emocionantes de todos modos. Seguiré esperando con el aliento en vilo.
He observado una posible inconsistencia en la interfaz de usuario al indicar la activación de la autenticación en dos pasos (2FA) para algunos usuarios en una instancia alojada de Discourse:
La lista de todos los usuarios «Staff» no muestra que mi cuenta tenga la 2FA activada:
La página de resumen de la cuenta sugiere que la 2FA está activada, dado que el texto del botón dice «Gestionar autenticación en dos pasos».
La sección de Autenticación en dos pasos indica que una clave de seguridad está habilitada y que el segundo factor podría desactivarse.
Otros usuarios de la misma instancia que optan por usar un autenticador basado en tokens (sin clave de seguridad) muestran el icono del candado en la lista de «todos los usuarios».
Por favor, hágamelo saber si se trata de un error en la interfaz de usuario o si simplemente añadir una clave de seguridad no es suficiente para activar la 2FA en esta plataforma.
Echaré un vistazo a esto, pero mi mejor suposición es que se trata simplemente de un error de interfaz de usuario en la lista de usuarios, si la sección real de 2FA de la interfaz muestra todo correctamente. ¡Gracias por el informe!
Apple se ha unido a la Alianza FIDO (también conocida como Fast Identity Online), una organización que ya incluye a gigantes como Google, Intel, Microsoft y Samsung.