Skip to main content
Category: User Provisioning

System for Cross-domain Identity Management

Also known as:
Simply put

SCIM is an open standard that automates the process of creating, updating, and removing user accounts across different applications and services. Instead of administrators manually setting up users in each system, SCIM lets an identity source and a target application exchange user information automatically. It is commonly used to keep user accounts in cloud applications in sync with a central identity system.

Formal definition

SCIM (System for Cross-domain Identity Management) is an open-standard, application-level protocol for automating the exchange of identity information, such as user and group records, between identity domains, typically an identity provider or authoritative source and downstream service providers. It uses JSON-formatted resources over REST and supports several authentication methods for securing the API, per the evidence provided. SCIM addresses identity lifecycle provisioning and de-provisioning (an IGA administration concern) rather than runtime authentication or authorization decisions; the specification was created in 2011 and is oriented toward managing identities in cloud-based applications and services. Note that the evidence does not specify a particular SCIM version, RFC number, or the exact set of supported authentication methods, so those details should be confirmed against the applicable specification and deployment configuration.

Why it matters

In most modern environments, identity data must be synchronized across dozens or hundreds of SaaS applications, and doing this manually is slow, error-prone, and a governance liability. SCIM matters because it standardizes the automated exchange of user and group records between an authoritative identity source and downstream service providers, reducing the reliance on custom, per-application integration code. This directly supports identity lifecycle management: when a user joins, changes roles, or leaves, those changes can propagate to connected applications automatically rather than depending on administrators to touch each system.

The de-provisioning side is where SCIM is especially consequential from a security and governance standpoint. Orphaned accounts, accounts that remain active after a user has left or changed roles, are a well-recognized source of standing access risk. Automating timely account removal or disablement through a standard protocol helps close the gap between an HR or identity system of record and the applications that trust it. This addresses an IGA administration concern (provisioning and de-provisioning), not a runtime enforcement concern; SCIM does not make authentication or authorization decisions at access time.

Because SCIM is an open standard rather than a proprietary connector format, it also reduces vendor lock-in for provisioning integrations and lets organizations connect a central identity system to many SCIM-capable applications with a more consistent operational model. The precise behavior, supported schema extensions, and authentication methods still vary by implementation and deployment configuration, so the standard sets expectations without guaranteeing uniform behavior across every product.

Who it's relevant to

IAM and identity engineers
Engineers building integrations between a central identity system and cloud applications use SCIM to standardize automated provisioning and de-provisioning rather than maintaining bespoke, per-application connectors. They should validate which SCIM version, schema extensions, and authentication methods each service provider supports, since these vary by implementation.
Identity governance and administration (IGA) leads
SCIM supports lifecycle administration concerns, account creation, updates, and timely removal, that underpin governance objectives such as reducing orphaned accounts and keeping application access aligned with the system of record. It complements, but does not replace, governance processes like access reviews and certification, which operate on top of provisioned state.
Security architects
Architects designing cloud identity flows can use SCIM to close the gap between an authoritative source and downstream applications, tightening de-provisioning and limiting standing access. They should treat SCIM as a provisioning mechanism distinct from runtime authentication and authorization, and secure the SCIM API according to the specification and deployment configuration.
System administrators
Administrators responsible for onboarding and offboarding users benefit from automating account synchronization across many applications instead of manually configuring each one. Understanding how the source and target exchange user and group records helps in troubleshooting sync failures and verifying that account removals actually propagate.

Inside SCIM

Core Schema
SCIM defines standard resource schemas, most notably User and Group, with a set of common attributes (such as userName, name, emails, and active) and extension points. The schema provides a predictable structure so identity data can be exchanged consistently across domains, though many deployments extend it with custom or enterprise schema attributes.
Resources and Endpoints
SCIM exposes RESTful endpoints for managing resources, typically /Users and /Groups, along with service discovery endpoints such as /ServiceProviderConfig, /ResourceTypes, and /Schemas. These endpoints let a client discover supported features and operate on identity objects.
CRUD and Lifecycle Operations
SCIM supports create, read, update, and delete operations over HTTP methods (POST, GET, PUT, PATCH, DELETE), enabling provisioning, updates, and deprovisioning of accounts. PATCH allows partial modification of a resource, which is common for attribute-level changes.
Bulk and Query Capabilities
SCIM provides mechanisms for bulk operations and for filtering and querying resources (for example, filtering users by attribute), though support for these features varies by service provider and should be confirmed via the ServiceProviderConfig.
Provisioning Role within IGA
SCIM addresses the identity governance and administration concern of provisioning and deprovisioning accounts across systems. It automates the lifecycle movement of identity data rather than making runtime access decisions, keeping it distinct from real-time authorization enforcement.
Transport and Representation
SCIM data is typically represented as JSON and transported over HTTP(S). Security of the exchange depends on the underlying transport protections and the authorization mechanism chosen for the endpoints, which the standard leaves to the deployment.

Common questions

Answers to the questions practitioners most commonly ask about SCIM.

Does SCIM handle authentication or enforce access at runtime?
No. SCIM is a provisioning protocol concerned with the lifecycle management of identity resources (typically users and groups) across domains. It addresses creating, reading, updating, and deactivating accounts, not verifying who a principal is or making runtime authorization decisions. Authentication and access enforcement are handled by separate mechanisms such as SAML, OpenID Connect, or a PDP/PEP; SCIM is out of scope for both.
Is SCIM the same as SAML or OpenID Connect?
No, though they are frequently deployed together. SAML and OpenID Connect handle federation and authentication concerns at sign-in time, while SCIM handles the administrative provisioning of accounts and their attributes before or independently of any sign-in event. In many deployments an identity provider uses SCIM to push or synchronize user records into a service provider and a federation protocol to authenticate those users, but the two functions remain distinct.
How does a SCIM client typically discover what a target service supports?
The SCIM specifications define service discovery endpoints (commonly ServiceProviderConfig, ResourceTypes, and Schemas) that a client can query to determine supported features, resource types, and attribute schemas. In practice, support for optional capabilities such as filtering, sorting, PATCH semantics, or bulk operations varies by implementation, so consulting these endpoints before assuming behavior is advisable. Actual conformance depends on the specific service provider.
What are the practical considerations when mapping attributes between systems using SCIM?
SCIM defines a core schema for users and groups along with an enterprise user extension, and it allows custom extensions. Implementers typically must map source directory or HR attributes onto SCIM attributes and then onto the target's internal representation, which can introduce transformation and normalization work. Multi-valued attributes, complex attributes, and differing handling of null or absent values are common friction points. The exact mapping behavior depends on both the client and the service provider configuration.
How should deprovisioning be handled with SCIM?
SCIM supports both deletion of resources and, more commonly in enterprise deployments, deactivation by setting the active attribute to false, which preserves the record while disabling the account. The choice depends on data retention, audit, and reactivation requirements. Note that provisioning-side deactivation does not by itself terminate active sessions or existing tokens at the target; session and token revocation are governed by the runtime authentication and enforcement layer, not by SCIM.
How is a SCIM interface itself typically secured?
SCIM defines the resource model and protocol but generally defers authentication and transport security of the SCIM endpoints to the surrounding deployment. In most deployments the SCIM API is protected over TLS and access to it is controlled using a bearer credential such as an OAuth 2.0 access token or another agreed scheme. The precise authorization requirements for calling SCIM operations depend on the service provider's configuration and are separate from the identities being provisioned.

Common misconceptions

SCIM authenticates users or handles user sign-in.
SCIM is a provisioning protocol for synchronizing identity data (such as creating, updating, and deactivating accounts) between systems. It does not authenticate end users; authentication is handled by separate protocols such as OpenID Connect or SAML, and SCIM operates in the identity administration and lifecycle domain rather than the runtime authentication flow.
SCIM specifies how the provisioning client authorizes itself to the service provider.
SCIM defines the resource model and API but generally leaves the authorization of API access to the deployment. In most deployments this is secured using a separate mechanism such as OAuth 2.0 bearer tokens, but SCIM itself does not mandate a single authorization scheme.
A SCIM implementation supports all defined operations and features uniformly.
Support for features like PATCH, bulk operations, filtering, and specific schema extensions varies by service provider. Practitioners should consult the /ServiceProviderConfig and /Schemas endpoints to confirm what a given implementation actually supports rather than assuming full coverage.

Best practices

Query the /ServiceProviderConfig, /ResourceTypes, and /Schemas endpoints before integration to confirm which operations, filters, and schema extensions the service provider actually supports.
Secure SCIM endpoints over HTTPS and protect API access with an appropriate authorization mechanism (such as OAuth 2.0 bearer tokens), since the standard leaves authorization to the deployment.
Use PATCH for attribute-level updates where supported to avoid overwriting unmanaged attributes that a full PUT replacement could clobber.
Map and validate custom or enterprise schema attributes explicitly, treating them as extensions rather than assuming they exist in the core User and Group schemas.
Coordinate SCIM provisioning and deprovisioning with your broader IGA processes (such as access reviews and joiner-mover-leaver workflows) while keeping it separate from runtime access enforcement decisions.
Test bulk, filtering, and deprovisioning behavior against the specific service provider, since feature support and semantics can vary between implementations.
Promotional banner for the Pentest Readiness checklist download