An Identity Provider (IDP) is the external service that authenticates an app’s end users. When one is configured per app, Alter verifies the JWTs the IDP issues, resolves which user is making each call, and looks up that user’s grants automatically. This page covers the IDP model. For the runtime SDK pattern, see JWT identity. For step-by-step setup of a specific provider, see the per-IDP guides:Documentation Index
Fetch the complete documentation index at: https://docs.alterauth.com/llms.txt
Use this file to discover all available pages before exploring further.
Auth0
Clerk
Okta
Keycloak
WorkOS
Custom OIDC
What an IDP integration provides
| Capability | What it means |
|---|---|
| JWT verification | Alter validates the signature against the IDP’s JWKS on every call. Replaced/rotated keys are picked up automatically. |
| User resolution | The JWT sub claim maps to an Alter user record. New users are lazy-created on first sight. |
| Group sync | If the JWT carries a group claim, Alter syncs group memberships into the user record. Group-bound managed secrets become accessible to the user. |
| OIDC sign-in (optional) | Lets vault.authenticate() and the Wallet show a sign-in flow through the IDP. |
| Webhook deprovisioning (optional) | Real-time revocation: deleting a user in the IDP revokes their grants in Alter. |
What gets configured
Three concentric layers, each optional after the previous one.JWT validation (required)
Issuer URL, JWKS URL, audience, claim mappings (sub, group, role). Once configured, the SDK can pass JWTs and Alter resolves users from them.
OIDC sign-in (optional)
Client ID + secret + redirect URIs. Adds a browser-based sign-in flow for
vault.authenticate() and Alter Wallet.One IDP per app
Claim mappings lock after first sign-in
Auto-detection
Pasting an issuer URL into the developer portal and clicking Discover triggers detection:- Auth0, Clerk, Okta, Keycloak, WorkOS are recognized from the URL pattern; sensible claim mappings are pre-filled.
- Anything else falls back to
custom_oidcand uses standard OIDC defaults (subfor user ID).
Lazy user sync
The first time Alter sees a JWT for a previously-unknown user:- The JWT signature is verified against the IDP’s JWKS.
- A user record is created keyed by the
subclaim. - Group memberships are synced from the configured group claim.
- The call result is returned.
What happens on deprovisioning
When webhooks are enabled and the IDP fires a user-deletion event:- Alter sets the user’s status to
deprovisioned. - All linked OAuth grants are revoked immediately.
- Tokens for those grants are deleted from the vault.
- Subsequent calls with that user’s JWT (which may still be valid until expiry) fail with
GrantNotFoundError.
See also
- JWT identity — the runtime SDK pattern.
- Reference → Architecture — JWT verification model and trust boundaries.
- Reference → Audit logs — JWT-attributed audit rows.