SAML 2.0 · OpenID Connect · MFA · SCIM

SSO corporativo con SAML 2.0 y OpenID Connect

El inicio de sesión único que les permite a sus colaboradores entrar al portal del taller y al SDK con las credenciales de su propio directorio activo — Okta, Azure AD, Google Workspace, OneLogin, JumpCloud, Auth0. El SSO se entrega con SAML 2.0 u OpenID Connect conforme al IdP del cliente. El soporte para SCIM se entrega en el programa enterprise.

Qué cubre el SSO corporativo

El SSO corporativo cubre cuatro superficies. El portal del cliente, donde el responsable de operaciones consulta el estatus de las órdenes, descarga facturas, ve el historial de entregas y carga la base de tallas. El SDK, donde los desarrolladores consultan la documentación, generan bearer tokens para la API y prueban webhooks. La consola de integraciones, donde el administrador técnico configura endpoints, secretos y suscripciones a eventos. El panel de cumplimiento, donde el oficial de cumplimiento consulta la documentación de auditoría y descarga constancias.

El SSO opera con el IdP del cliente — Okta, Azure AD, Google Workspace, OneLogin, JumpCloud, Auth0, Duo — sin que tengamos acceso a las credenciales del usuario. La autenticación ocurre del lado del cliente; nosotros recibimos la aserción firmada y validamos la firma con el certificado del IdP. La sesión se maneja con cookie httpOnly, secure y sameSite estricto.

SAML 2.0: el flujo estándar

El flujo SAML 2.0 es el más usado en corporativos con Okta, Azure AD y OneLogin. El cliente crea la aplicación SAML en su IdP con el ACS — Assertion Consumer Service — apuntando a https://portal.corp-merch.com.mx/sso/saml/acs y el EntityID en https://portal.corp-merch.com.mx. El NameID se mapea al email del usuario. Los atributos que recibimos son email, firstName, lastName y groups.

Los grupos del IdP se mapean a roles dentro del taller. El grupo corp-merch-admins se mapea a administrador del cliente con acceso completo al portal y al SDK. El grupo corp-merch-ops se mapea a operador con acceso a órdenes y entregas. El grupo corp-merch-readonly se mapea a lector con acceso de consulta. El grupo corp-merch-finance se mapea al rol de finanzas con acceso a facturas y pagos.

OpenID Connect: el flujo para Google Workspace y Auth0

El flujo OpenID Connect se usa con Google Workspace, Auth0 y con IdPs que prefieren OAuth 2.0 con capa de identidad. El cliente crea la aplicación OIDC en su IdP con el redirect URI https://portal.corp-merch.com.mx/sso/oidc/callback. Los scopes que solicitamos son openid, email, profile y groups cuando el IdP lo soporta.

La validación del token se hace contra el endpoint JWKS del IdP. La firma del ID token se valida con el algoritmo RS256 y se verifica que el audience — aud — coincida con nuestro client ID. La expiración — exp — se valida con tolerancia de cinco minutos. El identificador de usuario — sub — se usa para mantener la sesión consistente entre dispositivos.

Autenticación multifactor y políticas de sesión

La autenticación multifactor se aplica del lado del IdP del cliente — no del lado nuestro. Cuando el cliente configura MFA obligatoria en su IdP, el usuario debe completar el segundo factor antes de llegar a nuestro portal. Soportamos los métodos MFA típicos: TOTP, WebAuthn, push notification, SMS cuando el IdP lo permite. Cuando el cliente requiere MFA en cada inicio de sesión, lo respetamos.

La política de sesión se aplica por defecto: sesión de ocho horas con renovación automática mientras el usuario está activo, expiración de cookie a las veinticuatro horas de inactividad, reautenticación para acciones sensibles — cambio de configuración, descarga de base de tallas, modificación de bearer token — con vida útil de cinco minutos. Para clientes con política más estricta, configuramos la sesión al inicio del programa conforme a su procedimiento interno.

Aprovisionamiento con SCIM

Para clientes enterprise — con más de cien usuarios — entregamos aprovisionamiento con SCIM 2.0. El cliente puede crear, actualizar y eliminar usuarios desde su IdP sin que tengamos que intervenir. El endpoint SCIM es https://portal.corp-merch.com.mx/scim/v2 con autenticación con bearer token dedicado, distinto del bearer token del SDK.

El aprovisionamiento SCIM respeta los grupos del IdP. Cuando un usuario se agrega al grupo corp-merch-ops, su rol se actualiza automáticamente a operador. Cuando se elimina del grupo, el rol se revoca. Cuando el usuario se elimina del IdP, su cuenta se desactiva en nuestro portal. Los eventos de aprovisionamiento se registran en el log de auditoría que el cliente puede consultar.

Configuración, soporte y pruebas

La configuración se hace en una sesión con el responsable técnico del cliente y nuestro responsable técnico. Entregamos los metadatos SAML — el XML con el EntityID, el ACS y el certificado — o la configuración OIDC — el client ID, el client secret y el redirect URI — y acompañamos al cliente en la configuración de su IdP. La sesión típica dura una hora y deja el SSO funcionando en sandbox.

Una vez validado el sandbox, movemos la configuración a producción con un cambio en el portal del taller. El cambio aplica en menos de cinco minutos. Cuando el cliente requiere cutover con ventana específica — un fin de semana, una ventana de mantenimiento — lo programamos al horario del cliente. Para clientes con SLA estricto — banca, fintech, gobierno — entregamos un runbook de cutover con pasos documentados.

Configure su SSO con Corp-Merch.MX

Si su corporativo requiere SSO con su IdP para el portal del taller y el SDK, platiquemos. Les entregamos los metadatos SAML o la configuración OIDC, acompañamos la configuración y dejamos el SSO funcionando en menos de una sesión de trabajo.



El SSO corporativo se entrega a clientes con programa vigente y contrato de uso firmado. La autenticación ocurre del lado del IdP del cliente; Corp-Merch.MX no almacena contraseñas de usuario. La configuración puede actualizarse sin previo aviso; las versiones mayores se comunican con treinta días de anticipación. Corp-Merch.MX es un taller mexicano de producción de merch corporativo; operamos de manera independiente.