TN300AE - Implementar Doble Factor de Autenticación (2FA) en AVEVA Edge

TN300AE - Implementar Doble Factor de Autenticación (2FA) en AVEVA Edge

En esta Nota Técnica vamos a implementar un Doble Factor de Autenticación para mejorar la seguridad de nuestro proyecto de AVEVA Edge.

Por defecto, AVEVA Edge no incluye ninguna función o característica que habilite esta mejora del sistema de seguridad del usuario. Por ello, se aplicará el siguiente WorkAround mediante scripts que usarán el envío de emails para las verificaciones.

Para ello, iniciamos con una aplicación demo muy simple con un Log-on para que el usuario ingrese sus credenciales y contraseña de acceso a la aplicación.



El problema típico de este tipo de seguridad, es que si alguien conoce o accede a tu información personal, puede obtener tus credenciales y acceder a tu aplicación sin tu consentimiento.
Con el 2FA implementado, en el momento en que se ingrese correctamente las credenciales de la cuenta en cuestión, se solicita un código 2FA que se enviará al correo del usuario:



Para configurar esto, en la pestaña Project, accedemos al menú "E-Mail/FTP" y configuramos un envío de correo con la siguiente configuración:



Cabe destacar que en este caso utilizamos el Gmail SMTP Service con encriptación TLS, para dicho envío de correo de confirmación 2FA proveniente de la cuenta de correo creada para el ejemplo "avevaedge2fa@gmail.com".

Por otro lado, se debe configurar una Worksheet muy breve con las siguientes tres líneas de código:



La primera línea de código se utiliza para generar el código de autenticación, utilizando la función random que te genera un número del 0 al 1, y multiplicándolo por 100.000 para tener un entero de 6 cifras para su uso. Este número generado cambiará a cada ejecución de script, evitando repeticiones esperadas.

La segunda línea de código se utilizará como query a la base de datos en SQLpara verificar qué usuario intenta loguearse y que email tiene asociado, para usarlo como destinatario en el envío de correo configurado previamente.



La tercera línea de código del script se usa la función SendEmailExt() para enviar el correo con el código de autenticación generado. De los tres parámetros a inicializar de la función, se indica el string del título del correo que se desea enviar, el código que se genera en la primera línea, y el email del destinatario obtenido en la query a SQL de la segunda línea del srcript.



Finalmente, se mostrará como están configurados los botones de la aplicación demo de este ejemplo, para el uso del 2FA en el sistema de seguridad.

En el primer botón, se usa con script la función $Open("LogOn") para abrir la ventada de ingreso de usuario:



La ventana de LogOn tiene los campos y botones configurados así:







En este último script, se evalúan las credenciales aportadas por el usuario y en caso que sean correctas, se envía el correo al destinatario asociado al usuario ingresado, con el código de autenticación 2FA y abre la ventana para ingresarlo. En caso de credenciales inválidas, deniega el acceso.





Finalmente, en esta ventana se compara el código generado con el ingresado por el usuario, para permitir o denegar la entrada al mismo en función del resultado.




Alert
Nota Importante: Esta Nota Técnica se entrega “as is”, es decir, como complemento a la documentación del producto, pero no incluido dentro del ámbito del Soporte Técnico. Por tanto, cualquier mal funcionamiento derivado del contenido de esta nota técnica no es responsabilidad de Becolve Digital.