Cómo Implementar A2F usando Swivel en una aplicación Scriptcase? Quiero empezar hablando de Swivel, Swivel es un proveedor de soluciones de autenticación quienes han sido galardonados años atrás con el Premio SC Magazine Europe Award a la mejor solución de autenticación multifactor.
Dentro de sus productos de factores de autenticación se encuentran: OneTouch PUSH, SMS, Token, PINpad, TURing y PINsafe. En esta publicación usaremos TURing aunque realmente cambiando unos parámetros podríamos usar PINsafe enviando un SMS por ejemplo.
Cómo funciona TURing ?
Primero, a cada usuario que usará esta opción se le asignará previamente un pin, el cual es un código de 4 dígitos, el cual el usuario deberá recordar – tal y como la clave de nuestra tarjeta débito -. Esta labor la realiza el administrador de servidor Swivel.
La aplicación web para poder hacer la doble autenticación (A2F) del usuario requiere de un OTC – One Time Code, el cual solicitará que el usuario digite. Si no sabes que es te invito a leer mi anterior publicación “Autenticación de 2 factores con Scriptcase”.
Para poder determinar cual es el OTC que el usuario debe ingresar e como implementar , en el momento de la autenticación y luego de hacer la conexión al servidor Swivel, un código de 10 dígitos son enviados al navegador del usuario en forma de una imagen rectangular, luego, el usuario toma los números representados por su PIN en dicha imagen – el pin que previamente el administrador de Swivel le asignó -. Es decir, que si el PIN es 5273, entonces simplemente debe escribir el número que en la imagen está en la 5a posición, luego el número que está en la 2a posición, luego el número de la 7a posición y finalmente el número de la 3a posición, todo esto basado en la imagen que el servidor ha enviado.
Ejemplo TURing. Con base en el ejemplo descrito anteriormente, el OTC sería 3507
Cabe anotar que obviamente las imágenes generadas por el servidor son dinámicas, distintas cada vez que se solicita un OTC.
Otro punto a tener en cuenta, y lo mencionaba en la publicación anterior, es que cada proveedor indica cómo debe integrarse y en muchos casos coloca a disposición del desarrollador recursos en diferentes lenguajes de programación. Pues en el caso de Swivel, tenía ejemplos en PHP, los cuales bajé y empecé a entender cómo funcionaba para luego hacer la adaptación en Scriptcase. Les recomiendo que siempre prueben por aparte los demos o ejemplos de los proveedores asegurándose de que funcionan bien antes de ir a Scriptcase a implementarlo, esto les puede evitar grandes dolores de cabeza. ?
En resumen, lo que primero que hice fué entender el funcionamiento del ejemplo y lo adapté a mis necesidades creando una librería php, la cual usaría en Scriptcase por medio de 2 aplicaciones de tipo blank, decidí que fueran 2 aplicaciones diferentes por la manera en que trabaja el TURing. Una aplicación llamada Token, la cual es llamada luego de la validación del Login y Password normal ( primer factor) y que gestiona la configuración de conexión al servidor, como también su interfaz gráfica de solicitud del segundo factor y por último, la validación del código ingresado por el usuario. La segunda aplicación podría ser considerada como un procedimiento el cual se encarga explícitamente de mostrar la imagen generada por el servidor por medio de una url en la plantilla de la aplicación 1.
Tal vez la anterior explicación puede ser algo confusa, por tal razón hice el siguiente video en donde explico con más detalle, la manera en la cual se hizo la implementación.
Es evidente que existen diferentes maneras de implementar, pero el objetivo de esta publicación es mostrarles cual es una de ellas y que pueda servir de ejemplo en sus proyectos.
En mi siguiente publicación les hablaré de cómo Implementar A2F usando un Desarrollo Propio en NodeJS.
¡Vea más artículos en nuestro blog!
También podría gustarte…