SCIM 2.0 API is Now Available on RingCentral

John Wang
RingCentral Developers
3 min readFeb 15, 2018

SCIM (or the System for Cross-domain Identity Management) is a standard IETF API used to provision and manage users. It’s primarily used by Single Sign-On (SSO) systems that must interoperate with many different services in a platform-independent manner. At RingCentral, we’ve added SCIM to our REST API to enable more seamless user management. Users added via SCIM will be automatically provisioned into RingCentral Office and Glip.

Our SCIM API is included in our:

In addition to our core reference, our team has produced a stand-alone SCIM API specification and Postman collection.

RingCentral SCIM 2.0 API Overview

RingCentral supports a range of SCIM 2.0 user management APIs including the following:

Some notes:

  • Creating a user requires an unassigned extension must exist beforehand for that user to be provisioned into.
  • Deleting a user will convert the user extension into an unassigned extension. Excess phone numbers will be released to the account.

For the most part the API, is a straight-forward REST API which you can learn more about in our linked API Reference and other resources. The API References lists the permissions required for each endpoint.

The Polymorphic Patch User Update

The most interesting part of the API is the Update User via PATCH which has a polymorphic request body. It can not only update specific fields in a user but filter for a set of users to update.

https://tools.ietf.org/html/rfc7644#section-3.5.2

Here’s an example from page 44 of RFC 7644 that shows replacing a work address for all users.

PATCH /Users/2819c223-7f76-453a-919d-413861904646
Host: example.com
Accept: application/scim+json
Content-Type: application/scim+json
Authorization: Bearer h480djs93hd8
If-Match: W/"a330bc54f0671c9"

{
"schemas":
["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [{
"op":"replace",
"path":"addresses[type eq \"work\"]",
"value":
{
"type": "work",
"streetAddress": "911 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "US",
"formatted":
"911 Universal City Plaza\nHollywood, CA 91608 US",
"primary": true
}
}]
}

Client SDKs

SCIM endpoints and model classes are built into the following RingCentral statically-typed language SDKs.

Dynamically-typed language SDKs for languages like JavaScript, PHP, Python and Ruby, do not need support for specific endpoints and are good to go as-is.

If you need SCIM support for a SDK we don’t support, such as APEX, please check out the Swagger Codegen project.

Support

If you have any questions on using SCIM, please reach out to us on our Community or Stack Overflow:

--

--

John Wang
RingCentral Developers

AVP Platform Products for @RingCentral with a focus on improving life through innovative products and software