Acceso y Autenticación
Un Sistema Seguro Basado en Identidades Corporativas
Para una herramienta de negocio tan crítica como PropIA®, la seguridad y el control de acceso no son opcionales, son la base de la confianza. La decisión de diseño fue clara: en lugar de reinventar la rueda creando un sistema de usuarios y contraseñas propio (lo cual introduce riesgos de seguridad y fricción para el usuario), optamos por un enfoque moderno y robusto que aprovecha la infraestructura de identidad existente en la organización.
El Principio Fundamental: Simplicidad y Seguridad
El sistema se basa en el estándar de la industria OAuth 2.0 a través del servicio Google Identity Services. Este enfoque delega la tarea de verificar la identidad del usuario a Google, una de las infraestructuras de autenticación más seguras del mundo.
Ventajas clave de esta decisión:
- Seguridad Externalizada: La aplicación nunca almacena ni gestiona contraseñas. Esto elimina por completo el riesgo asociado a brechas de seguridad que podrían exponer credenciales de usuario.
- Experiencia de Usuario (UX) Superior: Los agentes no necesitan crear ni recordar una nueva contraseña. Utilizan su cuenta de Google corporativa, un proceso con el que ya están familiarizados, eliminando barreras de entrada y solicitudes de «contraseña olvidada».
- Aprovechamiento de Seguridad Avanzada: Al usar cuentas de Google, la aplicación se beneficia indirectamente de las medidas de seguridad que la organización ya tiene implementadas, como la autenticación de dos factores (2FA/MFA), sin necesidad de desarrollo adicional.
El Flujo de Autenticación y Autorización en Dos Fases
El acceso a la aplicación no es un solo paso, sino un proceso de dos fases que garantiza que solo las personas correctas puedan entrar.
Fase 1: Autenticación (¿Quién eres?)
- Inicio de Sesión: El usuario hace clic en «Iniciar Sesión con Google».
- Intervención de Google: Se abre una ventana emergente segura, gestionada enteramente por Google. El usuario introduce sus credenciales en el entorno de Google, no en nuestra aplicación.
- Emisión del Token: Una vez que Google verifica con éxito la identidad del usuario, emite un Token de Identidad (ID Token). Este es un paquete de datos criptográficamente firmado que contiene información básica del usuario (nombre, email, foto) y pruebas de que la autenticación fue exitosa.
- Recepción Segura: La aplicación recibe este token. En ningún momento ha tenido acceso a la contraseña del usuario.
- Inicio de Sesión: El usuario hace clic en «Iniciar Sesión con Google».
Fase 2: Autorización (¿Tienes permiso para entrar?)
Tener una identidad válida de Google no es suficiente para acceder. Aquí es donde entra en juego la capa de control de acceso corporativo.
- Verificación del Token: El backend (Google Apps Script) verifica la firma del token para asegurarse de que es auténtico y no ha sido manipulado.
- Análisis del Dominio: El sistema extrae la dirección de correo electrónico del usuario del token. A continuación, examina el dominio de ese correo (la parte que va después del símbolo @).
- Comprobación contra la «Lista Blanca»: Este dominio se compara con una lista preconfigurada de dominios corporativos autorizados. Esta lista es el corazón del control de acceso.
Acceso Concedido: Si el dominio del usuario (@empresa-autorizada.com, por ejemplo) está en la lista, se le concede el acceso a la aplicación.
Acceso Denegado: Si el dominio no está en la lista (por ejemplo, un correo de un servicio público como @gmail.com o de otra empresa), el acceso se deniega, incluso si la contraseña de Google era correcta. El usuario verá una pantalla de acceso denegado.
Flexibilidad para Colaboradores Externos
El sistema también contempla la necesidad de dar acceso a individuos específicos que no pertenecen a los dominios corporativos principales (como consultores, personal de soporte técnico o socios estratégicos). Para ello, existe una segunda «lista blanca» de direcciones de correo electrónico individuales que tienen permiso de acceso explícito, sin importar su dominio. Esto
proporciona una flexibilidad controlada sin comprometer la seguridad general del sistema.