SAML Gets Them In, SCIM Gets Them Out: The Gap Teams Miss
SAML gets an enterprise buyer's employees logged in, and most teams treat that as the finish line for enterprise single sign-on. It isn't. SAML says nothing about what happens when someone leaves the company or changes roles, and without SCIM handling that side, deprovisioning becomes a manual step that quietly stops happening a few weeks after launch.
That gap is exactly what a SOC 2 access review is built to find, and it's a bad place to discover it for the first time during an audit.
Vendors Covered in this Article
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
SAML handles who can log in, not who should still be able to
SAML and OIDC are authentication protocols, they answer whether someone attempting to log in is who they claim to be, verified against the customer's own identity provider. Neither one, on its own, does anything about what happens after that person's employment or role changes at the customer's company.
SCIM is the piece that closes that gap, a provisioning protocol that lets an identity provider push user lifecycle events, someone added, someone removed, someone's group membership changed, into your application automatically. A lot of teams ship SAML for an enterprise deal and stop there, leaving the lifecycle side entirely manual.
The provisioning gap that shows up in every access review
Without SCIM, deprovisioning depends on someone at your company noticing that a customer's employee left and manually removing their access, a step that works fine the first few times and quietly stops happening as the number of enterprise customers grows past what anyone is tracking by hand.
That's precisely the gap a SOC 2 access review is designed to surface: can you show that access is removed promptly when someone leaves. An auditor asking for evidence of that control is a bad time to discover the answer is "usually, when someone remembers."
Test against a second identity provider before your first enterprise customer asks
Okta, Microsoft Entra ID, and Google Workspace all implement SAML and SCIM slightly differently in practice, claims formatted differently, group sync behaving differently, edge cases in how a removed user actually gets reported. Testing against only the identity provider your own company happens to use leaves those differences undiscovered until a real enterprise customer's onboarding surfaces them.
Set up a free or trial account with a second major identity provider and run your SSO and SCIM flows against it before you're doing that debugging live during a customer's first week, when the pressure to get it working fast is much higher than it needs to be.
Checks worth running against Okta, Microsoft Entra ID, and Google Workspace:
- Compare how each provider formats claims, since small differences between them break assumptions that held for your own company's identity provider.
- Confirm group sync behaves the way your role mapping expects when someone's group membership changes.
- Test how a removed user is actually reported, because deprovisioning edge cases differ across providers and are the ones an access review looks for.
- Verify that a failed or malformed SCIM sync does not leave your user table quietly disagreeing with the identity provider.
What breaks when SCIM and your own user table disagree
A SCIM sync webhook that fails silently, a network blip, an unhandled error response, a malformed payload, leaves your user table and the identity provider's actual state drifting apart without either side knowing it happened. Someone removed at the identity provider still shows as active in your app, or someone added there never gets created in yours.
Treat the sync as something that can fail rather than something that always works, and build in a reconciliation check, comparing your table against the identity provider's current state periodically, as a backstop for exactly this kind of silent drift. Waiting for someone to notice the mismatch manually means it usually gets noticed during an audit instead of before one.
Deciding whether to build directory sync or buy it
Building SAML and SCIM support yourself against the underlying specifications is a real option, and a real amount of ongoing work, keeping up with each identity provider's particular quirks, handling malformed or unexpected payloads gracefully, maintaining the mapping between their user model and yours.
A compliance platform like Vanta's access review feature can check that a user removed at the identity provider actually lost access in your app, instead of you finding the gap during an audit, and identity infrastructure tooling can absorb much of the provider-specific variance for you. The build-versus-buy call mostly comes down to how many enterprise customers you're supporting today against how much engineering time keeping this working correctly is worth, a question worth revisiting as that number changes. If you're evaluating compliance platforms more broadly, comparing a few options is a reasonable next step.
What Good Looks Like
Good here means an employee removed at a customer's identity provider loses access in your app automatically and quickly, not manually and eventually, and you can prove that during an access review.
Building The Capability (5-Stage Skill Ladder)
How to Get Started
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
Frequently Asked Questions
Do I need SCIM if I already have SAML?
SAML alone leaves deprovisioning manual, which becomes a real gap as your number of enterprise customers grows. SCIM automates that lifecycle side, and enterprise buyers increasingly expect both as a baseline requirement, not just login.
What's the difference between SAML and OIDC?
Both are authentication protocols that let a customer's identity provider vouch for a user logging into your app. SAML is XML-based and older; OIDC is JSON-based and newer. Many identity providers support both, so the choice often comes down to what the customer's provider offers.
How do I handle a user whose access should have been revoked but wasn't?
Reconcile your user table against the identity provider's current state periodically as a backstop, rather than relying solely on the sync webhook firing correctly every time. Treat any mismatch found that way as a signal to investigate why the automated sync missed it.
About the numbers
This guide doesn't quote a sourced benchmark. Figures in it are estimates or general guidance, so check them against your own numbers.
Related Guides
Vanta vs Drata vs Secureframe: Best SOC 2 Automation Platform
Comparing Vanta, Drata, and Secureframe: API evidence collection, auditor networks, true costs, and when each platform is the wrong choice.
Rolling Out SAML and SCIM Without a Directory Mess
SAML handles login, but SCIM handles deprovisioning. Shipping one without the other leaves a real security gap enterprise customers will find.
Rolling Out SAML SSO and SCIM Without a Support Fire Drill
A step-by-step runbook for adding enterprise SAML SSO and SCIM provisioning: what to test before launch, and how to handle the first customer rollout.
Build Your Own SAML and SCIM Support, or Buy an Identity Layer?
The real engineering cost of building enterprise SSO and SCIM provisioning yourself versus buying an identity platform, and how the decision changes with scale.
Build vs. Buy for SAML SSO and SCIM Provisioning
A build-versus-buy guide for enterprise SAML single sign-on and SCIM directory sync, covering what a homemade integration handles and where it breaks down.
Building SSO and SCIM, or Buying It Off the Shelf
What building your own SAML SSO and SCIM directory sync actually involves versus buying it, and the criteria that decide which is worth it for your product.