oidc provider. The named entries exist because each has setup steps worth spelling out, not because the others are unsupported.
Supported Providers
OAuth Redirect URL
When configuring your identity provider, set the redirect/callback URL to:{provider} with: auth0, azure-ad, cognito, github, gitlab, google, okta, onelogin, or oidc. This is the same value you set as NEXTAUTH_PROVIDER.
A
NEXTAUTH_PROVIDER value LangWatch does not recognise, or one whose client credentials are missing, starts the deployment in email mode and logs which provider it could not mount. That keeps a licensed deployment signable-in while you correct the value, rather than pointing the sign-in page at an identity provider that was never wired up.Provider Setup
Email/Password
The default mode (NEXTAUTH_PROVIDER=email) needs no identity provider. Users register with an email and password, and a self-service “Forgot password?” link on the sign-in screen lets them reset a forgotten one.
Reset links are sent through the same email gateway as the rest of LangWatch. Configure one as described in Email so the reset email can be delivered. Without a gateway the screen says the deployment cannot send email and points the person at whoever operates it, rather than offering a form whose link could never arrive. With one configured, submitting an address that has no account returns the same confirmation as one that does, so the form never reveals who holds an account. The reset link expires one hour after it is issued, and a completed reset signs out the account’s other active sessions.
When NEXTAUTH_PROVIDER is set to any SSO provider below and the deployment holds a license, the credential form and the “Forgot password?” link are not shown, and the password reset endpoints are disabled: the identity provider owns credentials from that point on.
Without a license the deployment stays in email mode regardless of what NEXTAUTH_PROVIDER says, and both the credential form and password reset remain available.
Auth0
- Create an application in the Auth0 Dashboard
- Set Allowed Callback URLs to
https://your-domain.com/api/auth/callback/auth0 - Configure in Helm:
AWS Cognito
- In the Cognito console, open your user pool and give it a hosted-UI domain if it does not have one yet (App integration > Domain)
- Create an app client with a client secret, and set its Allowed callback URL to
https://your-domain.com/api/auth/callback/cognito - Under the app client’s login pages, enable the Authorization code grant flow and the
openid,emailandprofilescopes - Configure in Helm:
The issuer is the user pool’s own issuer, not the hosted-UI domain. LangWatch reads the hosted-UI endpoints from the issuer’s discovery document, so the domain never has to be configured separately. You can confirm a pool’s issuer is reachable with:
Azure AD
- Register an application in Azure Portal > App registrations
- Add a Redirect URI:
https://your-domain.com/api/auth/callback/azure-ad - Create a client secret under Certificates & secrets
- Configure in Helm:
The provider is
azure-ad while its credentials sit under providers.azureAd. The first is the value LangWatch selects on, the second is the chart’s key for the AZURE_AD_* variables.GitHub
- Create an OAuth App in GitHub Developer Settings
- Set Authorization callback URL to
https://your-domain.com/api/auth/callback/github - Configure:
GitLab
- Create an application in GitLab > Applications
- Set Redirect URI to
https://your-domain.com/api/auth/callback/gitlab - Select scopes:
read_user,openid,profile,email
- Create credentials in Google Cloud Console
- Add an Authorized redirect URI:
https://your-domain.com/api/auth/callback/google
Okta
- Create an application in Okta Admin Console
- Set Sign-in redirect URI to
https://your-domain.com/api/auth/callback/okta
OneLogin
- In the OneLogin Admin portal, add an OpenID Connect (OIDC) application
- Set the Redirect URI to
https://your-domain.com/api/auth/callback/onelogin - Under SSO, set the application type to Web so it is issued a client secret, and note the Client ID and Client Secret
If OneLogin sits behind another identity provider, for example a Cognito user pool that federates to it, point LangWatch at whichever one it talks to directly and let that one handle the hop. LangWatch only needs one OIDC issuer.
Any other OpenID Connect provider
Any provider that publishes an OpenID Connect discovery document and supports the authorization code flow with PKCE works without being named above: Keycloak, Authentik, Zitadel, Ping, JumpCloud, a self-hosted IdP, whatever you run.- Register an OIDC client with your provider, with the authorization code flow and the
openid,emailandprofilescopes - Set its redirect URI to
https://your-domain.com/api/auth/callback/oidc
Check the issuer is right by fetching its discovery document, which is exactly what LangWatch does at sign-in:JSON back means the issuer is right. LangWatch then reads
authorization_endpoint, token_endpoint and userinfo_endpoint from that document, so all three have to be there, and the client you registered has to allow the authorization code flow with PKCE.Domain-to-Organization Mapping
For on-premises deployments with SSO, map email domains to organizations:@yourcompany.com emails are automatically associated with the correct organization.
Migrating from Email/Password to SSO
- Enable SSO by setting the provider configuration above
- Flag existing email/password users for SSO migration:
- When flagged users next sign in via SSO, their accounts are automatically linked
Users keep their existing data, projects, and permissions after the SSO migration. The migration only changes their authentication method.