Browse learn

What Is SCIM?

Learn how SCIM standardizes user and group provisioning between identity providers and applications through resource schemas and REST operations.

On this page

The System for Cross-domain Identity Management (SCIM) is an open standard specifically designed to automate the exchange of user identity and group membership information across different domains. SCIM defines how identity data—such as users and groups—should be represented and managed using a RESTful HTTP API, enabling consistent, programmatic provisioning and deprovisioning of accounts across cloud applications and enterprise systems.

Why SCIM Exists: Addressing Modern Provisioning Challenges

SCIM emerged in response to the complex, error-prone process of manually managing user accounts, especially as organizations adopted increasing numbers of SaaS and cloud applications. Without SCIM, IT and identity teams faced tedious, high-risk tasks:

  • Manually creating or removing user accounts in each application
  • Maintaining synchrony for user profile updates across multiple systems
  • Preventing lingering (“zombie”) accounts that pose security risks after employee departures

SCIM standardizes these workflows, providing a common protocol and schema for identity data. This greatly reduces administrative overhead and security vulnerabilities by ensuring automated, timely propagation of identity lifecycle changes—such as onboarding, attribute updates, and offboarding—across integrated systems.

How SCIM Works: Protocol Mechanics and Schema Structure

SCIM’s protocol is built on a RESTful API model with standardized schemas for core resources, specifically Users and Groups. The protocol relies on HTTP and JSON payloads to model and manipulate identity data, enabling interoperability across diverse platforms.

Core Resources

  • User: Represents an individual’s identity attributes (e.g., username, email, status). Structured per the User schema defined in RFC 7643.
  • Group: Represents a collection of Users, primarily for group membership and role assignment.

Schema and Operations

SCIM formally defines how these resources are structured and what operations are allowed. The key set of operations mapped to HTTP verbs include:

  • POST /Users: Create a new user (provisioning)
  • GET /Users/{id}: Retrieve a user’s data
  • PATCH /Users/{id}: Update user attributes (e.g., email, group membership)
  • DELETE /Users/{id}: Delete or deactivate a user (deprovisioning)
  • Similar endpoints and verbs exist for Groups

The schema ensures that core fields—such as name, email, and activity status—are consistently represented, while extensions may allow for custom attributes, subject to client/server agreement.

Actors in a SCIM Flow

  • SCIM Client (often an Identity Provider / IdP): Initiates provisioning actions—creates, updates, or deletes users/groups.
  • SCIM Server (typically the Service Provider / SP): Receives API requests and enforces the operation within its own user store.

For example, an identity provider detecting a new employee can POST a User resource to a service provider’s SCIM endpoint, ensuring the new user is onboarded automatically to the application.

SCIM in Context: Identity Management and Other Protocols

Understanding where SCIM fits compared to LDAP, SAML, and SSO is essential for proper system design.

  • SCIM vs LDAP: LDAP is a directory protocol supporting real-time queries, flexible filtering, and authentication against enterprise directories. SCIM, in contrast, is optimized for cloud-to-cloud or IdP-to-application lifecycle synchronization. SCIM’s RESTful model and standardized schema simplify integration with modern APIs; LDAP remains vital for on-premises authentication and rich directory queries.
  • SCIM vs SAML/SSO: SAML and SSO protocols handle authentication and single sign-on—verifying user identities and establishing sessions. SCIM does not perform user authentication nor does it manage authorization enforcement during application logins. SCIM only provisions and updates identity data; authentication and authorization are enforced by other protocols and application logic.
  • Practical Mapping: In a typical integration, an organization uses Okta (acting as an IdP and SCIM client) to provision users and groups in a SaaS app (such as Salesforce, acting as SCIM server). Authentication for user logins then takes place via SAML or OAuth.

Practical Use Cases for SCIM

SCIM offers clear benefits to IT administrators and security teams, particularly in environments with many cloud or SaaS applications:

  • Automated Onboarding: When a new employee joins, their account—and any required group memberships—are automatically created in all relevant applications via SCIM. This can be triggered by a single action in the IdP.
  • Seamless Offboarding: Immediately disabling or removing accounts upon termination, reducing risk of unauthorized access.
  • Profile Synchronization: Updates to user attributes (such as titles, email addresses, or department changes) are propagated automatically to target systems.
  • Group-Based Access Scaling: As users change roles or teams, their group memberships—and thus application entitlements—are updated without manual intervention.
  • Compliance and Auditability: Timely, automated lifecycle actions reduce the gap between HR-driven events and system state, supporting compliance requirements.

These scenarios eliminate the delays and errors inherent in manual provisioning, supporting “day-one” access and “day-zero” revocation.

Common Misconceptions and Protocol Limitations

A clear understanding of SCIM’s scope is vital for sound architecture:

  • SCIM is not an authentication protocol: SCIM does not verify user credentials or manage login sessions. Its API endpoints must be independently secured, typically using HTTP authentication methods such as OAuth 2.0 Bearer tokens, but these secure the API itself, not end-user accounts.
  • SCIM does not replace LDAP universally: While SCIM streamlines cloud provisioning, LDAP remains essential for enterprise directory queries, authentication, and complex search or access requirements in many environments.
  • SCIM does not manage application authorization policies: SCIM can synchronize group memberships, but decisions about what resources or permissions a user receives are made by the application or an authorization server.
  • SCIM does not guarantee attribute or workflow coverage: Attribute extensibility is implementation-dependent. Not all SCIM servers or clients support arbitrary custom fields, and schema mismatches are common integration pitfalls.

Implementation Considerations and Security

While SCIM can greatly simplify integration, several technical aspects require careful attention in real deployments:

  • Endpoint Security: Always secure SCIM endpoints with strong authentication (e.g., OAuth 2.0 Bearer tokens) and enforce TLS for transport security. SCIM defines no new cryptography; it relies on secure API patterns.
  • Schema Mapping and Customization: Verify that both the SCIM client and server agree on supported fields. Extensions or custom attributes may not be interoperable.
  • Error Handling and Partial Failures: Not all operations succeed atomically. For example, try to update a field not supported by the SCIM server, and the request may fail or succeed only partially.
  • Soft Deletes and Compliance: Many SCIM implementations “deactivate” users (e.g., by setting active:false) rather than fully deleting records, supporting audit and compliance needs.
  • Profile Source-of-Truth: Clarify where definitive user data originates (IdP vs. application) to avoid conflicting updates and inconsistencies.

SCIM 2.0 (the current major version) introduces improved PATCH operations, error schemas, and profile handling, but is not backward compatible with earlier versions.

Authoritative Sources and Further Reading

  • RFC 7642, 7643, and 7644: Official SCIM protocol and schema specifications
  • Okta SCIM documentation (concepts, schema, endpoints, integration guides)
  • Official SCIM 2.0 implementation and security guidelines

These primary sources offer precise definitions of the protocol, schema, and best practices for secure, interoperable deployments. Always consult them during design and integration to ensure standards compliance and robust operation.

Sources