Adding enterprise SSO, SAML, and SCIM to an existing B2B SaaS
Bolt enterprise SSO, SAML 2.0, OIDC, and SCIM provisioning onto an existing product without owning IdP integrations yourself.
The Stack
WorkOS
— SAML 2.0, OIDC, and SCIM abstraction layerWorkOS normalizes 40+ IdPs (Okta, Azure AD, Google Workspace, Ping, ADFS) into a single API. The embedded Admin Portal means IT admins self-configure their IdP without a ticket to your team. $125/connection/mo with a free Developer tier for up to 1 connection.
Alternatives: auth0, propelauth, descope
BoxyHQ
— Open-source self-hosted SAML/OIDC proxy optionalBoxyHQ's SAML Jackson is a Docker container that translates SAML assertions into OAuth 2.0 tokens. Zero vendor lock-in and free if self-hosted — preferred for regulated industries (HIPAA, FedRAMP) where customer data cannot touch a SaaS intermediary.
Alternatives: keycloak, zitadel
Okta
— Enterprise identity platform with lifecycle management optionalOkta's Workforce Identity Cloud covers SSO, MFA, Universal Directory, and Lifecycle Management (automated deprovisioning). Its 7,000+ app integrations make it the IdP of choice at Fortune 500 buyers, so supporting Okta natively via SAML or OIDC is a non-negotiable checkbox.
Alternatives: ping-identity, fusionauth
Permit.io
— Fine-grained authorization (RBAC/ABAC/ReBAC) optionalPermit.io provides a hosted policy engine with a no-code UI for configuring roles and resource-level permissions. After SSO establishes identity, Permit enforces who can do what — critical when enterprise buyers demand per-document or per-project access controls and audit logs.
Alternatives: cerbos, oso
Cerbos
— Self-hosted policy-based authorization engine optionalCerbos is a sidecar or gRPC service that evaluates authorization policies stored as YAML. It never calls home, making it suitable for air-gapped or on-prem enterprise deployments where cloud-based authz engines are disqualified.
Svix
— Webhook delivery for SCIM provisioning events optionalWhen WorkOS fires a SCIM user.created or user.deleted event, Svix fans it out to customer integrations with automatic retries, delivery receipts, and a customer-facing dashboard. Eliminates the need to build a reliable outbound event bus.
Alternatives: hookdeck, inngest
PagerDuty
— On-call alerting for IdP connection failures optionalSilent SCIM sync failures can delete or strand users without anyone noticing. PagerDuty routing rules trigger on-call when WorkOS reports a connection error, preventing a support escalation from becoming an enterprise churn event.
Sentry
— Error tracking for SAML assertion and token exchange errorsSAML errors surface as cryptic HTTP redirects. Sentry's breadcrumb trail captures the full assertion payload at the moment of failure, reducing debug time from hours to minutes when an enterprise customer reports broken SSO.
Gotchas
- ⚠️ SCIM provisioning and SSO are separate WorkOS products billed separately — budget $250/mo per enterprise customer for both connections combined, not $125.
- ⚠️ Azure AD sends SAML assertions with 5-minute clock skew tolerance; your servers must have NTP synced. A drifting server clock causes intermittent 'Invalid assertion timestamp' errors that are nearly impossible to reproduce locally.
- ⚠️ BoxyHQ SAML Jackson stores IdP metadata in a Postgres database — you own backup, HA, and schema migrations. A missed migration during deployment has caused production SSO outages; add a migration health check to your deploy pipeline.
Related Stacks
End-to-end B2B SaaS subscription billing, auth, and product stack
Complete stack for launching a B2B SaaS with seat-based subscriptions, SSO-ready auth, feature flags, and error monitoring.
Multi-tenant admin dashboard with audit logs and role management
Internal admin tooling stack for B2B SaaS: tenant impersonation, RBAC, immutable audit logs, and ops dashboards without building from scratch.