SCIM at ClearSlide

The SCIM API is based on the open standard Simple Cloud Identity Management: Protocol 2.0.

How do I call the SCIM API?

The base URL for the SCIM API is https://platform.clearslide.com/. When calling the SCIM API, you will need to use an API token created using OAuth 2.0 workflow. You must pass along the API token in the Authorization header, like this:

GET /scim/Users HTTP/1.1
Host: platform.clearslide.com/v2
Accept: application/json
Content-type: application/json
authorization: xxxxxxxxxxxxxxx

SCIM API endpoints

The SCIM API is RESTful, so the endpoint URLs are different from the Web API.

Service Provider Configuration

GET /scim/ServiceProviderConfigs

Returns ClearSlide’s configuration details for our SCIM API, including which operations are supported.

Schemas

GET /scim/Schemas

Return all ClearSlide’s supported objects schemas

GET /scim/Schemas/urn:ietf:params:scim:schemas:core:2.0:User

Returns ClearSlide's configuration details for how Users are formatted.

GET /scim/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group

Returns ClearSlide's configuration details for how Groups are formatted.

Users

{
            "active": true,
            "groups": [
                {
                    "display": "Administrators",
                    "schemas": [
                        "urn:ietf:params:scim:schemas:core:2.0:Group"
                    ],
                    "value": "CKJU93JEPBHZPXN4MVUC"
                }
            ],
            "id": "SNPPBQML5FGGVW6A3K5H",
            "meta": {
                "created": "2017-02-23T23:06:11.000Z",
                "lastModified": "2017-02-23T23:06:11.000Z",
                "location": "https://platform.clearslide.com/v2/scim/Users/SNPPBQML5FGGVW6A3K5H",
                "resourceType": "User"
            },
            "name": {
                "familyName": "John",
                "givenName": "Smith"
            },
            "phoneNumbers": [
                {
                    "type": "work",
                    "value": "4088002281"
                }
            ],
            "schemas": [
                "urn:ietf:params:scim:schemas:core:2.0:User"
            ],
            "userName": "[email protected]",
            "userType": "admin"
        }

GET /scim/Users

Returns all the users belong to the team.

Filters: We only support ‘eq’ filter on userName right now.

curl -H "authorization:Bearer xxxx" https://platform.clearslide.com/v2/scim/Users?filter=userName eq '[email protected]'

GET /scim/Users/{id}

Returns user by id.

POST /scim/Users

Creates a user.

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "userName": "[email protected]",
    "name": {
        "givenName": "R",
        "familyName": "G"
    },
    "active": true,
    "phoneNumbers": [
        {
            "value": "1234567890"
        }
    ],
    "userType": null
}

PUT /scim/Users/{id}

Updates an existing user resource, overwriting all values for a user even if an attribute is empty or not provided.

PATCH /scim/Users/{id}

Not Supported right now

DELETE /scim/Users

Sets a ClearSlide user to deactivated and hides this user from all future requests.

PUT /scim/Users/{id}/activate

Sets a ClearSlide user to activated.

Groups

{
    "value": "D9ZRBJBNPZFET87A2S67",
    "id": "D9ZRBJBNPZFET87A2S67",
    "meta": {
        "resourceType": "Group",
        "lastModified": "2018-02-13T03:44:09.916Z",
        "version": null,
        "location": "https://platform.clearslide.com/v2/scim/Groups/D9ZRBJBNPZFET87A2S67",
        "created": "2018-02-13T03:44:09.916Z"
    },
    "externalId": null,
    "active": true,
    "display": "My Group Name",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Group"
    ]
}

GET /scim/Groups

Returns all the groups belong to the team. No filter supported

GET /scim/Groups/{id}

Retrieves a single Group resource.

POST /scim/Groups

Creates a group.

{
    "display": "1518493446671",
    "active": true
}

PUT /scim/Groups/{id}

Updates an existing group resource, overwriting all values for a user even if an attribute is empty or not provided.

DELETE /scim/Groups/{id}

Deletes a group.

PATCH /scim/Groups/{id}

Add users to a group.

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "add",
            "path": "members",
            "value": [
                {
                    "value": "GX9PSWXRDC2Q9PYVPKNP"
                }
            ]
        }
    ]
}

PATCH /scim/Groups/{id}

Remove users from a group. Only, 'eq' filter over 'value' is supported as 'path' for removing user from a group.

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "remove",
            "path": "members[value eq \"2KWCQWCMGBUJTRF9R68L\"]"
        }
    ]
}