Actualizando el Módulo de Seguridad para Soporte de Inicio de Sesión con Google

Actualizando el Módulo de Seguridad para Soporte de Inicio de Sesión con Google

Con la sustitución del protocolo NCP por el protocolo TCP/IP de la ARPANET, la internet ganó espacio para evolucionar constantemente. A medida que más personas se unían a internet, las cosas necesitaban suceder más rápido, haciendo que el proceso de evolución fuera casi exponencial: cuanto más rápido era un servicio, más rápido queríamos que fuera. Hoy en día, tal rapidez puede, en muchas ocasiones, traducirse en lo que llamo "centralizar y automatizar": centralizar los servicios en un sistema y hacerlos fáciles de acceder, eliminando los pasos monótonos.

Con la nueva funcionalidad de inicio de sesión mediante cuenta de Google en el módulo de seguridad, es posible aprovechar todas las capas de seguridad del ecosistema de Google, manteniendo un alto nivel de agilidad, lo que resulta en una experiencia extremadamente satisfactoria para el usuario final.

En este artículo, aprenderemos cómo actualizar el módulo de seguridad para tener esta poderosa función en nuestro sistema.

Info
Tenga en cuenta que necesitará las credenciales "ClientID" y "Secret" de la biblioteca Google Identity Service preconfiguradas para utilizar esta funcionalidad. Si tiene dudas o no sabe cómo crear y configurar la biblioteca, lea el tutorial sobre cómo configurar el Google Identity Service!

Si no utilizaba la opción de redes sociales

Si su módulo de seguridad no usa la opción de inicio de sesión con redes sociales, será necesario prepararlo para recibir esta nueva función. Para ello, crearemos una nueva tabla en la base de datos llamada "sec_users_social":

Notes
Si su módulo de seguridad ya usa la opción de redes sociales con Twitter y/o Facebook, pase a la siguiente sección.

Warning
El Database Builder no está disponible para todos los SGBDs. Se pueden realizar los mismos cambios utilizando cualquier herramienta que permita gestionar bases de datos, como DBeaver.


1. Acceda al Database Builder en "Database → Database Builder":
2. Busque la opción "Comando SQL":

3. Ejecute el comando SQL "CREATE TABLE" con los campos "login", "resource" y "resource_id":

Warning
Tenga en cuenta que los campos son de tipo VARCHAR(255) porque estamos usando MySQL como ejemplo. Debe seleccionar el tipo correspondiente según su SGBD.

  1. CREATE TABLE `sec_users_social` ( `login` VARCHAR(255) NOT NULL, `resource` VARCHAR(255) NOT NULL, `resource_id` VARCHAR(255) NOT NULL, PRIMARY KEY (`login`, `resource`, `resource_id`) );


Actualizando el módulo con la nueva opción

Con todo correctamente configurado, simplemente actualice el módulo de seguridad:

1. Acceda a Módulos → Seguridad:

2. Haga clic en “Crear Módulo de Seguridad”:

3. Seleccione el tipo de seguridad que se utilizará:

Notes
La opción solo está disponible para los tipos "Grupo", "Aplicación" y "Usuario".


4. Seleccione la conexión que tiene las tablas desde tu módulo de seguridad, elige la opción “Usar tablas existentes” y marca “Usar redes sociales”:



5. Haga clic en el botón de recarga “↻” para que Scriptcase pueda ver los cambios en la tabla y haga clic en “Siguiente”:


6. Asocie los campos con las columnas correspondientes y haga clic en “Siguiente”:

USUARIO:

  • Tabla → sec_users
  • Login → login
  • Contraseña → pswd
  • Nombre → name
  • Teléfono → phone
  • Puesto → role
  • E-mail → email
  • Activo → active
  • Código de activación → activation_code
  • Administrador de privilegio→ priv_admin
  • Autenticación de dos factores (2FA) → mfa
  • Fotografia→ picture
  • Último cambio de contraseña → pswd_last_updated
  • Tiempo de revalidación → mfa_last_updated


GRUPO

  • Tabla → sec_groups
  • ID → group_id
  • Descripción → description


APLICACIÓN

  • Tabla → sec_apps
  • Nombre de la aplicación → app_name
  • Descripción → description
  • Tipo de Aplicación → app_type


USUARIO/GRUPO

  • Tabla → sec_users_groups
  • Login → login
  • Grupo de Código → group_id


GRUPO/APLICACIÓN

  • Tabla → sec_groups_apps
  • Grupo de Código → group_id
  • Nombre de la aplicación → app_name
  • De privilegios de acceso → priv_access
  • Privilegio de inserción → priv_insert
  • Eliminar privilegios → priv_delete
  • Actualización de privilegios → priv_update
  • Exportación de privilegios → priv_export
  • Privilegio de impresión → priv_print


REDES SOCIALES

  • Tabla → sec_users_social
  • Login → login
  • Tipo de red social → resource
  • ID red social → resource_id


AJUSTES

  • Tabla → sec_settings
  • Nombre → set_name
  • Valor → set_value


Configuración en el entorno de producción

Al publicar el proyecto, es posible que la opción de inicio de sesión con Google aún no funcione correctamente. Esto ocurre porque es necesario configurar "ClientID" y "Secret" también en el entorno de producción. Para hacerlo, basta acceder a lo apartado de configuraciones del modulo de seguridad:

1. En el menú del módulo de seguridad, acceda a la aplicación app_settings:
Info
Por defecto, está vinculada al acceso directo llamado "Configuraciones"


2. Vaya a la pestaña "Autenticación por redes sociales" y complete los campos "Client ID" y "Secret":


3. Haz clic en "Ok" para guardar los cambios.


Conclusión

En este artículo, aprendimos sobre Google Authentication y cómo implementarlo en el módulo de seguridad de Scriptcase.

Para dudas relacionadas con el módulo de seguridad, acceda a la documentación oficial del módulo de seguridad.
Para dudas relacionadas con la opción de redes sociales, acceda a la documentación oficial de la opción.

¡Saludos y hasta luego!