Endpoint and token
The SCIM base URL for your workspace is:Generating the token requires the Enterprise plan. The token is stored as a one-way hash, so it cannot be recovered later. Generate a new one to rotate; delete it to turn SCIM off.
What Passport implements
Passport implements the subset of SCIM that Okta and Entra actually drive:- Users: list (with
userName eqfilter), get, create, replace, patch, and delete. - Groups: list, get, create, and patch membership. Groups map to Passport teams.
ServiceProviderConfig advertises: patch supported, filter supported (max 200 results), and bulk, sort, and etag not supported. Group members removed from a group fall back to the “Unassigned” team.
Deprovisioning behavior
This is the important part. When your IdP deactivates or deletes a user (most sendactive: false, some send DELETE), Passport does a full deprovision:
Signed out everywhere
All sessions, AI client connections, and devices are cut immediately.
Grants revoked
Connected-account grants are dropped, so nothing sits at rest or re-arms on reactivation.
Creating a new member or reactivating one counts against your plan’s seat limit. On the Free plan, a request that would exceed the cap returns a SCIM 403 so your IdP records the failure rather than believing it provisioned someone.
Okta provisioning
Enable provisioning
In your Okta app integration, open the Provisioning tab and configure the SCIM connection.
Set the base URL and token
SCIM connector base URL:
https://<your-passport-host>/scim/v2. Authentication mode: HTTP Header (OAuth Bearer Token) with the token you generated in Passport.Microsoft Entra provisioning
Add provisioning
In your Entra enterprise application, open Provisioning and set the mode to Automatic.
Set the tenant URL and secret token
Tenant URL:
https://<your-passport-host>/scim/v2. Secret token: the token you generated in Passport. Test the connection.Passport correctly handles Entra’s non-gallery SCIM client, which sends booleans as the strings “True” and “False”. A deprovision from Entra is applied as a real deactivation, not a silent no-op.