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.

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":

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.

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":

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.
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á:

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:

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.
¡Saludos y hasta luego!