Authentication & User Provisioning — Architecture Diagrams¶
Data Catalog Platform // Auth0 + IdP + SCIM
01 — Architecture Overview
02 — SCIM Native Flow
03 — Script Sync Flow
04 — Group Mapping
Authentication path (Auth0)
Provisioning path (SCIM)
Permissions / Groups (Catalog only)
Identity Provider
Two independent concerns: Authentication (who you are) is delegated to Auth0 and the IdP via SAML or OIDC. Authorization (what you can access) is managed exclusively inside the Data Catalog through Groups. SCIM provisioning keeps users and group memberships in sync — it is not involved in authentication.
When to use this flow: The IdP natively supports SCIM provisioning (MS Entra, Okta, OneLogin, Ping Identity...). Configuration is done entirely on the IdP side. No custom development is needed. This is the preferred approach when available.
When to use this flow: The IdP does not natively support SCIM provisioning. A sync script acts as the glue layer, scheduled regularly (e.g. every 15-30 minutes).
Diff — Option A (Live query): Each run fetches the current state from the Catalog SCIM API (GET /Users, GET /Groups) and computes the delta against the data just retrieved from the IdP. Simple to implement, always up to date, but adds extra read calls to the Catalog on every execution.
Diff — Option B (Local snapshot): The script saves the last successfully synced state to a local file (JSON or SQLite) on the script host. The next run computes the delta against that snapshot instead of querying the Catalog. Faster and resilient to Catalog API unavailability during the diff phase, but requires managing the lifecycle of the state file (storage, corruption handling, recovery after failed runs).
Key constraint: Catalog Groups must be created in the platform before any provisioning is configured. The mapping must be documented and agreed upon by both the IT/IAM team (who own the IdP groups) and the Catalog Admin (who controls the Catalog groups and their permissions). Neither team can define the mapping alone.