<?php
$page_lang = 'es';
$page_title = 'SSO corporativo: SAML 2.0 y OpenID Connect | Corp-Merch.MX';
$page_description = 'SSO corporativo para clientes enterprise: SAML 2.0 y OpenID Connect con Okta, Azure AD y Google Workspace, con configuración de IdP y MFA.';
$og_image = '/assets/images/og-sdk.png';
$page_section = 'sdk';
$page_slug    = 'sso';

$labels = [
    'name' => 'Nombre', 'name_placeholder' => 'Tu nombre',
    'contact' => 'Correo', 'contact_placeholder' => 'tu.correo@empresa.com.mx',
    'company' => 'Empresa', 'company_placeholder' => 'Razón social',
    'message' => 'Brief', 'message_placeholder' => 'Proveedor de identidad, número de usuarios, integraciones…',
    'submit' => 'Configurar SSO corporativo', 'sending' => 'Enviando...',
    'turnstile_error' => 'Verifica que no eres un robot'
];

require __DIR__ . '/../../../includes/header.php';
?>
<link rel="alternate" hreflang="es" href="https://corp-merch.com.mx/es/pages/sdk/sso">
<link rel="alternate" hreflang="en" href="https://corp-merch.com.mx/en/pages/sdk/sso">
<link rel="alternate" hreflang="ru" href="https://corp-merch.com.mx/ru/pages/sdk/sso">
<nav class="breadcrumbs"><a href="/es/">Inicio</a><span class="sep">&rsaquo;</span><a href="/es/pages/sdk/">SDK</a><span class="sep">&rsaquo;</span><span>SSO corporativo</span></nav>

<section class="hero">
  <div class="container">
    <div class="hero-content">
      <p class="eyebrow">SAML 2.0 · OpenID Connect · MFA · SCIM</p>
      <h1>SSO corporativo con SAML 2.0 y OpenID Connect</h1>
      <p class="hero-subtitle">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.</p>
      <div class="hero-cta"><a href="#contact-form" class="btn btn-primary">Configurar SSO corporativo</a></div>
    </div>
  </div>
</section>

<section class="section"><div class="container">
  <h2>Qué cubre el SSO corporativo</h2>
  <p>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.</p>
  <p>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.</p>
</div></section>

<section class="section section-alt"><div class="container">
  <h2>SAML 2.0: el flujo estándar</h2>
  <p>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 <code>https://portal.corp-merch.com.mx/sso/saml/acs</code> y el EntityID en <code>https://portal.corp-merch.com.mx</code>. El NameID se mapea al email del usuario. Los atributos que recibimos son <code>email</code>, <code>firstName</code>, <code>lastName</code> y <code>groups</code>.</p>
  <p>Los grupos del IdP se mapean a roles dentro del taller. El grupo <code>corp-merch-admins</code> se mapea a administrador del cliente con acceso completo al portal y al SDK. El grupo <code>corp-merch-ops</code> se mapea a operador con acceso a órdenes y entregas. El grupo <code>corp-merch-readonly</code> se mapea a lector con acceso de consulta. El grupo <code>corp-merch-finance</code> se mapea al rol de finanzas con acceso a facturas y pagos.</p>
</div></section>

<section class="section"><div class="container">
  <h2>OpenID Connect: el flujo para Google Workspace y Auth0</h2>
  <p>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 <code>https://portal.corp-merch.com.mx/sso/oidc/callback</code>. Los scopes que solicitamos son <code>openid</code>, <code>email</code>, <code>profile</code> y <code>groups</code> cuando el IdP lo soporta.</p>
  <p>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 — <code>aud</code> — coincida con nuestro client ID. La expiración — <code>exp</code> — se valida con tolerancia de cinco minutos. El identificador de usuario — <code>sub</code> — se usa para mantener la sesión consistente entre dispositivos.</p>
</div></section>

<section class="section"><div class="container">
  <h2>Autenticación multifactor y políticas de sesión</h2>
  <p>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.</p>
  <p>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.</p>
</div></section>

<section class="section section-alt"><div class="container">
  <h2>Aprovisionamiento con SCIM</h2>
  <p>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 <code>https://portal.corp-merch.com.mx/scim/v2</code> con autenticación con bearer token dedicado, distinto del bearer token del SDK.</p>
  <p>El aprovisionamiento SCIM respeta los grupos del IdP. Cuando un usuario se agrega al grupo <code>corp-merch-ops</code>, 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.</p>
</div></section>

<section class="section"><div class="container">
  <h2>Configuración, soporte y pruebas</h2>
  <p>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.</p>
  <p>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.</p>
</div></section>

<section id="contact-form" class="section section-alt"><div class="container">
  <h2>Configure su SSO con Corp-Merch.MX</h2>
  <p>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.</p>
  <?php require __DIR__ . '/../../../includes/form.php'; ?>
</div></section>

<section class="section role-note"><div class="container">
  <p class="role-note-text">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.</p>
</div></section>

<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","name":"SSO Corp-Merch.MX","description":"SSO corporativo con SAML 2.0 y OpenID Connect para Okta, Azure AD, Google Workspace, OneLogin, JumpCloud, Auth0.","publisher":{"@type":"Organization","name":"Corp-Merch.MX"}}
</script>
<?php require __DIR__ . '/../../../includes/footer.php'; ?>