Skip to main content

Intro

The System for Cross-domain Identity Management (SCIM) is a standard that defines API endpoints that systems can use to manage identity. With an SSO integration, Domo receives information about new or updated users only when they log into Domo. However, with SCIM, you can configure your identity provider (IdP) to create and/or update users and groups in Domo when those users and groups are created and modified in your IdP.
Note: To learn more about SCIM, see the IETF protocol document .
This article describes how to get started with SCIM in Domo.
Tip: Learn more about implementing SSO for Domo and other security topics in the Knowledge Base.

Prerequisites

Domo’s SCIM endpoints use header-based authorization with a Domo access token. Domo’s SCIM endpoints accept either of the two authorization headers, both of which require access tokens:
  • Authorization: Bearer < Domo Access Token >
  • X-Domo-Developer-Token: < Domo Access Token >
Learn how to generate an access token.

Configure Required Grants

We recommend that you create a SCIM Integration custom role and user:
  1. Create a “SCIM Integration Role” as a custom role in your Domo instance — This role can be assigned only the grants required to support your intended usage of the SCIM integration (see required grants below). Learn how to create and define custom roles.
  2. Create a “SCIM Integration User” in your Domo instance and assign it to the SCIM Integration Role — Domo’s SCIM endpoints require authorization using a Domo access token, and access tokens are associated with specific Domo users. Taking this approach, the access token used in the SCIM integration can be assigned to the SCIM Integration User.
Whether or not you create this recommended user and role, the owner of the access token used in the SCIM integration must have the following grants enabled:
  • Manage All Users — This grant allows the holder to create, edit, and delete any user and reset their password.
  • Manage All Roles — This grant allows the holder to create, edit, and delete custom roles and assign any role to any user.
  • Manage All Groups — This grant allows the holder to manage group settings, modify Ad Hoc Domo groups, and create and manage Directory groups via SCIM.
    Note: This grant is not required if you don’t intend to use the SCIM Groups endpoints or the group-related attributes in the SCIM Users endpoint.
    Note: These are all admin-level grants, included automatically with the Admin system role, and allow you to add and manage all aspects of users, including setting roles and changing passwords.
Learn how to add these grants to a custom role.

Synchronize Directory Groups

Domo directory groups (groups defined in the IdP and created and managed in Domo via SSO or SCIM integration) can be created, managed, and deleted via SSO and SCIM. The SCIM APIs only function on directory groups. This means that groups created via SCIM are always directory groups, and the Get Group endpoint only returns information about directory groups. Learn more about directory groups and other group types in Domo. Domo’s SCIM integration functions in the context of the Domo user who owns the Domo Access Token used by the SCIM integration. (See our recommendations for the SCIM Integration User above.) To allow Domo directory groups to be managed via SCIM, the Domo SCIM Integration User must be designated in Groups Settings as the user permitted to manage directory groups. Follow these steps to designate the SCIM Integration User in Group Settings:
  1. Go to Admin > Governance > Groups.
  2. Select Group Settings (gear icon).
    Groups page with Group Settings gear icon highlighted
  3. In the modal that displays, use the dropdown to choose the SCIM Integration User and save your changes.
    Group Settings modal with dropdown to select the SCIM Integration User

Review Supported Endpoints

Domo’s SCIM implementation supports many standard endpoints. The endpoint information provided in the sections below is to help you configure your IdP. For details of what is required with each action, refer to the SCIM spec . Endpoint root:

Configure Schemas

The following configuration and schema endpoints are supported in Domo:

Manage Users

The following user endpoints are supported in Domo:

Examples

POST /Users
PUT /Users/{USER_ID} This deletes a user via PUT
PATCH /Users/{USER_ID}

Manage Groups

The following group endpoints are supported in Domo:

Examples

POST /Groups
PATCH /Groups/{GROUP_ID} This removes all members from a group
PATCH /Groups/{GROUP_ID} This replaces all members of a group with those provided

Configure Your IdP

The SCIM integration between your IdP and Domo is configured on the IdP side. To get started, refer to the documentation from your IdP.

Map Schemas and Attributes

During configuration, you must configure which user attributes and group properties are synchronized to Domo from your IdP. Domo’s SCIM endpoints map elements from six SCIM schemas. These schemas and their elements are mapped to various Domo user and group attributes. The tables below list the Domo user and group attribute names and the corresponding SCIM schema and attribute.

Map User Attributes

Map Group Attributes

FAQs

  1. Why does Okta’s SCIM sync for groups sometimes remove all members or change membership unexpectedly?
    • Okta requires different groups for assignment and membership. See Okta’s support site for details on this limitation.
  2. Why is Okta’s SCIM sync not working reliably after pointing my Okta app at a different Domo instance?
    • Okta stores the “external id” (ID of the user in Domo, for example) within the Okta app. If the Okta app is pointed to a different Domo instance where the ID’s of your users and groups are different, Okta can no longer reconcile those which may result in unexpected behavior. This is a known limitation with Okta’s SCIM implementation. Because of that, we recommend creating a new Okta app for each Domo instance and not changing the target instance URL after creation.