Okta SCIM
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:
- An Endpoint that Okta will make requests to.
- A Bearer Token for Okta to authenticate its endpoint requests.
After completing step 1 below, both of these are available in your Endpointâs Settings in the WorkOS Dashboard.
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 âAdd directoryâ.

Youâll see WorkOS has created the Endpoint and Bearer Token which you will provide to Okta in the steps below.

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:
- Create Users
- Update User Attributes
- Deactivate Users
Click âSaveâ.

To assign users to the SCIM 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â.

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
For any non-standard attributes used by the application, some configuration may be required in Okta. Below is a guide on configuring user attribute mappings, so they propagate via SCIM.
From the Okta administrator portal, navigate to Directory â Profile Editor, and find the application for which youâd like to edit mappings.

Clicking into the application will bring you to a Profile Editor page:

Youâll likely see several attributes listed, which are scoped to the application. If you see an attribute listed youâre looking to map to an application, thereâs no need to create a new attribute and you can skip to step 3.
If a desired attribute is missing from your application, click the âAdd Attributeâ button to create a new attribute.

Enter a display name and variable name of your choosing, and ensure the external name matches the key required by the third-party application. For example, if the third-party application pulls the manager value from manager.value, the external name should be manager.value.
For attributes included as part of the SCIM enterprise extension, enter the external namespace as urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.

Once youâve entered the required information, click âSaveâ.
To map Okta user profile attributes to your application users, click on the âMappingsâ button.

Mappings can be bidirectional, either from the application to the Okta user or from the Okta user to the application. This guide will focus on mapping from the Okta user to the application. Click the âOkta User to (name of application)â tab.

Find the name of the attribute youâd like to map in the right column. In the corresponding rowâs left column, enter the name of the Okta user profile attribute youâd like to map over. For example, if youâre looking to map manager email in the application, select managerId in the left column.

Ensure the apply mappings setting is set to âApply mapping on user create and updateâ.

Once your mappings are configured, click âSave Mappingsâ and âApply updates nowâ. These new attribute mappings will now propagate to the application.
A user appears in a group they are no longer a member of in Okta, why? How can I fix this situation?
There is a known issue in Okta where push group membership removals are not sent via SCIM when the affected user is deactivated or unassigned from the app. This commonly happens when a single group is used for both assignment and push, since removing a user triggers deactivation causing the membership removal event to never be sent. The IT admin can fix it by clicking âPush nowâ on the affected group in the Push Groups tab.
How often do the Okta SCIM 2.0 directories perform a sync?
The Okta SCIM 2.0 directory syncs events in real time.
Why is a user suspended in Okta still active in WorkOS?
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.
What is the idp_id for directory groups from Okta?
Okta only provides a group display name as a group identifier, so this display name is persisted as the idp_id and name for directory groups in WorkOS.