SCIM 2.0 Provisioning

GET    /api/v1/scim/v2/Users            — list (filter=userName|externalId eq "…")
POST   /api/v1/scim/v2/Users            — create (idempotent on externalId/userName)
GET    /api/v1/scim/v2/Users/{id}
PUT    /api/v1/scim/v2/Users/{id}       — replace displayName/active
PATCH  /api/v1/scim/v2/Users/{id}       — RFC 7644 ops (active, displayName)
DELETE /api/v1/scim/v2/Users/{id}       — soft-deactivate + revoke sessions

Rate limit: 60 requests per minute per IP (burst 30). Auth: Authorization: Bearer scim_… — a SCIM provisioning token, not a cookie or API key.

Token scope. A SCIM token may only act on accounts SCIM itself created, and only within its own provider:

Admin management of provisioning tokens (raw token shown once, revoke ≠ delete):

GET    /api/v1/admin/scim-tokens
POST   /api/v1/admin/scim-tokens        — {description?, expires_at?} → {token, …}
DELETE /api/v1/admin/scim-tokens/{id}   — revoke

Error responses: