<?php
$page_lang = 'en';
$page_title = 'Corporate SSO: SAML 2.0 and OpenID Connect | Corp-Merch.MX';
$page_description = 'Corporate SSO for enterprise clients: SAML 2.0 and OpenID Connect with Okta, Azure AD and Google Workspace, plus MFA and session management.';
$og_image = '/assets/images/og-sdk.png';
$page_section = 'sdk';
$page_slug    = 'sso';

$labels = [
    'name' => 'Name', 'name_placeholder' => 'Your name',
    'contact' => 'Work email', 'contact_placeholder' => 'name@company.com',
    'company' => 'Company', 'company_placeholder' => 'Legal entity name',
    'message' => 'Brief', 'message_placeholder' => 'Identity provider, number of users, integrations...',
    'submit' => 'Set up corporate SSO', 'sending' => 'Sending...',
    'turnstile_error' => 'Verify you are not a 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="/en/">Home</a><span class="sep">&rsaquo;</span><a href="/en/pages/sdk/">SDK</a><span class="sep">&rsaquo;</span><span>Corporate SSO</span></nav>

<section class="hero">
  <div class="container">
    <div class="hero-content">
      <p class="eyebrow">SAML 2.0 · OpenID Connect · MFA · SCIM</p>
      <h1>Corporate SSO with SAML 2.0 and OpenID Connect</h1>
      <p class="hero-subtitle">Single sign-on that lets your employees log into the workshop portal and SDK with their own directory credentials — Okta, Azure AD, Google Workspace, OneLogin, JumpCloud, Auth0. Delivered via SAML 2.0 or OpenID Connect per your IdP. SCIM provisioning is available on the enterprise programme.</p>
      <div class="hero-cta"><a href="#contact-form" class="btn btn-primary">Set up corporate SSO</a></div>
    </div>
  </div>
</section>

<section class="section"><div class="container">
  <h2>What corporate SSO covers</h2>
  <p>Corporate SSO covers four surfaces. The customer portal where the operations lead checks order status, downloads invoices, sees delivery history and uploads the size database. The SDK where developers consult documentation, generate bearer tokens for the API and test webhooks. The integrations console where the technical admin configures endpoints, secrets and event subscriptions. The compliance panel where the compliance officer consults audit documentation and downloads certificates.</p>
  <p>SSO works with your IdP — Okta, Azure AD, Google Workspace, OneLogin, JumpCloud, Auth0, Duo — without us having access to user credentials. Authentication happens on the customer's side; we receive the signed assertion and validate the signature with the IdP certificate. Session is managed with httpOnly, secure and strict sameSite cookies.</p>
</div></section>

<section class="section section-alt"><div class="container">
  <h2>SAML 2.0: the standard flow</h2>
  <p>The SAML 2.0 flow is the most used at corporates running Okta, Azure AD and OneLogin. The customer creates the SAML application in their IdP with the ACS — Assertion Consumer Service — pointing to <code>https://portal.corp-merch.com.mx/sso/saml/acs</code> and the EntityID at <code>https://portal.corp-merch.com.mx</code>. NameID is mapped to the user's email. The attributes we receive are <code>email</code>, <code>firstName</code>, <code>lastName</code> and <code>groups</code>.</p>
  <p>IdP groups map to roles inside the workshop. The <code>corp-merch-admins</code> group maps to customer administrator with full access to the portal and SDK. The <code>corp-merch-ops</code> group maps to operator with access to orders and deliveries. The <code>corp-merch-readonly</code> group maps to reader with query-only access. The <code>corp-merch-finance</code> group maps to the finance role with access to invoices and payments.</p>
</div></section>

<section class="section"><div class="container">
  <h2>OpenID Connect: the flow for Google Workspace and Auth0</h2>
  <p>The OpenID Connect flow is used with Google Workspace, Auth0 and IdPs that prefer OAuth 2.0 with an identity layer. The customer creates the OIDC application in their IdP with the redirect URI <code>https://portal.corp-merch.com.mx/sso/oidc/callback</code>. The scopes we request are <code>openid</code>, <code>email</code>, <code>profile</code> and <code>groups</code> when the IdP supports it.</p>
  <p>Token validation happens against the IdP's JWKS endpoint. The ID token signature is validated with RS256 and we verify the audience — <code>aud</code> — matches our client ID. Expiration — <code>exp</code> — is validated with five-minute tolerance. The user identifier — <code>sub</code> — is used to keep the session consistent across devices.</p>
</div></section>

<section class="section section-alt"><div class="container">
  <h2>Multi-factor authentication and session policy</h2>
  <p>Multi-factor authentication is enforced on the customer's IdP side, not ours. When the customer configures mandatory MFA on their IdP, the user must complete the second factor before reaching our portal. We support typical MFA methods: TOTP, WebAuthn, push notification, SMS where the IdP allows it. When the customer requires MFA on every login, we respect it.</p>
  <p>Session policy applies by default: eight-hour session with auto-renewal while the user is active, cookie expiration at twenty-four hours of inactivity, re-authentication for sensitive actions — config change, size database download, bearer token rotation — with five-minute lifetime. For customers with stricter policy we configure session at programme start per their internal procedure.</p>
</div></section>

<section class="section"><div class="container">
  <h2>SCIM provisioning</h2>
  <p>For enterprise customers — more than one hundred users — we deliver SCIM 2.0 provisioning. The customer can create, update and delete users from their IdP without our involvement. The SCIM endpoint is <code>https://portal.corp-merch.com.mx/scim/v2</code> with dedicated bearer token authentication, separate from the SDK bearer token.</p>
  <p>SCIM provisioning respects IdP groups. When a user is added to the <code>corp-merch-ops</code> group, their role is automatically updated to operator. When removed from the group, the role is revoked. When the user is deleted from the IdP, their account is deactivated in our portal. Provisioning events are recorded in the audit log the customer can query.</p>
</div></section>

<section class="section section-alt"><div class="container">
  <h2>Setup, support and testing</h2>
  <p>Setup runs in a session with the customer's technical lead and our technical lead. We deliver the SAML metadata — the XML with EntityID, ACS and certificate — or the OIDC configuration — client ID, client secret and redirect URI — and we walk the customer through their IdP configuration. The typical session lasts an hour and leaves SSO running on the sandbox.</p>
  <p>Once the sandbox is validated, we move the configuration to production with a change in the workshop portal. The change applies in under five minutes. When the customer requires cutover in a specific window — a weekend, a maintenance window — we programme it on their timeline. For customers with strict SLA — banking, fintech, government — we deliver a cutover runbook with documented steps.</p>
</div></section>

<section id="contact-form" class="section section-alt"><div class="container">
  <h2>Set up your SSO with Corp-Merch.MX</h2>
  <p>If your corporate requires SSO with your IdP for the workshop portal and SDK, let's talk. We deliver the SAML metadata or OIDC configuration, walk you through setup and leave SSO running in under one working session.</p>
  <?php require __DIR__ . '/../../../includes/form.php'; ?>
</div></section>

<section class="section role-note"><div class="container">
  <p class="role-note-text">Corporate SSO is delivered to clients on an active programme with a signed usage agreement. Authentication happens on the customer's IdP side; Corp-Merch.MX does not store user passwords. Configuration may update without prior notice; major versions are communicated with thirty days' notice. Corp-Merch.MX is a Mexican workshop for corporate merch; we operate independently.</p>
</div></section>

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