Integración de Okta SSO y SCIM para plataforma empresarial de salud y bienestar
Una plataforma SaaS empresarial de salud y bienestar necesitaba dar soporte a grandes clientes organizacionales que requerían Single Sign-On (SSO) para un acceso fluido de los empleados y aprovisionamiento/desaprovisionamiento automatizado de usuarios a través de SCIM — un requisito no negociable para las ventas empresariales.
Discuta Su Proyecto
El Desafío
Los clientes empresariales se negaban a adoptar la plataforma sin federación de identidad y gestión automatizada del ciclo de vida:
- Requisito de SSO — Los departamentos de TI exigían que los empleados iniciaran sesión a través de su proveedor de identidad corporativo, no con credenciales separadas
- Sobrecarga de incorporación manual — Añadir cientos de empleados manualmente cuando una nueva organización se registraba llevaba días de trabajo administrativo
- Riesgo de desvinculación — Cuando los empleados dejaban la organización, sus cuentas en la plataforma permanecían activas durante semanas, creando preocupaciones de cumplimiento y acceso a datos
- Acceso basado en grupos — Diferentes grupos de empleados necesitaban diferentes niveles de características y acceso a programas
- Complejidad multi-inquilino — Cada cliente empresarial tenía su propio inquilino de proveedor de identidad con diferentes configuraciones, mapeos de atributos y estructuras de grupo
- Coexistencia de Auth existente — La plataforma ya contaba con autenticación basada en email/contraseña y OAuth; SSO necesitaba coexistir sin romper los flujos existentes
Nuestra Solución
Implementamos Okta SSO vía SAML 2.0/OIDC para autenticación y SCIM 2.0 para aprovisionamiento, desaprovisionamiento y sincronización de grupos de usuarios automatizados — integrado en el backend multi-inquilino existente.
Arquitectura
- Proveedor de identidad: Okta (inquilinos gestionados por el cliente)
- Protocolo de SSO: SAML 2.0 (primario) + OIDC (alternativo)
- Aprovisionamiento: servidor SCIM 2.0 integrado en el backend de la plataforma
- Backend: NestJS con PostgreSQL y Redis
- Capa de Auth: sesiones basadas en JWT con emisión de tokens compatible con SSO
- Panel de administración: configuración de inquilinos basada en React para la configuración de SSO
- Auth existente: Email/contraseña + Google OAuth preservados junto con SSO
---
Implementación de SSO (SAML 2.0 / OIDC)
Flujo de SAML 2.0
El flujo SAML iniciado por el SP funciona de la siguiente manera: el usuario visita la página de inicio de sesión y selecciona SSO, introduce el dominio de correo electrónico de su empresa, la plataforma identifica la configuración de Okta del inquilino a partir del dominio, envía un AuthnRequest a Okta, el usuario se autentica, Okta devuelve una aserción SAML firmada, la plataforma valida la aserción y crea una sesión con tokens JWT.
Configuración por inquilino
El SSO de cada inquilino se configura con la URL de SSO de su proveedor de identidad, entity ID, certificado X.509 para la validación de firma, junto con el SP entity ID de la plataforma, la URL del servicio de consumidor de aserciones y los mapeos de atributos de los campos de perfil del proveedor de identidad a los campos de usuario de la plataforma.
Alternativa OIDC
Para clientes que prefieren OIDC sobre SAML, la plataforma soporta el flujo Authorization Code con PKCE, utilizando el mismo mapeo de atributos vía OIDC claims y validación de ID token con JWKS.
Enrutamiento SSO multi-inquilino
La plataforma enruta a los usuarios al proveedor de identidad correcto basándose en su dominio de correo electrónico. Cuando un usuario introduce su correo electrónico, la plataforma busca el dominio en las configuraciones de SSO del inquilino. Si SSO está configurado, el usuario es redirigido al inquilino de Okta de su organización. Si no, recurren a email/contraseña o Google OAuth. También se admiten las Vanity URLs para el acceso directo por SSO. ---
Implementación de SCIM 2.0
Servidor SCIM
La plataforma expone una API compatible con SCIM 2.0 que Okta utiliza para gestionar usuarios y grupos. La API soporta operaciones completas del ciclo de vida del usuario (crear, leer, actualizar, desactivar, eliminar), CRUD de grupos con gestión de membresías y endpoints de descubrimiento SCIM estándar para capacidades, esquemas y tipos de recursos.
Ciclo de vida del usuario vía SCIM
Aprovisionamiento:Cuando un administrador asigna un usuario a la aplicación de la plataforma en Okta, Okta envía una solicitud de creación a la API de SCIM. La plataforma crea la cuenta de usuario con la asociación de inquilino, los marca como activos y aprovisionados por SSO, y el usuario puede iniciar sesión inmediatamente vía SSO.
Actualizaciones de perfil:Cuando un administrador actualiza el perfil de un usuario en Okta, los cambios se envían a la plataforma vía SCIM. Si el departamento cambia, la membresía del grupo se reevalúa automáticamente.
Desaprovisionamiento:Cuando un usuario es eliminado de la aplicación en Okta, la plataforma desactiva la cuenta — revocando todas las sesiones activas inmediatamente, impidiendo futuros inicios de sesión, conservando los datos según la política de retención y liberando la plaza de licencia.
Reactivación:Reasignar un usuario en Okta reactiva su cuenta con todos los datos históricos intactos.
Sincronización de grupos
Los grupos de Okta se mapean a roles de plataforma y niveles de programas — controlando el acceso a diferentes niveles de características, capacidades de administración, paneles especializados y inscripciones a programas exclusivos. Los cambios en la membresía de grupos en Okta se envían vía SCIM y se reflejan en tiempo real sin necesidad de volver a iniciar sesión. ---
Seguridad y autenticación
Emisión de tokens después de SSO
Después de la validación de la aserción SAML, la plataforma emite JWTs con alcance de inquilino con claims para la identidad del usuario, organización, roles (derivados de la membresía de grupo SCIM), método de autenticación y proveedor de identidad — permitiendo la diferenciación de auditoría entre SSO y otros métodos de autenticación.
Gestión de sesiones
- Las sesiones de SSO respetan la vida útil de la sesión de Okta
- Single Logout (SLO) soportado para la terminación de sesión cuando el usuario cierra sesión en Okta
- Webhook de logout por canal trasero para revocación inmediata de sesión
- La desactivación de SCIM revoca todas las sesiones activas en 60 segundos
Controles de seguridad
- Validación de la firma de respuesta SAML contra el certificado X.509 del inquilino
- Prevención de la repetición de aserciones mediante seguimiento de uso único
- Tolerancia de desfase horario para la validación de marca de tiempo de aserción
- Validación de restricción de audiencia
- Aserciones cifradas soportadas para despliegues sensibles
- Autenticación de endpoint SCIM vía tokens Bearer por inquilino
- Limitación de velocidad en los endpoints SCIM
---
Panel de configuración de administración
Configuración de SSO de inquilino
El panel de administración proporciona un flujo de configuración de autoservicio:
- Selección de protocolo — Elegir SAML 2.0 u OIDC
- Carga de metadatos — Cargar XML de metadatos de IdP (autocompleta la configuración)
- Mapeo de atributos — Mapear campos de perfil del proveedor de identidad a campos de usuario de la plataforma
- Verificación de dominio — Verificar la propiedad del(los) dominio(s) de correo electrónico para el enrutamiento SSO
- Prueba de conexión — Iniciar sesión de prueba de SSO antes de habilitarlo para todos los usuarios
- Configuración de SCIM — Generar token Bearer para la configuración de aprovisionamiento SCIM
- Mapeo de grupos — Mapear grupos de proveedores de identidad a roles y niveles de la plataforma
El panel también proporciona metadatos SP descargables para una fácil configuración de la aplicación del proveedor de identidad. ---
Características clave
- Soporte para SAML 2.0 + OIDC — Elección de protocolo flexible por inquilino
- Aprovisionamiento SCIM 2.0 — Creación, actualización y desactivación automatizada de usuarios
- Mapeo de grupos a roles — Los grupos del proveedor de identidad controlan los niveles de acceso y los programas de la plataforma
- Desaprovisionamiento instantáneo — La desactivación de SCIM revoca el acceso en 60 segundos
- Enrutamiento SSO multi-inquilino — Descubrimiento de IdP basado en dominio de correo electrónico entre inquilinos
- Métodos de Auth coexistentes — SSO junto con email/contraseña y Google OAuth
- Configuración de autoservicio — Panel de administración para la configuración de SSO sin soporte de ingeniería
- Single Logout — Sesión de la plataforma terminada cuando el usuario cierra sesión en el proveedor de identidad
- Registro de auditoría — Cada operación SCIM y evento SSO registrado para cumplimiento
- Sincronización de grupos SCIM — Cambios de rol y programa en tiempo real a partir de la membresía de grupo del proveedor de identidad
Resultados
Stack Tecnológico
caseStudyDetail.more Casos de Estudio
Explore más de nuestras implementaciones técnicas
Procesamiento de Facturas Potenciado por AI con OCR e Integración con QuickBooks
Una empresa de tamaño mediano que procesa cientos de facturas de proveedores mensualmente necesitaba eliminar la entrada de datos manual extrayendo automáticamente los datos de las facturas usando AI/OCR y sincronizándolos directamente en QuickBooks para la contabilidad y el seguimiento de pagos.
Inserción de Anuncios en el Lado del Cliente (CSAI) con Análisis de Marcadores SCTE-35 e Integración de Reproductor Multiplataforma
Una plataforma de streaming de video necesitaba implementar la Inserción de Anuncios en el Lado del Cliente (CSAI) en sus aplicaciones web, móviles y de TV conectada, lo que permitiría experiencias publicitarias personalizadas a nivel de dispositivo con soporte completo para la interacción con anuncios (superposiciones clicables, banners complementarios, botones para omitir) que la inserción del lado del servidor no puede proporcionar.
¿Listo para Transformar su Negocio?
Hablemos sobre cómo podemos aplicar soluciones similares a sus desafíos.