algovoi-command-center-scim) that ships in the Verifiable Compliance Suite and
pairs with the console’s existing SSO (SAML, OIDC, LDAP, Active Directory) and its authenticator-app MFA.
It reuses the console’s own identity model rather than adding a parallel one:
- a SCIM User is a console account, in the same store your SSO providers read;
- a SCIM Group is one of the four fixed RBAC roles (
admin,compliance_officer,auditor,viewer); no new role or group concept is introduced; - every provisioning change (create, update, deactivate, role assignment) is appended to the console’s Falcon-signed, offline-verifiable audit chain, so provisioning is itself compliance evidence.
DELETE marks the account inactive, it can no longer sign in, and
the account plus its audit history are retained as evidence. Nothing is hard deleted.
1. Enable it
The add-on is off by default and licence-gated. It becomes active when three things are true:- Installed. It ships in the suite bundle; a standalone deployment installs
algovoi-command-center-scimalongside the console. - Licensed. Your AlgoVoi suite
bundle_license(the same one that unlocks the rest of the suite) satisfies it. With no valid licence the console does not mount the SCIM endpoint at all, so it stays unreachable, fail-closed. - Reachable over TLS. The endpoint lives under your console origin at
/scim/v2.
The SCIM bearer token
The SCIM endpoint authenticates with a dedicated bearer token, entirely separate from human sign-in. Set it explicitly, or let the console bootstrap one on first run:Authorization: Bearer <token>. To rotate, set a new
COMMAND_CENTER_SCIM_TOKEN and restart the console, then update the token in your IdP. Treat it like any
production secret.
2. What it provisions
A newly provisioned user starts at the least-privilege
viewer baseline; assign a role by adding the
user to the matching group. Removing a user from their role group returns them to viewer. The console
can never be left without an administrator: any change that would deactivate or demote the last active
admin is refused.
3. Set up your identity provider
The three providers below all speak standard SCIM 2.0. In every case you supply the same two values.Okta
- In the Okta admin console, open Applications, create or open your app, and go to the Provisioning tab. Choose Configure API Integration and enable it.
- Set Base URL to
https://your-console-host/scim/v2and API Token to your SCIM bearer token, then Test API Credentials. - Under Provisioning to App, enable Create Users, Update User Attributes and
Deactivate Users. Deactivation calls
DELETE/PATCH active=false, which soft-deactivates the account. - Map attributes so Okta
userNamemaps to consoleuserNameandemailmaps toemails.value. - Under Push Groups, push the groups that correspond to the four roles. Name them to match a role
(
admin,compliance_officer,auditor,viewer) or the role label (for exampleAdministrator); the console accepts a pushed group only when it maps to an existing role.
Azure AD (Microsoft Entra ID)
- In Enterprise applications, open your app and select Provisioning. Set Provisioning Mode to Automatic.
- Set Tenant URL to
https://your-console-host/scim/v2and Secret Token to your SCIM bearer token, then Test Connection. - In Mappings, keep Provision Azure Active Directory Users and Groups enabled. Ensure
userPrincipalNamemaps touserNameandmailmaps toemails[type eq "work"].value. - Assign users and groups to the app. Azure sends
PATCHwithactive=falseon unassignment, which deactivates the account. - Name the assigned groups to match the four roles so membership sets the console role.
OneLogin
- In OneLogin, open the app’s Configuration and enter the SCIM Base URL
https://your-console-host/scim/v2and the SCIM Bearer Token. - Set the API Connection to Enable and confirm the connection succeeds.
- On the Provisioning tab, enable Create user, Delete user and Update user. Delete performs a soft deactivate.
- Map SCIM Username to
userNameand the email attribute toemails.value. - Use Rules or group mappings so that role entitlements map to the four role groups.
4. Deprovisioning
When your IdP disables or unassigns a user, it calls the SCIM endpoint to deactivate the account. The effect:- the account is marked
active=false(a soft deactivate, never a hard delete); - the user can no longer sign in through any provider (local, LDAP, AD, OIDC, SAML);
- the account record and its full audit history are retained as evidence;
- a
scim_user_deactivateentry is written to the signed audit chain.
5. Audit evidence
Every SCIM operation is appended to the same Falcon-1024 signed, hash-linked audit chain the rest of the console uses, and re-verifies offline from the Audit page or the validation pack. The actions you will see:
Each entry records the target account and is hash-linked to the previous one, so the provisioning history
is tamper-evident and exports as part of your compliance evidence.
6. Endpoint reference
Base pathhttps://your-console-host/scim/v2. All calls require the bearer token.
Pair SCIM with authenticator-app MFA for the full “MFA plus auto-provision”
enterprise identity story, all self-hosted and evidenced on the same signed chain.