Complete SSO using OIDC before setting up SCIM. Okta does not support SCIM on a custom OIDC app, so SCIM runs as a separate app alongside your existing OIDC integration.
Step 1: Enable SCIM in Bifrost
Open your Okta provider
In your Bifrost dashboard, go to Governance → User Provisioning and open your configured Okta provider.

Enable SCIM provisioning
Click the settings icon to open Provider Configuration.Toggle on Enable SCIM Provisioning and click Save & Enable.

Copy the SCIM credentials
After saving, Bifrost shows a Setup Complete dialog with:
- SCIM Endpoint URL — the base URL Okta will send provisioning requests to
- Provisioning Token — the bearer token Okta uses to authenticate

Step 2: Create a SCIM App in Okta
Browse the App Catalog
In the Okta Admin Console, go to Applications → Applications and click Browse App Catalog.

Step 3: Configure the SCIM App
Connect the app to Bifrost
Enable provisioning actions
Still under the Provisioning tab, go to To App and enable:
- Create Users
- Update User Attributes
- Deactivate Users

Add custom attributes (optional)
Skip this step if you only need to sync standard user fields (name, email, groups).
Syncing custom profile attributes (e.g. employeeId, costCenter, division)
Syncing custom profile attributes (e.g. employeeId, costCenter, division)
Custom attributes need to be declared in the SCIM app schema before Okta can include them in provisioning payloads.Go to Directory → Profile Editor and select the Bifrost SCIM app profile. Click Add Attribute.
Configure the attribute — for example, for

Click Save, then click Mappings on the Bifrost SCIM profile.
Select the Okta User → Bifrost SCIM tab.
Scroll to find your attribute and set its source from the Okta user profile — e.g. 
Back in Bifrost, go to Attribute Mapping in the provider setup and add a SCIM Attribute entry for 

Employee ID:| Field | Value |
|---|---|
| Display name | Employee ID |
| Variable name | employeeID |
| External name | employeeID |
| External namespace | urn:ietf:params:scim:schemas:extension:enterprise:2.0:User |



user.employeeNumber → employeeID. Click Save Mappings.
employeeID. The External name you set in Okta must match this exactly.
The External name in Okta’s Profile Editor and the SCIM attribute name in Bifrost must match exactly — including case.
Step 4: Assign Users and Push Groups
Assign users
Go to the Assignments tab in the Bifrost SCIM app.Click Assign → Assign to People or Assign to Groups and select the users or groups to sync with Bifrost.
Assigned users are pushed to Bifrost immediately. When a user is unassigned or deactivated in Okta, Bifrost deactivates them in real time.

Push groups (for team and BU mapping)
If you use group membership to drive Bifrost team or business unit assignments, you need to push the groups themselves — not just the users in them.Go to the Push Groups tab in the Bifrost SCIM app and click Push Groups.You can push groups by name (search for specific groups) or by rule (create a filter that automatically pushes any matching groups — useful if your groups follow a naming convention like 

Once groups are pushed and showing as Active, Bifrost tracks their membership in real time.
In Bifrost, configure Attribute-to-Team or Attribute-to-Business Unit mappings using the group
Bifrost-*).


displayName as the match value to automatically assign users to teams or business units based on their group membership.Step 5: Verify in Bifrost
Once assignments and group pushes are active, confirm everything is syncing correctly.- Go to Governance → Users to see provisioned users and their assigned roles
- Go to Governance → Teams to see teams populated from pushed groups
- Go to Governance → Business Units to see business units resolved from group or attribute mappings



