AI Model Serving & Inference OptimizationPlaybook3 min readUpdated September 2026

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.

Executive Capability Standard

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)

1. Learn:Read the difference between what SAML authenticates and what SCIM provisions, since conflating the two is where most teams' access reviews fall apart.
2. Do Manually:Reconcile your user table against your enterprise customers' identity providers by hand periodically as a backstop while automated sync is still new.
3. Delegate:Have someone own SSO and SCIM integration testing against a second identity provider before your first enterprise contract depends on it working.
4. Automate:Automate the SCIM sync so provisioning and deprovisioning happen from group membership changes at the identity provider, not from someone remembering to update your app.
5. Buy:Consider identity infrastructure tooling that normalizes SAML and SCIM quirks across providers, and a compliance platform to verify the sync is actually working.

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.

Vanta

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.

Visit Vanta→

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