Skip to content

Enterprise SSO

How SSOJet implements enterprise SSO with SAML and OIDC, how flows work, how to test safely, and how to onboard real customer IdPs.

Enterprise SSO lets each B2B customer authenticate through their own identity provider (IdP) like Okta, Entra ID, OneLogin, Google Workspace, and others.

SSOJet acts as the federation layer so your team can focus on tenant routing, account linking, sessions, and authorization.

  • Configure SSO per tenant, not globally.
  • Choose protocol by customer requirement: SAML or OIDC.
  • Start with SP-initiated flow for most products.
  • Validate routing, linking, and failure paths before production.
  • Keep break-glass login and rollback controls for each tenant rollout.

SSOJet supports the most common enterprise protocols:

  • SAML 2.0 for classic enterprise federation
  • OpenID Connect (OIDC) for OAuth-based federation
  • Directory Sync (SCIM) for user and group provisioning

Your app integrates once with SSOJet, and each customer’s IdP is configured as a tenant-scoped connection.

  • You sell B2B software and enterprise customers require SSO for compliance and centralized access.
  • You want to avoid building and operating per-customer SAML/OIDC integrations.
  • You need both SP-initiated and IdP-initiated login support.

What SSOJet Handles vs What Your App Handles

Section titled “What SSOJet Handles vs What Your App Handles”
SSOJet HandlesProtocol details (SAML/OIDC), metadata/discovery, signature/token validation, connection lifecycle, and federation flow reliability.
Your App HandlesTenant selection, account linking, session issuance, authorization (RBAC), and post-login routing.
  • Use SAML for traditional enterprise IdPs and certificate-driven federation.
  • Use OIDC for modern OAuth/OIDC-first customer environments.

Related docs:

Complete metadata/discovery exchange and configure required claims and mappings.

Related docs:

Test both flow types in a sandbox tenant before production onboarding:

Validate protocol behavior, mapping, and recovery paths before enabling production tenant traffic.

SSOJet’s hosted sign-in experience can route users to SSO automatically when their email domain (or tenant selection) maps to an active SSO connection.

Enable Enterprise SSO In Sign-In Experience

Section titled “Enable Enterprise SSO In Sign-In Experience”
  1. Open the SSOJet dashboard.
  2. Go to Sign-in Experience.
  3. Enable Enterprise Single Sign-On.
SSOJet Sign-in Experience

SAML is the most common enterprise standard. It uses signed XML assertions and certificate-based verification.

  • Best for: large enterprises, traditional IdPs, and long-lived stable configurations
  • You configure: ACS URL, Entity ID/Audience, and IdP metadata/certificates

SP-initiated: user starts in your app and is redirected to the IdP.

SAML SP-initiated flow

IdP-initiated: user starts in the IdP portal and launches your app tile.

SAML IdP-initiated flow

OIDC is an OAuth 2.0 based protocol that uses discovery and signed JWTs.

  • Best for: modern IdPs and API-first environments
  • You configure: issuer/discovery URL, client ID/secret, and redirect URI
OIDC flow

Directory Sync provisions users and groups from the customer’s directory into your app (via SSOJet), enabling automated onboarding and deprovisioning.

Directory Sync flow

A single tenant is not limited to one identity provider. SSOJet lets you attach multiple enterprise SSO connections to the same tenant and mix protocols freely. One tenant can run a SAML connection and an OIDC connection side by side, each active and independently configured.

This is essential for real B2B deployments, where a single enterprise customer rarely maps cleanly to a single IdP: acquisitions, subsidiaries, contractor populations, and in-flight IdP migrations all create the need for more than one identity source under the same logical customer.

SSOJet tenant with multiple active SSO connections (CustomOIDC and Okta)

In the example above, one tenant has two active connections — a CustomOIDC (OpenID Connect) connection and an Okta (SAML 2.0) connection — alongside a separate SCIM directory for provisioning. Use Add SSO Connection to attach more.

Mergers & AcquisitionsA customer acquires another company that keeps its own Okta/Entra tenant. Both employee populations sign in under one customer tenant, each through their existing IdP — no forced directory migration.
Subsidiaries & Business UnitsA parent organization with several divisions, each running its own IdP, maps all of them to one tenant so they appear as a single customer in your product.
IdP MigrationRun the old and new IdP in parallel during a cutover. Move users in waves and remove the legacy connection once migration completes — with zero downtime.
Workforce vs ContractorsFull-time employees authenticate through the corporate IdP while contractors or partners use a separate connection, often with different attribute mappings or MFA policy.
Regional DirectoriesEU and US user bases live in separate regional directories for data-residency reasons but belong to the same commercial account.
Resilience & Break-GlassA secondary connection provides a fallback path if the primary IdP has an outage or a misconfiguration, keeping enterprise users from being locked out.

How Routing Works With Multiple Connections

Section titled “How Routing Works With Multiple Connections”

When a tenant has more than one connection, SSOJet picks the correct one at sign-in time. Plan your routing strategy explicitly:

Pass a tenant identifier plus an optional email/domain hint. SSOJet resolves the connection whose mapped domain matches the user’s email. Map each connection to distinct domains so routing is unambiguous — for example @acme.com → Okta, @subsidiary.com → CustomOIDC.

Each connection has its own ACS URL / callback endpoint, so an assertion launched from a given IdP tile resolves directly to the connection it was configured for. No domain disambiguation is needed.

If two connections in the same tenant could match the same user, present a connection picker in your sign-in UI or route on an explicit connection parameter. Avoid leaving overlap to chance — deterministic routing prevents users from landing on the wrong IdP.

When an organization has more than one SSO connection and the tenant alone is ambiguous, pass the connection’s ID directly in the OIDC authorization request to open one specific IdP login — see Target a Specific IdP With connection_id.

A customer “Acme Corp” has acquired “Globex”. You model both under one tenant:

Connection Protocol Domain(s) Purpose
Acme-Okta SAML 2.0 acme.com Existing Acme employees
Globex-OIDC OpenID Connect globex.com Acquired Globex employees
Inc-Okta SCIM (Directory Sync) — Existing inc employees

Acme employees are redirected to Okta via SAML; Globex employees are redirected to the OIDC IdP — all within the same tenant, the same billing account, and the same in-app experience.

  • Name connections clearly (e.g. Acme-Okta-Prod, Globex-OIDC) so operators can tell them apart at a glance.
  • Keep domain mappings non-overlapping to guarantee deterministic SP-initiated routing.
  • Test each connection independently in the Test SSO panel before enabling it for production traffic.
  • Retire connections you no longer need — disable first to verify no users depend on it, then delete to stop counting it.
  • Model unrelated identity populations as separate tenants when it keeps inventory and billing cleaner than stacking many connections on one tenant.

Before onboarding a real customer IdP, validate the full round-trip in a safe environment.

In the SSOJet dashboard, open Tenants and select the pre-configured test tenant (or create a dedicated sandbox tenant).

Tenants list with test tenant

Click Test SSO to open the right-side panel with SP Initiated and IdP Initiated tabs.

Test SSO side panel

Verify that:

  • Users land in the correct tenant
  • The identity maps to the right application user
  • Your app issues a session and routes correctly after login
SP-initiated test example IdP-initiated test example

Once sandbox flow works end-to-end, onboard a real customer by creating a tenant and generating the IT Admin Portal link (self-serve wizard for their IdP).

Tenants represent your B2B customers.

Use Generate URL in the self-service configuration area.

Customer IT admins get exact setup steps for Okta, Entra ID, OneLogin, and more.

For full setup docs, follow:

  1. SAML Setup
  2. OIDC Setup
  3. Connection Testing

Yes. SSOJet supports IdP-initiated SAML, including deep-linking into your app after IdP tile launch.

Can Different Tenants Use Different Protocols?

Section titled “Can Different Tenants Use Different Protocols?”

Yes. Tenant A can use SAML while Tenant B uses OIDC. Your application still receives a normalized identity result through SSOJet.

Can A Single Tenant Have Multiple SSO Connections?

Section titled “Can A Single Tenant Have Multiple SSO Connections?”

Yes. A tenant supports multiple connections, and you can mix protocols — for example a SAML connection and an OIDC connection active at the same time. This is common for acquisitions, subsidiaries, and IdP migrations. See Multiple SSO Connections Per Tenant.

How Does Routing Work When A Tenant Has Several Connections?

Section titled “How Does Routing Work When A Tenant Has Several Connections?”

For SP-initiated login, SSOJet matches the user’s email domain to the connection mapped to that domain. For IdP-initiated login, each connection has its own callback endpoint, so the originating IdP resolves directly. Keep domain mappings non-overlapping to ensure deterministic routing.

Should We Support Both SP-Initiated and IdP-Initiated?

Section titled “Should We Support Both SP-Initiated and IdP-Initiated?”

Yes. Most products default to SP-initiated, but enterprise customers commonly require IdP-initiated support too.

How Does SSOJet Know Which IdP To Route To?

Section titled “How Does SSOJet Know Which IdP To Route To?”

Your app provides a tenant identifier (organization/tenant ID) or an email hint. SSOJet resolves the connection mapped to that tenant/domain and routes to the correct IdP.

Where Do We Put Provider-Specific Setup Guides?

Section titled “Where Do We Put Provider-Specific Setup Guides?”

Use SSO Integrations, which is grouped under Enterprise SSO.