# Okta SCIM Integration

SCIM (System for Cross-domain Identity Management) is an open standard for automating the management of user and group membership.

This document walks you through setting up SCIM-based users and groups with Okta.

Find Okta's documentation for these steps at <https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_scim.htm>

## DeltaStream and Okta SCIM Concepts

DeltaStream's SCIM integration automates adding/removing [users](https://docs.deltastream.io/overview/core-concepts/access-control#_user) from your [organization](https://docs.deltastream.io/overview/core-concepts/access-control#_organiation) and leveraging Okta groups to grant access to DeltaStream [roles](https://docs.deltastream.io/overview/core-concepts/access-control#_role).

There are two types of groups within Okta:

1. **Assignment groups** manage [access to Okta App Integrations](https://help.okta.com/en-us/content/topics/apps/apps-assign-applications.htm). Users added to the assignment group are automatically added to DeltaStream but are not assigned any custom roles.
2. **Push Groups** enable Okta to [push existing Okta group memberships](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-about-group-push.htm) to DeltaStream. These groups are mapped to [custom roles](https://docs.deltastream.io/overview/core-concepts/access-control#custom-roles) within DeltaStream.

You cannot use Push groups to control access to built-in roles. Instead, use a custom user attribute and a dedicated Assignment group to achieve `orgadmin` role membership.

Custom roles created using Push groups are not automatically granted any privileges. You must grant privileges to the roles with `MANAGE_GRANTS` privilege (by default, `orgadmin` or `securityadmin`).

{% hint style="info" %}
**Note** You must add a user to an Assignment group before adding them to a Push group.
{% endhint %}

## SCIM Setup

### Prerequisites

* Set up Okta [SAML app integration](https://docs.deltastream.io/enterprise-security-integrations/okta-saml-integration).

### Enable SCIM Provisioning

This section describes how to enable SCIM provisioning on an app integration. Additional configuration is added in subsequent sections.

1. Click to activate the **General** tab, and in the **App Settings** box click **Edit**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-37acac394894d5566e2bca911e28a2326c84eb67%2F6.%20edit%20saml%20settings.png?alt=media" alt="" width="371"><figcaption></figcaption></figure>

2. Check **Enable SCIM provisioning** and then click **Save**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-b09255b887b7679be058353d4901278540e11c6a%2FScreenshot%202023-10-03%20at%208.19.38%20PM.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

### Set up the DeltaStream OrgAdmin Attribute

This section describes how to create a new custom attribute you use to specify who should have access to the OrgAdmin built-in role.

1. In the lefthand navigation, go to **Directory** > **Profile Editor**.
2. Click **DeltaStream Users**.<br>

   <figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-129840ec49fa48bff854e82926b0f56a7d3849dc%2Fassignment%20group%20-%20profile%20editor%201.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>
3. Click **Add Attribute**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-7706d5e40c5c3abf4a2b9f37aa7ab45cb6d5b4c5%2Fassignment%20group%20-%20profile%20editor%202.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

4. Create a new boolean attribute with the following values:

<table><thead><tr><th width="215">Key</th><th>Value</th></tr></thead><tbody><tr><td>Data type</td><td><code>boolean</code></td></tr><tr><td>Display name</td><td><code>DeltaStream OrgAdmin</code></td></tr><tr><td>Variable name</td><td><code>deltastreamOrgadmin</code></td></tr><tr><td>External name</td><td><code>deltastreamOrgadmin</code></td></tr><tr><td>External namespace</td><td><code>urn:ietf:params:scim:schemas:core:2.0:User</code></td></tr></tbody></table>

Verify that the **Attribute Type** is set to **Group**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgdsjd2O4BcNHStAO06qL%2FScreenshot%202025-05-28%20at%202.31.25%E2%80%AFPM.png?alt=media&#x26;token=253b1c26-7a9b-4e76-ba3b-fdc44b8f352c" alt="" width="375"><figcaption></figcaption></figure>

### Set up the DeltaStream OrgAdmin User Assignment Group

This section describes how to create a new assignment group for OrgAdmins. Any users assigned to this group are granted the OrgAdmin role in DeltaStream.

1. In the lefthand navigation go to **Directory** -> **Groups** and then click **Add group**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-f60b881376fa03a7545dd7418f7bf6e44c1e2fde%2Fassignment%20group%20-%20orgadmin%20group%201.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

2. Name the group **DeltaStream OrgAdmins** and then click **Save**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-6210bc48f0df143f365f3e09f12428c2de91718e%2Fassignment%20group%20-%20orgadmin%20group%202.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

3. Click the newly-created group to configure it.
4. Click the **Applications** tab to activate it and then click **Assign applications**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-090b423e6a56997dc678537e6c0fc963be431b85%2Fassignment%20group%20-%20orgadmin%20group%203.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

4. Assign the DeltaStream application.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-fcefc449f176971e870ce283b058d4a24cd2474c%2Fassignment%20group%20-%20orgadmin%20group%204.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

5. Verify the **DeltaStream OrgAdmin** attribute is set to **true**. Then click **Save and Go Back**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-54687c9383798173cd88bd983c1ec17b043e2dcc%2Fassignment%20group%20-%20orgadmin%20group%205.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

### Set up the DeltaStream User Assignment Group

This section describes how to create a new assignment group for non-privileged users.

1. In the lefthand navigation, go to **Directory** > **Groups** and then click **Add group**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-f60b881376fa03a7545dd7418f7bf6e44c1e2fde%2Fassignment%20group%20-%20orgadmin%20group%201.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

2. Name the group **DeltaStream Users** and click **Save**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-46e088cde774a82beb7c68026ce81b9ae71ec559%2Fassignment%20group%20-%20user%20group%201.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

3. Click the newly-created group to configure it.
4. Click the **Applications** tab to activate it, and then click **Assign applications**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-7aafe73cb4af9eb936fe2c78d8727b6272ffc3f6%2Fassignment%20group%20-%20user%20group%202.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

4. Assign the DeltaStream application and then click **Save**.

## SCIM user provisioning

### Assign someone to the OrgAdmin assignment group

1. In the lefthand navigation, go to **Application** > **Applications** > **Deltastream**.
   1. Click to activate the **Assignments** tab.
   2. Filter by **Groups.**
   3. Click the **DeltaStream OrgAdmins** group.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-08f00806bd5c8ddbab281db0f69b71273c781229%2Fapp%20groups.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

2. Click **Assign people** and then select the individuals you wish to assign as OrgAdmins.

{% hint style="info" %}
**Note** Ensure the person provided as the OrgAdmin for SAML application setup is also added to this group.
{% endhint %}

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-663720c239c48c0cbfc331a00391017526aba5d5%2Fapp%20groups%20-%20admin%20-%20assign.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

### Assign a user to the Users assignment group

1. From the lefthand navigation to **Application** > **Applications** > **Deltastream**.
   1. Click to activate the **Assignments** tab.
   2. Filter by **Groups**.
   3. Click the **DeltaStream Users** group.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-08f00806bd5c8ddbab281db0f69b71273c781229%2Fapp%20groups.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

2. Click **Assign people** and select the individuals you wish to have access to DeltaStream.

{% hint style="info" %}
**Note** Assigning users does not grant them any additional roles. Configure a Push group to assign roles.
{% endhint %}

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-71b38334495b7d628a0ed49ba3065879aea2bf64%2Fapp%20groups%20-%20user%20%20-%20assign.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

## Configure security integration

This section describes how to configure the SCIM integration URI and token so that Okta can push information to DeltaStream.

1. In the top toolbar, change the role to orgadmin.
2. In the lefthand navigation click Integration ( ![](https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2FPPFsFUyg2Es3Fz7yXnVO%2FIntegrationIcon.png?alt=media\&token=1ebcc500-e279-49a9-9b3b-7c24fd7df1e4) ). Then click **Security Integration**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2FOalnCN4DKNBweyFByzox%2FScreenshot%202025-05-28%20at%204.23.34%E2%80%AFPM.png?alt=media&#x26;token=433caedc-380e-4efa-bcca-0eaee7d4f289" alt="" width="375"><figcaption></figcaption></figure>

2. Save the URI and token for later use. This security integration expires after 1 year.
3. In your Okta dashboard, in the lefthand navigation click **Applications** and then click the **DeltaStream** application:<br>

   <figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-feb075add902ebf229460512b71f4e1eaea5eebb%2F5.%20select%20deltastream%20app%20integration.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>
4. Click the **Provisioning** tab to activate it, then click **edit**:

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-f8c8f49a43e78af2a2a8af952c6c39fdb06efc7b%2Fscim%20provisioning%20summary.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

4. Copy the URI from the security integration setup in step 1 to the SCIM connector base URL.
5. Enter `email` for unique identifier field for users.
6. Check the following:
   1. **Import New Users and Profile Updates**
   2. **Push New Users**
   3. **Push Profile Updates**
   4. **Push Groups**<br>
7. For **Authentication Mode**, click **HTTP Header**. Then copy the token from the security integration setup in step (1) and paste it into the **Authorization Bearer** box. Then click **Save**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-54fe3bbe151f7d7561455489eef840a303e5f76b%2Fscim%20provisioning%20setup%201.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

8. Click the **Provisioning** tab to activate it, and in the **Provisioning to App** settings, click **Edit**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-c7f782d84d2df43acdf3e3071699d0bae13742e0%2Fscim%20provisioning%20setup%202a.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

9. Check the following:
   1. **Create Users**
   2. **Update User Attributes**
   3. **Deactivate Users**
10. Click **Save**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-9c2efa810556a2135143c00210f807a44d62b0bc%2Fscim%20provisioning%20setup%202b.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

## Configure Push groups

Before you begin, ensure that everyone who needs access to DeltaStream has been added either to the **DeltaStream Users** or the **DeltaStream OrgAdmins** assignment groups.

1. From the lefthand navigation, go to **Application** > **Applications** > **Deltastream**.
2. Click the **Push Groups** tab to activate it.
3. Click **+ Push Groups** to search for and select a group to push.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-5d7ca44a5f3cc8928b5447209f9a609ccb647a0c%2Fpush%20groups.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

2\. Click **Find groups by name**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-e107834b8936a64cf6c8d9e8f5d33d4ed8ade71e%2Fpush%20groups%20-%20find.png?alt=media" alt=""><figcaption></figcaption></figure>

3. Enter the name of the group you wish to push -- for example, **development.**
4. Click **Push group memberships immediately**.
5. Click **Save**.

<figure><img src="https://1288764042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdbd9e6ZJodkgF1H6AVay%2Fuploads%2Fgit-blob-1244e9817acee20d2054e32dd23fe2ef388ba62d%2Fpush%20groups%20-%20select.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

This creates a role with the same name as the group in DeltaStream. Anyone who is part of the group is also assigned this role.

## References

* <https://help.okta.com/en-us/content/topics/provisioning/lcm/con-okta-prov.htm>
* <https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_scim.htm>
* <https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_saml.htm>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.deltastream.io/enterprise-security-integrations/okta-scim-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
