Modal logo

SCIM Integration

SCIM (System for Cross-domain Identity Management) is a protocol that identity providers (IdPs) use to automate user management in connected apps.

Modal supports SCIM for automatic provisioning and deprovisioning of users and user groups.

Prerequisites 

  • A Workspace that’s on an Enterprise plan, with SCIM enabled
  • The Workspace Owner or Workspace Manager Role in the Workspace you want to configure with SCIM
  • Admin privileges for your IdP

Connecting an IdP 

Step 1: Generate a SCIM token 

  1. Open the Identity and Provisioning tab on the Workspace Management settings page. If SCIM is enabled for your Workspace, a SCIM Tokens section appears below the Single Sign-On (SSO) section. If you don’t see it, contact support@modal.com to enable SCIM for your Workspace.

  2. Click New SCIM Token, then click Create Token.

  3. Copy the value from the Token Secret box and store it somewhere secure. The dialog also shows the SCIM Endpoint URL for your Workspace, which some IdPs require.

    This is the only time Modal shows the token secret. After you click Done, you can’t view it again; if you lose it, generate a new token.

Step 2: IdP configuration 

  1. Create a new SCIM integration or select your existing custom app.

    If you use the Modal catalog app for Okta SSO, create a separate private SCIM integration. Your existing Modal app can continue to handle SSO; don’t add SSO to the new SCIM integration.

    If you use a custom app for SSO, you can reuse it for SCIM provisioning. Select your existing app in the Okta Admin Console and continue to step 2.

    To create a new integration in the Okta Admin Console:

    1. Go to Applications > Applications.
    2. Click Create a new app integration.
    3. Select Okta Integration Wizard.
    4. Choose Provisioning as the capability.
    5. Choose SCIM 2.0 as the provisioning method.
  2. Configure the integration with your Modal SCIM credentials.

    In the new integration wizard or your existing custom app’s provisioning settings, enter the following values. Replace <workspace> with your Modal Workspace name.

    Okta settingModal value
    SCIM connector base URLhttps://modal.com/api/<workspace>/scim/v2
    Unique identifier field for usersuserName
    Authentication modeHTTP Header
    AuthorizationThe full SCIM token generated in step 1
    Supported provisioning actionsPush New Users, Push Profile Updates, and Push Groups

    Click Test API Credentials. If you created a new integration, review and deploy it. When prompted, add an app instance from your organization’s Private apps catalog.

    In the app instance’s Provisioning > To App settings, enable Create Users, Update User Attributes, and Deactivate Users. Assign the people and groups that Okta should provision to Modal.

    For more information, see Okta’s Okta Integration Wizard documentation.

Modal supports the following SCIM capabilities:

CapabilitySupportedNotes
SCIM 2.0Yes
PaginationYes
Create, update, and remove usersYes
Create, update, and delete groupsYes
Update group membership with PATCHYes
Generate temporary passwordsNoModal authentication uses SSO

Your IdP may also ask which user attributes Modal supports:

SCIM user attributeModal supportNotes
externalIdYes
userNameYesRequired; must contain the user’s email address
displayNameYes
name.familyNameYes
name.givenNameYes
emailsRead-onlyThe primary email is derived from userName
activeYes
addressesNo
profileUrlNo

Managing tokens 

Only Workspace Owners and Workspace Managers can manage SCIM tokens.

Up to two SCIM tokens can be active at a time, so you can rotate tokens without dropping updates:

  1. Generate a new token.
  2. Replace the old token with the new one in your IdP.
  3. Revoke the old token.

Outside of a rotation, keep only one SCIM token active as a security best practice.

Troubleshooting 

Your IdP can’t authenticate with Modal 

Confirm that you copied the full token. It has the form si-XXXXXXXXXXXXXXXXXXXXXX:ss-XXXXXXXXXXXXXXXXXXXXXX.

A group push fails with an “already exists” error 

Your Workspace already has a group with the same name, ignoring case. Group names must be unique across custom and SCIM groups, so rename one of the conflicting groups before retrying the push. See Group name conflicts for details.

Other issues 

If you have any issues with or questions about SCIM integration, reach out via Slack or email us at support@modal.com.