SCIM (System for Cross-domain Identity Management)

What SCIM is, how the protocol works, what it does and does not cover, and why vendors gate it behind expensive plan tiers (the SCIM tax).

8 min read · Published July 9, 2026 · Last updated September 7, 2026

SCIM (System for Cross-domain Identity Management) is the industry-standard protocol for automated user provisioning. It lets an identity provider create, update, and deactivate accounts in an app over a standard API, keeping the app in sync with a source of truth. SCIM handles account plumbing; it does not handle governance.

SCIM, the System for Cross-domain Identity Management, is the standard protocol for automated user provisioning. It gives an identity provider a defined way to create, update and deactivate accounts inside an application, so the application stays in sync with a source of truth without anyone building a custom integration for it. It is plumbing, and useful plumbing: widely supported, and the clean path wherever it exists. It is also narrower than most people assume, in two directions, what it reaches and what it does.

identity provider (source of truth)                    application with a SCIM endpoint
----------------------------------------------         --------------------------------
new user in the directory    -- POST  /Users   ---->   account created
attribute or group change    -- PATCH /Users   ---->   account updated, groups synced
user deactivated             -- PATCH active=false ->  account deactivated

reaches:         apps that built SCIM AND include it on the plan the company pays for
does not reach:  apps without SCIM, apps gating it to enterprise, entitlements below the group
SCIM is a REST API with a fixed schema for users and groups (RFC 7643 and 7644). It syncs accounts; it does not decide whether the access is appropriate.

How does SCIM work?

SCIM 2.0, defined in RFC 7643 and RFC 7644, specifies two things: a schema for representing users and groups, and a REST API for acting on them.

The schema

RFC 7643 defines a User resource and a Group resource, each with a core set of attributes. A User has a userName, a name, emails, an active flag and an externalId that ties it back to the directory. A Group has a displayName and a list of members. An enterprise extension adds employeeNumber, department, manager and similar fields. Applications can extend the schema with their own attributes, and the identity provider maps directory fields onto whatever the application declares.

The operations

RFC 7644 defines the HTTP operations an identity provider performs against the application's endpoint.

OperationHTTP methodWhat it does
Create a userPOST /UsersA new hire appears in the application with the attributes the directory holds
Read usersGET /Users, with filtersThe identity provider reconciles what the application has against what it expects
Replace a userPUT /Users/idThe whole record is rewritten
Update attributesPATCH /Users/idOne or more attributes change, including active: false to deactivate
Delete a userDELETE /Users/idThe account is removed, where the application supports deletion
Manage groupsPOST, PATCH, DELETE on /GroupsDirectory groups become application groups and memberships follow
Discover capabilitiesGET /ServiceProviderConfig, /Schemas, /ResourceTypesThe identity provider learns what the application supports

The direction

The application exposes the endpoint, and the identity provider authenticates to it, usually with a bearer token generated in the application's admin console, and calls it. This inverts the older directory model, and a commenter on a thread about a lightweight LDAP server put the consequence well:

Hacker News comment by patmorgan23

SCIM + Oath/SAML is pretty solid (SCIM doesn't handle authentication just provisioning, de-provisioning, and updates). It flips the script on LDAP as well, instead of the application calling in to the directory, the directory/sync service calls into the application which has some positive security implications.

patmorgan23·Hacker News

Because the schema and the operations are standardized, the identity provider does not need bespoke code for each application. Turn on SCIM in the application, connect it in the identity provider, and provisioning flows. Create a user in the directory and they appear in the application. Disable them and the application account deactivates.

What does SCIM not do?

Two limits define the real shape of SCIM.

Coverage

Only applications that have built a SCIM endpoint can be provisioned this way, and across a typical mid-market stack that is a minority. Standard-plan SaaS, internal admin tools and legacy systems either lack SCIM or gate it behind a plan tier. For those applications SCIM is not an option at any configuration. The SCIM Tax Index tracks 286 SaaS vendors: at the June 2026 verification, 178 gate SCIM behind a higher plan, 68 have no SCIM at any price, and twelve include it on a base plan. The founder of a company that builds SSO integrations for a living described the state of support:

But unfortunately even SCIM isn't well enough supported yet to be considered a base standard. (It's worse than SAML.)

grinich·Hacker News

Depth

Even where SCIM works, it handles create, update, deactivate and group sync, which is account lifecycle rather than governance. SCIM does not run access reviews, does not model fine-grained entitlements below the group level, and does not produce the audit trail a compliance framework asks for. It keeps accounts in sync. Deciding whether the access is appropriate, and proving it, is a separate layer on top.

SCIM doesSCIM does not
Create an account from a directory recordDecide whether the person should have the account
Set attributes and group membershipsModel roles, permission sets or entitlements below the group
Deactivate an account when the directory says soRevoke API tokens or sessions the application issued, unless the application does so on deactivation
Keep the application's user list in syncTell anyone who approved a grant, or whether it is still appropriate
Report what it createdProduce review evidence or an audit trail beyond its own log

What happens at deprovisioning?

Deprovisioning is the operation SCIM exists for, in most buyers' minds, and the one that separates it from SSO.

What the protocol sends

A PATCH setting active to false, or a DELETE where the application supports removal. That is the whole of it. With SSO alone, disabling the person stops new logins and leaves the account, any local password and every live session intact. With SCIM the application is told to deactivate, and the account stops being a way in.

Hacker News comment by xyzzy123

The main benefit IMHO is deprovisioning. With straight up fed you can autocreate users etc but as the relying party you don't know when their access has been revoked. Sometimes this doesn't matter, but... often it does. People come and go all the time in enterprise.

xyzzy123·Hacker News

What the application does with it is not specified

Whether deactivation ends live sessions, invalidates refresh tokens or revokes API keys the person issued is left to the application. RFC 7644 defines the flag, not the behaviour behind it, so two applications can both be compliant and behave differently. The only way to know which of yours is which is to test one: deactivate a test account mid-session and watch the tab that was already open.

Where the gap shows up in an audit

An auditor sampling a leaver asks when access ended, and the identity provider's log answers when the directory changed. If the application kept a session alive for another eight hours, the evidence and the reality disagree by eight hours. That is a formality on a routine resignation and the whole question on a contentious exit, which is why the emergency procedure for a hostile departure is never SCIM alone.

What is the SCIM tax?

Because SCIM is what a real identity program depends on, vendors know they can charge for it.

The pattern

The common shape is to lock SCIM behind the enterprise or top plan, so a company that needs automated provisioning upgrades its entire account to unlock one protocol. The extra cost has nothing to do with the features that tier otherwise carries. That is the SCIM tax, and it is a pricing strategy rather than a technical necessity, because the endpoint costs the same to run on every plan.

What it means for coverage

The consequence is that a stack's SCIM coverage is a budget decision rather than a technical one. A company with 60 applications does not have 60 candidates for SCIM. It has the few where SCIM is included, the few where the upgrade was worth buying, and the rest, which need another path or a person. Any provisioning plan that assumes provisioning means SCIM therefore covers the minority of the stack and reports itself finished.

The open SCIM Tax Index documents which vendors gate SCIM and behind which tier. The point worth holding onto is that provisioning does not require SCIM. Where an application has no SCIM or gates it, provisioning can run over the application's own API instead, or through a custom automation framework that drives the admin console, on any plan the company already holds.

Iden connects over SCIM where an application offers it on the plan a company already holds, over the application's own API where it does not, and through a custom connector where neither exists. The connector catalogue shows which path each application uses, so the coverage question this page keeps returning to has a visible answer per application. The feature behind it is Day one access, without a ticket.

Iden's connector catalogue, showing connected and discovered applications across the stack.

200+ connectors. SCIM where the app has it, an API where it does not, and a custom connector where neither exists.

What an auditor checks

FrameworkControlWhat the test looks for
SOC 2CC6.1, CC6.2Provisioning follows an authorized request or role; a SCIM connection is evidence of the mechanism, and the auditor still samples accounts in the applications it does not reach.
ISO 27001:2022A.5.16Identities are managed through their lifecycle across all systems, including the ones provisioned outside SCIM.

Asked in the field

It standardizes user provisioning. An identity provider uses SCIM to create a user in an app, update their attributes and group memberships, and deactivate them, all over a defined REST API and schema. Where an app supports SCIM, the identity provider keeps it in sync with the source of truth automatically, without per-app custom integration.

SCIM 2.0, defined in RFC 7643 (the schema) and RFC 7644 (the protocol), published in 2015. When people say SCIM today they mean 2.0. It is the version identity providers and apps implement.

Two. Coverage: only apps that implement a SCIM endpoint can be provisioned this way, which is a minority of the average stack. Depth: SCIM covers create, update, deactivate, and group sync, but not fine-grained entitlements, access reviews, or audit. It is provisioning plumbing, not governance.

The pricing pattern where SaaS vendors lock SCIM behind their enterprise or top tier, so a company that needs automated provisioning has to upgrade the whole plan to get it. The premium traces to one protocol, not to features the company uses. The open SCIM Tax Index tracks which vendors do this and what it costs.

No. SCIM is one way to provision, and the cleanest where an app supports it at your plan tier. For apps with no SCIM, or SCIM gated behind an expensive upgrade, provisioning can run over the app's API or a custom automation framework instead. SCIM is a means, not the requirement.