Para un proyecto en el que estamos trabajando, necesitamos implementar la autenticación de múltiples factores. Estábamos planeando hacer esto con una tarjeta NFC y un lector NFC que vamos a construir con un Arduino.
El flujo de trabajo planificado:
- Un usuario inicia sesión en el sitio; Se verifican las credenciales. Habrá una bandera en la base de datos que dice que los usuarios necesitan usar su tarjeta de acceso.
- El sitio web utilizará ajax para llamar a un servicio de escritorio que está instalado. El servicio llama al Arduino conectado por usb para decir que el usuario debe mantener presionada la tecla para el dispositivo.
-
El usuario hace esto. La clave dentro de la tarjeta de acceso se transmite de nuevo al servicio. El servicio pasa este canal al servidor. Cuando sea aceptado:
1: el servidor estableció la marca en la base de datos en true
2: Responde a la solicitud de ajax desde el navegador para indicar que puede continuar.
¿Sería una buena idea implementar tu propio método como este? Hay alguna discusión al respecto. ¿De qué otra manera se puede implementar esto? ¿Con un protocolo existente?
Un requisito es que el factor múltiple funcione en múltiples dispositivos (Windows, Mac, Android) y en todos los navegadores.
Editar
Gracias por las respuestas. Como esperaba, hay mejores opciones.
Pero no puedo encontrar la solución correcta. Necesito todo el soporte del navegador. ( enlace ). ¿Hay algún programa que extienda el soporte de u2f a todos los navegadores?
No quiero usar teléfonos. Sólo tarjetas.