Skip to content

SCIM 2.0 Provisioning

BitDrip implements the SCIM 2.0 Users resource (RFC 7644) at /scim/v2. Use it to automate user provisioning and deprovisioning from Okta, Azure AD, or any SCIM-compatible identity provider.

Endpoint

https://your-policy-engine/scim/v2/Users

Authentication uses a static Bearer token set on the policy engine:

bash
# Set the SCIM token in your environment
SCIM_TOKEN=<random-64-char-secret>

Pass this token in the Authorization header when configuring your IdP.

Operations

MethodPathDescription
GET/scim/v2/UsersList users (supports filter=userName eq "...")
POST/scim/v2/UsersCreate a new user
GET/scim/v2/Users/:idGet a single user
PUT/scim/v2/Users/:idReplace a user
PATCH/scim/v2/Users/:idUpdate a user (set active: false to deactivate)

Attribute Mapping

SCIM attributeBitDrip field
userNameemail
name.givenNamefirstName
name.familyNamelastName
activeAccount enabled/disabled

The active: false signal disables the user account in BitDrip. The user's audit history is preserved.

Okta Configuration

  1. In Okta Admin Console, go to Applications → Add Application → SCIM 2.0 Test App (Header Auth)
  2. Set SCIM connector base URL to https://your-policy-engine/scim/v2
  3. Set Authorization header to Bearer <SCIM_TOKEN>
  4. Set Supported provisioning actions: Push new users, Push profile updates, Push user deactivation
  5. Assign the app to the groups you want to sync

Azure AD Configuration

  1. In Azure AD, open the enterprise application you created for BitDrip SSO
  2. Go to Provisioning → Set up provisioning
  3. Set Provisioning Mode to Automatic
  4. Set Tenant URL to https://your-policy-engine/scim/v2
  5. Set Secret Token to your SCIM_TOKEN
  6. Click Test Connection, then save and start provisioning

Security Notes

  • The SCIM token is compared using crypto.timingSafeEqual() — safe against timing attacks
  • All SCIM operations are scoped to a single organisation; cross-org access is rejected
  • SCIM operations do not affect existing JWT sessions — deactivated users are blocked at the auth middleware on their next request

Released under the BitDrip Commercial License.