This page is the per-provider supplement to the IDP overview. Read that first.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.
1. JWT verification
In the Auth0 Dashboard:- Pick the API or application whose JWTs Alter should accept. Note the Issuer URL (typically
https://<tenant>.us.auth0.com/) and Audience. - For tenants using a custom Auth0 domain, use the custom-domain URL — that’s the issuer Auth0 stamps into JWTs.
- Click Add Identity Provider.
- Paste the issuer URL, click Discover. Alter recognizes Auth0 and pre-fills the claim mappings.
- Paste the audience.
- For group-based authorization, configure a group claim. Auth0 does not emit groups by default — add an Auth0 Action to set
https://alter.dev/groups(or any namespaced claim) on the access token, then map that claim in the portal before any user signs in. - Click Add Provider.
2. OIDC sign-in (optional)
Required only forvault.authenticate() or the Wallet sign-in flow.
In Auth0:
- Applications → Applications → Create Application → Regular Web Application (not SPA — the callback hits the Alter backend).
- In Settings, paste both redirect URIs from the Alter portal into Allowed Callback URLs (comma-separated).
-
Paste the Wallet logout URL shown in the portal into Allowed Logout URLs.
Use the bare URL with no query parameters. Auth0 exact-matches this field. Example: if the Wallet callback is
https://wallet.alterauth.com/api/auth/callback, the logout URL ishttps://wallet.alterauth.com/sign-in. Alter sends theappIdthrough the OIDCstateparameter — Auth0 echoes it back automatically. - Copy Client ID and Client Secret from the same Settings page.
- Open the User Authentication (OIDC) section on the app’s Identity page.
- Paste Client ID and Client Secret.
- Click Save Credentials.
3. Webhook deprovisioning (optional)
Pushes user-lifecycle events from Auth0 to Alter so deletions revoke grants in real time. In the Alter portal → Identity page → Webhooks section:- Click Enable Webhooks.
- Copy the generated signing secret (shown once) and the webhook endpoint URL.
- Monitoring → Streams → Create Stream → Custom Webhook.
- Payload URL = the Alter webhook endpoint.
- Authorization Token = the signing secret.
- Filter events to:
sdu— user deleted by adminublkdu— user blocked by adminubuu— user unblocked by admin
- Save.
sul (login) and limit_sul (rate limit) — those are not lifecycle events.
Test
- Sign in as a test user through Auth0 → confirm the user appears in the Alter portal.
- Delete the test user in Auth0 → confirm their grants are revoked in Alter.
Common pitfalls
- Issuer URL trailing slash. Match exactly what Auth0 puts in the JWT
issclaim. Auth0 typically includes the trailing/. - Custom domain mismatch. When JWTs use the custom domain but the portal has the tenant URL (or vice versa), verification fails. Check Auth0 → Settings → Custom Domains.
- Missing group claim. Auth0 does not emit groups by default. Without an Action, group-based managed-secret access does not work.
See also
- IDP overview
- JWT identity — runtime pattern.