SCIM vs SAML

SCIM vs SAML explained: one handles provisioning, the other handles authentication. What each does, why you usually need both, and how they work together.

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

SCIM and SAML solve different problems. SAML handles authentication: proving who a user is so they can log in via single sign-on. SCIM handles provisioning: creating, updating, and deactivating the user's account in the app. SAML lets someone log in; SCIM makes sure their account exists and is current. Most companies use both.

SCIM and SAML get mentioned in the same breath and confused constantly, because both involve the identity provider and both are how it talks to applications. They do different jobs, and the difference matters most at offboarding time. SAML is about logging in. SCIM is about the account being there to log into. SAML proves who a person is; SCIM makes sure their account exists and is current.

SAML (authentication)                         SCIM (provisioning)
"who are you?"                                "does your account exist, and is it current?"
-----------------------------------------     -------------------------------------------
user opens the app                            identity provider creates the account
app hands off to the identity provider        updates attributes and groups as they change
IdP confirms identity, user is let in         deactivates the account when the person leaves

disable a user in the IdP:   SAML logins stop  |  the account, local logins and tokens remain,
                                                |  unless SCIM (or another path) removes them
SAML handles the door; SCIM handles whether there is a room behind it. Switching SAML off does not empty the room.

What does each protocol do?

SAMLSCIM
Full nameSecurity Assertion Markup LanguageSystem for Cross-domain Identity Management
JobAuthentication: proving who the user is at loginProvisioning: creating, updating and deactivating the account
Standard bodyOASIS, SAML 2.0 (2005)IETF, RFC 7643 and 7644 (2015)
Runs whenA person opens the application and is redirected to the identity providerThe directory changes: a hire, a move, a departure
DirectionBrowser-mediated exchange between application and identity providerThe identity provider calls the application's API
Data carriedA signed assertion: this is the user, here are their attributesUsers and groups: names, emails, active flag, memberships
What it producesA logged-in sessionAn account that exists, with the right attributes, or does not
Modern alternativeOpenID Connect, on OAuth 2.0None; SCIM is the provisioning standard

SAML

SAML is an authentication protocol and the one that powers most single sign-on. When a user opens an application, the application hands off to the identity provider. The identity provider confirms who they are and returns a signed assertion, and the user is let in without a separate password. SAML is the exchange that carries that assertion of identity. A developer who worked through the protocol described the gap that surprised him:

Hacker News comment by dcosson

SAML is just an authentication protocol, it doesn't really handle user provisioning. Which was confusing to me, because any time you'd use it you typically also need some kind of provisioning mechanism.

dcosson·Hacker News

SCIM

SCIM is a provisioning protocol. It is how the account itself gets created, updated and deactivated in the application. Before anyone can log in the account has to exist and carry the right attributes and group memberships, and SCIM is what keeps that account in sync with the source of truth. One protocol handles the door, and the other handles whether there is a room behind it.

Why do you usually need both?

Each protocol on its own leaves a gap that the other was built to fill.

SetupLoginAccount creationAccount removalWhere it leaves gaps
SAML onlyFederatedManual, or JIT on first loginManualAccounts linger after departure; local passwords keep working
SCIM onlyLocal password or another methodAutomaticAutomaticNo single sign-on; rare in practice
SAML and SCIMFederatedAutomaticAutomaticOnly where the application gates or lacks one of the two

SAML without SCIM

People can log in, but their accounts are not created or removed automatically. Someone joins and an administrator makes the account by hand, or the application creates it on first login. Someone leaves and the account lingers, because turning off SAML stops future logins without deleting the account or catching a local login that skips SSO. Authentication is federated while provisioning stays entirely manual.

SCIM without SAML

Accounts stay in sync but there is no single sign-on, so login is handled some other way. This is the rarer case, since applications tend to ship SAML first.

Both

Run both and the picture is complete, with SAML federating authentication and SCIM keeping the accounts current. The trouble is that support is uneven. A great many applications offer SAML while gating SCIM behind a higher tier or not offering it at all. Companies end up with SSO everywhere and automated provisioning only where SCIM happens to be available and affordable.

Does disabling SAML deprovision a user?

No, and this is the most expensive confusion in the pair.

What disabling SSO actually stops

It stops new SAML logins, and nothing else. The account in the application still exists, any local password still works, any token the person issued still functions, and existing sessions stay valid until they expire on the application's own schedule. That is how a company can be certain someone was offboarded while their access quietly remains.

The three ways access survives

A local login that was created before SSO arrived, or allowed as a fallback for when SSO breaks, and which no directory change touches. A personal access token or API key the person generated inside the application, which authenticates without the identity provider at all. And a live session, held open in a browser tab or a mobile app, which nothing revokes until the application decides to.

SAML gives you "Bob can't log into the CRM ever again", SCIM gives you "... and his CRM user and sessions are immediately revoked".

ucarion·Hacker News

The session point is the one most often missed. Another commenter in the same thread spelled out why it is a compliance matter and not a technicality:

Hacker News comment by solatic

Enterprises are forced by their customers and regulators to show that terminated employees lose access immediately. There are two ways to make that happen: force everything to flow through a VPN, and SCIM.

solatic·Hacker News

Real deprovisioning needs a provisioning path, SCIM or otherwise, reaching into each application, rather than SAML being switched off at the front door.

Where does OIDC fit in?

OIDC, which often replaces SAML in newer stacks, changes nothing about this comparison.

It sits on the authentication side

OpenID Connect is a newer authentication protocol built on OAuth 2.0. It answers the same question SAML answers, in JSON rather than XML and with better support in mobile and single-page applications, and it says nothing about whether an account exists. SCIM remains the provisioning counterpart whether the login runs on SAML or on OIDC.

One product limitation worth knowing

Some identity providers attach SCIM only to applications configured with SAML, not to the same application configured with OIDC, so choosing the newer login protocol can cost the provisioning connection. That is a limitation of the product rather than a property of either protocol, and it is worth checking before a migration rather than after.

Iden takes SSO as given and covers what SAML leaves open. It creates and deactivates the account inside each application, over SCIM where the application offers it and over the application's API or a custom connector where it does not, so that disabling a person in the identity provider also closes the accounts behind the front door. The connector catalogue shows which path each application uses. The feature behind it is Day one access, without a ticket.

Der Konnektor-Katalog in Iden mit angebundenen und erkannten Applikationen über den gesamten Stack.

Über 200 Konnektoren. SCIM, wo die Applikation es anbietet, eine API, wo nicht, und ein individueller Konnektor, wo es beides nicht gibt.

What an auditor checks

FrameworkControlWhat the test looks for
SOC 2CC6.1, CC6.2, CC6.3Authentication is enforced through the identity provider, and separately, accounts are provisioned and removed in each application; the auditor samples leavers in the applications, not in the identity provider.
ISO 27001:2022A.5.16, A.5.17Identity lifecycle and authentication information are both managed; a disabled SSO login is not evidence that the account was removed.

Asked in the field

SAML is authentication: it proves who a user is at login and powers single sign-on. SCIM is provisioning: it creates, updates, and deactivates the user's account so it exists and stays current. One is about logging in, the other about the account being there to log into.

Usually yes. SAML alone lets people log in but does not create or remove their accounts, so provisioning stays manual. SCIM alone syncs accounts but does not handle login. Together, SAML federates authentication and SCIM keeps the accounts in sync. Many apps support one and not the other, which is where gaps appear.

Very commonly. Plenty of apps offer SAML single sign-on but no SCIM provisioning, or gate SCIM behind a higher tier while SAML is included. In that case login is federated but account creation and removal are still manual, which quietly leaves accounts open after people leave.

No. Disabling someone in the identity provider stops new SAML logins, but it does not delete or deactivate the account in the app, and it does not touch a local login that bypasses SSO. Real deprovisioning needs SCIM or another provisioning path, not just SAML being switched off.

OpenID Connect (OIDC) is a modern authentication protocol, an alternative to SAML built on OAuth 2.0. It plays the same role as SAML in this comparison: authentication, not provisioning. SCIM is still the provisioning counterpart whether the login protocol is SAML or OIDC.