Developer Productivity & Platform EngineeringPlaybook3 min readUpdated September 2026

Rolling Out SAML and SCIM Without a Directory Mess

A customer's IT admin removes an employee from their identity provider, expecting that to lock the employee out everywhere within minutes. Instead, that employee's account in your product stays fully active for weeks, because SCIM was never actually wired up, only SAML for login, so the deprovisioning never propagates anywhere near your system.

SAML and SCIM solve different problems, and shipping one without the other looks like a complete SSO story right up until an enterprise security review finds the gap.

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 Login, SCIM Handles the Account Lifecycle

SAML federates authentication: it answers who this person is and lets them in. SCIM automates provisioning and deprovisioning: it creates the account the moment someone's added to the right group, and disables it the moment they're removed. Shipping SAML alone leaves deprovisioning as a manual step someone has to remember to do, which is a real, auditable security gap for any customer that takes offboarding seriously.

Build Your Own SCIM Endpoint vs Use an Identity Aggregator

Building a SCIM endpoint yourself gives full control but means implementing and maintaining the spec's filtering, pagination, and schema quirks across every identity provider a customer might actually use, Okta, Entra ID, Google, each with its own small variations. An identity aggregator service normalizes those differences behind one API, trading a subscription cost for meaningfully less ongoing engineering maintenance, often the better tradeoff for a small team shipping its first enterprise SSO customer.

A common mistake is building the SCIM endpoint to satisfy one customer's identity provider and then assuming it works for the next. For example, a startup ships against Okta, and its first Entra ID customer sends group membership updates in a slightly different shape, leaving new hires without the right role. The fix is to write the endpoint against the spec and keep a small test suite that replays real payloads from each provider. A decision rule: if you expect several different enterprise identity providers soon, price the aggregator seriously before committing engineering time to a custom build.

What Breaks First When Directory Sync Is an Afterthought

A deprovisioned user who can still log in, because your app checks a SAML assertion but never separately checks whether SCIM has since disabled that account, is the most serious gap. Duplicate accounts appear when a user's identifier changes, an email address update, say, and SCIM treats it as a brand new user instead of updating the existing one. And group membership changes that don't propagate into role or permission changes inside your app leave access stale in either direction.

A Rollout Order That Doesn't Break Existing Customers

  • Ship SAML login first, since it unblocks the sales conversation fastest and is the piece most customers ask about by name.
  • Add SCIM provisioning and deprovisioning before promising it to any customer relying on it for a compliance requirement, not after the promise is already made.
  • Test the deprovisioning path specifically and deliberately, since it's the one enterprise security teams actually audit closely, more than the login flow itself.

Handling the Identity Provider Differences That Actually Bite You

Not every identity provider sends the same claims or handles attribute changes identically, and a quirk that never once showed up against the identity provider you built and tested with can surface immediately with a new customer's. Test against the customer's actual identity provider during onboarding rather than assuming your original test environment covers every case you'll ever see in production. Keep a short list of the specific quirks you've already found per provider, so the second and third enterprise customer onboarding doesn't rediscover the same edge case from scratch.

Keeping a Record of Every Provisioning and Deprovisioning Event

When a customer's security team asks whether a specific person's access was actually revoked, and when, an audit log of every SCIM create, update, and deactivate event is the fastest possible answer. Without it, you're reconstructing the timeline from application logs never designed for that purpose, under time pressure, during exactly the kind of review where a slow answer looks worse than the underlying facts warrant.

Keep that log immutable and separate from your general application logs, with retention long enough to cover a typical annual audit window rather than the shorter retention window you might apply to ordinary debug logging. A customer's compliance team asking for six months of deprovisioning history is a completely reasonable request, and answering it should be a quick, routine export, not an improvised research project that pulls an engineer off other work for an afternoon.

Executive Capability Standard

What Good Looks Like

Good SSO rollout means SAML and SCIM ship together, not SAML alone, so a customer's deprovisioning action in their identity provider actually disables access in your product within a defined window.

Building The Capability (5-Stage Skill Ladder)

1. Learn:Check whether your current SSO implementation includes SCIM deprovisioning or only SAML login, and what happens today when a customer removes a user on their end.
2. Do Manually:Manually test the deprovisioning path against one real identity provider before promising it to any customer.
3. Delegate:Assign one engineer to own SCIM implementation and its test coverage across the identity providers your customers actually use.
4. Automate:Automate a recurring test that provisions and then deprovisions a test user through SCIM and confirms access actually changes.
5. Buy:Bring in an identity aggregator service to cover the provider-specific quirks instead of maintaining custom SCIM logic for each one yourself.

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 SAML login already works?

Yes, if any customer needs offboarding to happen automatically rather than manually. SAML only handles who gets in; without SCIM, a removed employee keeps access until someone remembers to disable their account by hand, which is exactly the gap an enterprise security review will find and flag first.

Should I build a custom SCIM endpoint or use an identity aggregator?

For a first enterprise SSO customer, an aggregator usually costs less in engineering time, since it normalizes the differences between identity providers behind one API instead of you maintaining SCIM's filtering, pagination, and schema quirks for each provider yourself. Building your own makes more sense once volume and customization needs grow past what an aggregator covers well.

What's the first thing an enterprise security team actually checks?

Deprovisioning, more often than login. They want to see that removing someone from their identity provider actually disables that person's access in your product within a defined window, not just that single sign-on works when someone tries to log in. Test and be ready to demonstrate that specific path.

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