Overview
OpenID Connect (OIDC) is the recommended authentication protocol for modern identity providers. It provides standardized user profile information, built-in token validation, and automatic discovery of provider endpoints.Supported providers
OIDC works with any compliant identity provider, including:- Google Workspace
- Microsoft Entra ID (Azure AD)
- Okta
- Auth0
- Keycloak
- GitLab
- GitHub (via OIDC)
Configuration via admin UI
1
Navigate to SSO providers
Go to Admin → SSO Providers in your dashboard
2
Add OIDC provider
Click “Add Provider” and select “OIDC” as the provider type
3
Enter basic information
4
Configure OIDC settings
5
Set up role mapping
Configure default roles and group mappings (optional)
6
Save and test
Save the configuration and test the login flow
Provider-specific guides
Google Workspace
1
Create OAuth2 credentials
- Go to Google Cloud Console
- Select your project or create a new one
- Navigate to APIs & Services → Credentials
- Click “Create Credentials” → “OAuth client ID”
- Select “Web application” as the application type
2
Configure redirect URIs
Add your callback URL:
3
Copy credentials
Save the Client ID and Client secret
4
Configure in admin UI
Microsoft Entra ID (Azure AD)
1
Register application
- Go to Azure Portal
- Navigate to Microsoft Entra ID → App registrations
- Click “New registration”
- Enter a name and select supported account types
2
Configure redirect URI
Add a web redirect URI:
3
Create client secret
- Go to Certificates & secrets
- Click “New client secret”
- Save the secret value (shown only once)
4
Configure in admin UI
Replace
[tenant-id] with your Azure AD tenant ID or use common for multi-tenant applications.Okta
1
Create OIDC application
- Log in to your Okta admin console
- Go to Applications → Applications
- Click “Create App Integration”
- Select “OIDC - OpenID Connect”
- Choose “Web Application”
2
Configure application
3
Save credentials
Copy the Client ID and Client secret
4
Configure in admin UI
Auth0
1
Create application
- Go to Auth0 Dashboard
- Navigate to Applications → Applications
- Click “Create Application”
- Select “Regular Web Applications”
2
Configure callbacks
In the application settings:
3
Get credentials
Find your Domain, Client ID, and Client Secret in the application settings
4
Configure in admin UI
Configuration fields
| Field | Description | Required | Example |
|---|---|---|---|
| Issuer URL | OIDC discovery endpoint | Yes | https://accounts.google.com |
| Client ID | OAuth2 client identifier | Yes | abc123.apps.googleusercontent.com |
| Client secret | OAuth2 client secret | Yes | GOCSPX-... |
| Scopes | Space-separated OAuth2 scopes | No | openid profile email groups |
Common scopes
| Scope | Description |
|---|---|
openid | Required for OIDC authentication |
profile | Access to user’s profile information (name, picture) |
email | Access to user’s email address |
groups | Access to user’s group memberships (provider-dependent) |
offline_access | Request refresh tokens for long-lived sessions |
Redirect URI format
The redirect URI (callback URL) follows this pattern:https://app.example.com/auth/callback/googlehttps://app.example.com/auth/callback/oktahttps://app.example.com/auth/callback/azure
User attribute mapping
OIDC providers return user information in the ID token and userinfo endpoint. Common claims include:| OIDC Claim | Application Field | Description |
|---|---|---|
sub | User ID | Unique identifier for the user |
email | User’s email address | |
name | Full name | User’s display name |
given_name | First name | User’s first name |
family_name | Last name | User’s last name |
picture | Avatar URL | User’s profile picture |
groups | Groups | User’s group memberships |
Advanced configuration
Custom scopes
Request additional scopes for provider-specific claims:Discovery endpoint
OIDC providers expose a discovery document at:Token validation
The application automatically validates:- Token signature using provider’s public keys
- Token expiration (
expclaim) - Token audience (
audclaim matches client ID) - Token issuer (
issclaim matches issuer URL)
Troubleshooting
Invalid redirect URI error
Problem: Identity provider rejects the redirect URI Solution:- Verify the redirect URI exactly matches in both systems
- Check for trailing slashes or protocol mismatches
- Ensure the provider ID in the URL matches your configuration
User info not populated
Problem: User profile fields are empty after login Solution:- Verify you’re requesting the correct scopes (
profile,email) - Check that your identity provider includes claims in the ID token
- Review the userinfo endpoint response in audit logs
Groups not syncing
Problem: User groups from identity provider aren’t mapped to roles Solution:- Add
groupsscope to your configuration - Verify your identity provider includes groups in the token
- Check your group-to-role mapping configuration
- Some providers require additional configuration to include groups
Token expired errors
Problem: Users are logged out frequently Solution:- Check token expiration times in your identity provider
- Request
offline_accessscope for refresh tokens - Configure session timeout settings in your application
Security best practices
Use HTTPS only
Use HTTPS only
Always use HTTPS for your redirect URIs. Most providers reject HTTP callbacks in production.
Rotate client secrets
Rotate client secrets
Regularly rotate your client secrets and update them in the admin UI.
Limit scopes
Limit scopes
Only request the scopes you need. Avoid requesting excessive permissions.
Validate issuer
Validate issuer
Ensure the issuer URL matches your identity provider to prevent token substitution attacks.
Monitor audit logs
Monitor audit logs
Regularly review SSO audit logs for suspicious authentication attempts.