Skip to content
Bosco edited this page Aug 30, 2023 · 12 revisions

SCIM Reference Code Wiki

What is SCIM

The System for Cross-domain Identity Management (SCIM) specification is an HTTP-based protocol that makes managing identities in multi- domain scenarios easier to support via a standardized service. Examples include, but are not limited to, enterprise-to-cloud service providers and inter-cloud scenarios. The specification suite seeks to build upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. SCIM's intent is to reduce the cost and complexity of user management operations by providing a common user schema, an extension model, and a service protocol.

SCIM definition of two endpoints – a /Users endpoint and a /Groups endpoint. Using common REST verbs to create, update, and delete objects, and a pre-defined schema for common attributes like group name, username, first name, last name and email, apps that offer a SCIM 2.0 REST API can reduce or eliminate the pain of working with a proprietary user management API. For example, any compliant SCIM client knows how to make an HTTP POST of a JSON object to the /Users endpoint to create a new user entry. This means that, instead of every app creating a slightly different API that does the same basic thing but requires proprietary code to call, apps can conform to the SCIM standard and instantly take advantage of pre-existing clients, tools and code.

Developing your SCIM endpoint

Use the samples provided in this Github project to develop your SCIM endpoint.

Note: This code is intended to help you get started building your SCIM endpoint and is provided "AS IS." It is intended as a reference and there is no guarantee of it being actively maintained or supported.

Deploying your SCIM endpoint

You can deploy your SCIM endpoint locally, host it in Azure, or any cloud provider that you choose. We've outlined some simple steps to deploy your SCIM endpoint using Azure App Service.

Testing your SCIM endpoint

Once you’ve built your SCIM endpoint, you’ll want to test it to ensure that your endpoint is compliant with the SCIM RFC. We've provided a set of Postman tests that you can run to verify CRUD operations on users / groups, filtering on users / groups, updating group memberships, and disabling / soft deleting users.

Integrating your SCIM endpoint with a SCIM client

Developing a SCIM compliant user and group endpoint ensures interoperability with any SCIM client. You can use the documentation here to integrate your endpoint with the the Azure AD SCIM client.