SCIM 2.0 Provisioning
Stop managing the user list by hand. Connect HailBytes SAT to your IdP and let it create, update, and deactivate users automatically.
Endpoint & Auth
HailBytes SAT exposes a SCIM 2.0 endpoint at /scim/v2/. Authentication uses the same bearer token as the REST API.
Tenant URL: https://<your-sat-host>:3333/scim/v2/
Token: Bearer YOUR_API_KEY
Content: application/scim+jsonWhat the Endpoint Supports
| Method | Path | Purpose |
|---|---|---|
| GET | /ServiceProviderConfig | Capabilities advertisement. |
| GET | /Schemas | Schema definitions. |
| GET | /ResourceTypes | Resource list (Users). |
| GET / POST | /Users | List / create. |
| GET / PUT / PATCH / DELETE | /Users/{id} | Get / replace / partial update / delete. |
Group provisioning is on the roadmap; today, manage SAT target groups via the REST API or the dashboard.
Microsoft Entra ID
- In the Entra admin center: Enterprise applications → New application → Create your own. Name it "HailBytes SAT" and pick non-gallery.
- Open Provisioning and switch mode to Automatic.
- Tenant URL:
https://<your-sat-host>:3333/scim/v2/ - Secret Token: paste your HailBytes SAT API key.
- Click Test Connection. Save.
- Edit attribute mappings — the defaults work. Recommended: map
userPrincipalNametouserName,displayNametodisplayName,mailtoemails[type eq "work"].value. - Set Provisioning Status to On. Entra will run an initial cycle and then sync every ~40 minutes.
Okta
- Add an app, choose Create New App → SAML 2.0 + SCIM (you can SAML-enable later; SCIM works standalone).
- Under Provisioning → Integration, set the SCIM connector base URL to
https://<your-sat-host>:3333/scim/v2/. - Authentication mode: HTTP Header. Token:
Bearer YOUR_API_KEY. - Click Test Connector Configuration; expect a green check.
- Enable Create Users, Update User Attributes, and Deactivate Users.
- Assign the app to the right groups.
JumpCloud, OneLogin, etc.
Any standards-compliant SCIM 2.0 client works. Point at /scim/v2/, use the API key as a bearer token, and verify with GET /ServiceProviderConfig.
Sanity Check From the CLI
curl -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/scim+json" \
https://sat.example.com:3333/scim/v2/ServiceProviderConfig
curl -X POST \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/scim+json" \
-d '{
"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName":"alice@example.com",
"name":{"givenName":"Alice","familyName":"Liu"},
"emails":[{"value":"alice@example.com","type":"work","primary":true}],
"active":true
}' \
https://sat.example.com:3333/scim/v2/UsersMulti-Tenant SCIM (MSSP)
Each tenant org has its own API key. Configure one Entra/Okta SCIM app per tenant, each with that tenant's key. Provisioning is org-scoped: an Okta push for tenant A will never spill into tenant B.
Next Steps
Get the Free HailBytes SAT Getting Started Guide
A 7-part email series covering everything from your first deployment to advanced configuration and real-world workflows. One email per day, no spam.