Adaptive Engine authenticates users through OpenID Connect (OIDC). You configure one or more identity providers, and users log in through your organization’s existing identity system.Documentation Index
Fetch the complete documentation index at: https://docs.adaptive-ml.com/llms.txt
Use this file to discover all available pages before exploring further.
How it works
When a user clicks “Log in” on the Adaptive Engine UI:- The browser redirects to your identity provider (Google, Azure Entra ID, Okta, etc.)
- The user authenticates with their organization credentials
- The provider redirects back to Adaptive Engine with an authorization code
- Adaptive Engine exchanges the code for an ID token, extracts the user’s email and name, and creates a session
Configuration
Configure OIDC providers in your Helmvalues.yaml under secrets.auth.oidc.providers. Each provider is an entry in the list:
Provider fields
| Field | Required | Default | Description |
|---|---|---|---|
name | Yes | — | Display name on the login page |
key | Yes | — | URL-safe identifier (e.g., google, azure-ad). Must be unique across providers |
issuer_url | Yes | — | OIDC discovery endpoint. Adaptive Engine fetches /.well-known/openid-configuration from this URL |
client_id | Yes | — | OAuth2 client ID from your identity provider |
client_secret | No | — | OAuth2 client secret. Required by most providers, optional for public clients |
scopes | Yes | — | OIDC scopes to request. Always include email and profile |
pkce | No | true | Enable Proof Key for Code Exchange. Keep enabled unless your provider does not support it |
allow_sign_up | No | false | Create new users on first login. When false, users must be pre-created via the SDK |
allowed_domains | No | [] | Restrict login to specific email domains. Empty means all domains are allowed |
require_email_verified | No | true | Reject users whose email is not verified by the provider |
Redirect URI
Set your identity provider’s redirect URI to:{key} with the provider key from your configuration (e.g., google, okta).
The
root_url in your control plane configuration must match the public URL users access. OIDC redirects fail if this is misconfigured.User provisioning
When a user logs in through OIDC for the first time, Adaptive Engine either finds an existing account or creates a new one (ifallow_sign_up: true).
New users are assigned to the team and role defined in your auth configuration:
| Field | Description |
|---|---|
default_team | Team assigned to new users on first login |
default_role | Role assigned within that team (see Permissions) |
admins | Email addresses promoted to admin on first login. Set these before those users log in for the first time |
Security features
PKCE
Proof Key for Code Exchange prevents authorization code interception attacks. Enabled by default and recommended for all providers. Only disable it if your provider explicitly does not support PKCE.Email domain restriction
Limit which email domains can log in per provider:Email verification
By default, Adaptive Engine requires the OIDC provider to confirm the user’s email is verified (email_verified claim). This prevents account hijacking through unverified email addresses.
Set require_email_verified: false only for development environments or providers that do not include the email_verified claim.
Provider examples
Google Workspace
- Go to the Google Cloud Console
- Create an OAuth 2.0 client ID (application type: Web application)
- Add
https://YOUR_DEPLOYMENT_URL/api/v1/auth/login/google/callbackas an authorized redirect URI - Copy the client ID and secret
Microsoft Entra ID (Azure AD)
- In the Azure Portal, go to Entra ID > App registrations > New registration
- Set the redirect URI to
https://YOUR_DEPLOYMENT_URL/api/v1/auth/login/azure/callback(type: Web) - Under Certificates & secrets, create a new client secret
- Note the Application (client) ID and Directory (tenant) ID
YOUR_TENANT_ID with your Azure directory tenant ID. Use common instead of a tenant ID to allow any Microsoft account.
Okta
- In the Okta Admin Console, go to Applications > Create App Integration
- Select OIDC - OpenID Connect and Web Application
- Set the sign-in redirect URI to
https://YOUR_DEPLOYMENT_URL/api/v1/auth/login/okta/callback - Copy the client ID and secret from the application settings
https://your-org.okta.com/oauth2/YOUR_AUTH_SERVER_ID.
Keycloak
- In the Keycloak Admin Console, create a new client in your realm
- Set Client authentication to On (confidential client)
- Add
https://YOUR_DEPLOYMENT_URL/api/v1/auth/login/keycloak/callbackas a valid redirect URI - Copy the client ID and secret from the Credentials tab
Amazon Cognito
- In the AWS Console, create or select a User Pool
- Under App integration, create an app client with a client secret
- Add
https://YOUR_DEPLOYMENT_URL/api/v1/auth/login/cognito/callbackas a callback URL - Note the User Pool ID and region
REGION with your AWS region (e.g., us-east-1) and POOL_ID with your User Pool ID (e.g., us-east-1_aBcDeFgHi).

