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 WorkOS Dashboard:- Issuer URL is
https://api.workos.com/user_management/<workos-client-id>. - Audience is the WorkOS Client ID (
client_<...>). - JWKS is at
<issuer>/.well-known/jwks.json.
- Click Add Identity Provider.
- Paste the issuer URL, click Discover. Alter recognizes WorkOS and pre-fills the claim mappings.
- Paste the audience.
- For organization-based authorization, the group claim is
org_id(single org per JWT) — Alter pre-fills this. Confirm before any user signs in. - Click Add Provider.
2. OIDC sign-in (optional)
Required only whenvault.authenticate() or the Wallet sign-in flow is used.
In the WorkOS Dashboard:
- Authentication → Configuration → Redirect URIs → add both redirect URIs from the Alter portal.
- Copy Client ID and API Key from the dashboard.
- Open the User Authentication (OIDC) section.
- Paste Client ID as the OIDC client ID and API Key as the secret.
- Save.
3. Webhook deprovisioning (optional)
In the Alter portal → Identity page → Webhooks section:- Click Enable Webhooks.
- Copy the generated signing secret and the webhook endpoint URL.
- Webhooks → Endpoints → Add Endpoint.
- Endpoint URL = the Alter webhook endpoint.
- Subscribe to:
user.deleteduser.updatedorganization_membership.deleted
- WorkOS displays a Signing Secret for the endpoint — paste it into the Alter portal and Save.
Test
- Sign in as a test user through WorkOS → confirm the user appears in Alter.
- Delete the test user → confirm their grants are revoked.
Common pitfalls
- Two-step issuer URL. WorkOS issuer URLs include the Client ID — a generic
https://api.workos.comvalue does not work. - AuthKit vs SSO. This guide assumes WorkOS AuthKit (User Management). For the older WorkOS SSO product, the issuer is
https://api.workos.com/sso/<connection-id>instead.
See also
- IDP overview
- JWT identity — runtime pattern.