Learn about syncing your user list with Okta SCIM.
This guide outlines how to synchronize your application’s Okta directories using SCIM.
To synchronize an organization’s users and groups provisioned for your application, you’ll need to provide the organization with two pieces of information:
After completing step 1 below, both of these are available in your Endpoint’s Settings in the WorkOS Dashboard.
The rest of the steps below will need to be carried out by the organization when configuring your application in their Okta instance.
Login to your WorkOS Dashboard and select “Organizations” from the left hand navigation bar.
Select the organization you’ll be configuring a new Directory Sync with.
Scroll to the “User provisioning“ section. Then, click ”Configure manually“ within the ”Directory Sync” section.
Select “Okta” from the Directory Provider dropdown and provide the Name for the Directory Sync connection. Then, click “Create Directory”.
You’ll see WorkOS has created the Endpoint and Bearer Token which you will provide to Okta in the steps below.
We have support for custom labeled URLs for Directory Sync endpoints. Contact us for more info!
Log in to Okta, go to the Okta admin dashboard and select “Applications” in the navigation bar.
If your application is already created, select it from the list of applications and move to Step 3.
If you haven’t created a SCIM application in Okta, select “Browse App Catalog”.
From your Okta Application dashboard, search for “SCIM 2.0 Test App (OAuth Bearer Token)” and select the corresponding result.
On the following page, click “Add Integration”.
Enter a descriptive App name, then click “Next”.
Many applications will work with the default configuration that is set on your new application. If you require any additional configuration for your directory such as configuring Attribute Statements, do so on the Sign-On Options page. Click “Done” to complete creating your application.
In your application’s Enterprise Okta admin panel, click the “Provisioning” tab. Then, click “Configure API Integration”.
Check “Enable API Integration”. After that, copy and paste the Endpoint from your WorkOS Dashboard in the SCIM 2.0 Base URL field.
Then, copy and paste the Bearer Token from your WorkOS Dashboard into the OAuth Bearer Token field.
Click “Test API Credentials”, and then click “Save”.
The provisioning tab will now show a new suite of options which we’ll utilize in the next Guide Section to continue provisioning your application.
In the “To App” navigation section, check to enable:
Click “Save”.
To assign users to the SAML Application, navigate to the “Assignments” tab, from the “Assign” dropdown, select “Assign to People”.
Select users you’d like to provision and select “Assign”.
When you click “Assign” a lengthy form will open where you can populate all of the user’s metadata. Confirm the metadata fields, scroll down to the bottom, and press “Save and Go Back”. Repeat this for all users and select “Done”.
To push groups in order to sync group membership, navigate to the “Push Groups” tab, from the “Push Groups” dropdown, select: “Find groups by name”.
Caution: Okta advises using separate groups for push groups and group assignments. Otherwise, memberships won't be accurately reflected without manual group pushes for membership changes.
Search for the group you’d like to push and select it. Make sure the box is checked for “Push Immediately” and click “Save”.
In the WorkOS dashboard, you should now see the users and groups synced over.
A detailed guide to integrate the WorkOS API with your application can be found here
It is a known issue with Okta SCIM that if a user is assigned to a SCIM app via a group, you won’t see a dsync.group.user_removed
event if the user is removed from the group. This is a limitation in Okta, where group memberships are not updated in this case. The user needs to be assigned directly to the SCIM app, and the group needs to be pushed in the SCIM app. If those two conditions are met, Okta will send the correct group membership updates.
The Okta SCIM 2.0 directory syncs events in real time.
Suspending a User in Okta will only affect their login and will not alter their status in any connected applications.
Deactivating or Deleting a User in Okta will result in a inactive
status in connected applications (i.e., WorkOS).
For more details, please refer to Okta’s official documentation User Suspension User Deactivation and Deletion.