Before you start
You need:- A working and domain-verified Okta SAML SSO connection.
- An OpenWork owner, or a member who can manage security configuration.
- An Okta administrator who can configure provisioning for the SAML app.
- An Okta plan that supports the provisioning and group-push features you intend to use.
1. Create the OpenWork SCIM connector
In OpenWork, select the organization, then open Settings → SCIM. Confirm the page reports that SAML/SSO is active, then:- Select Create connector.
- Copy the SCIM base URL.
- Copy the bearer token immediately. OpenWork displays the full token only after creating or rotating the connector.
- Leave Create teams from SCIM groups off until user provisioning works.
Use the base URL OpenWork displays. In a split-host Helm deployment it may use
the web auth origin even when a separate Den API origin also exists. Do not
rewrite the hostname.
2. Enable SCIM on the Okta application
Use the same Okta application as SAML SSO:- Open Applications → Applications → OpenWork.
- Open General and edit App Settings.
- Enable SCIM under Provisioning, then save.
- Open the new Provisioning tab.
- Select Configure API Integration.
- Enable API Integration.
Select Test API Credentials or Test Connector Configuration, depending
on your Okta interface. Save only after Okta reports Connector configured
successfully. For the initial user-only setup, Okta should detect Create
Users and Update User Attributes. It is expected for import and group
features to remain undetected when you have not selected them.
3. Configure provisioning to OpenWork
Open Provisioning → To App, then enable:- Create Users
- Update User Attributes
- Deactivate Users
The SAML NameID and SCIM
userName must identify the same person. A mismatch
can create a duplicate OpenWork member instead of linking SSO and SCIM.
4. Provision one test user
For the cleanest first test, use a user who has never been assigned or provisioned to this Okta application:- Open the Okta application’s Assignments tab.
- Assign one test user and confirm their application username is the same
email used for SAML NameID and SCIM
userName. - Wait for Okta’s automatic provisioning job to finish. Do not repeatedly edit the assignment or trigger provisioning while the job is running.
- Open Okta Reports → System Log and confirm a single Push new user to external application event succeeds.
- In OpenWork, open Members and verify the same member appears without a second password-backed account.
409 User already exists.
Do not broaden assignments until the test user’s create, update, deactivate,
and reactivate lifecycle works.
5. Verify the user lifecycle
For the assigned test user, verify:- Changing the profile name in Okta updates the OpenWork member.
- Unassigning or deactivating the user removes active organization access.
- The user cannot regain access through password sign-up while SCIM marks the identity inactive.
- Reactivating and reassigning the user restores the same OpenWork identity.
- An unrelated OpenWork member remains unchanged throughout the test.
6. Push Okta groups as OpenWork teams
After user provisioning works:- In OpenWork Settings → SCIM, enable Create teams from SCIM groups.
- In Okta, open the application’s Push Groups tab.
- Select Push Groups and choose a small test group by name or rule.
- Confirm Okta creates the group and pushes its current membership.
- In OpenWork, open Members → Teams and verify a team labeled Managed by SCIM appears with the expected members.
- Add and remove one member in Okta and verify the OpenWork team follows.
7. Expand scope and enforce SSO
After the lifecycle and group tests pass:- Assign the intended Okta users and groups to the application.
- Review Okta provisioning events for failures.
- Review OpenWork’s SCIM health and unresolved-failure count.
- Confirm at least one owner has working Okta SAML access.
- Only then consider enabling Require SSO for this organization.
When to run reconciliation
Use Settings → SCIM → Run reconciliation to check OpenWork’s local SCIM-managed identities for inconsistent organization membership or missing provider-account state. OpenWork records unresolved drift for retry or manual review. Reconciliation does not import users from Okta, force Okta to provision an assigned user, or clear an Okta application-assignment error. Use the Okta Assignments page and System Log for outbound provisioning. When OpenWork has no local drift to process, reconciliation may complete without a visible member change.Troubleshooting
For member and team behavior after provisioning, see
Members and RBAC.