Overview
Frontier supports OpenID Connect (OIDC) authentication with multiple identity providers. This guide covers configuring the most popular providers:- Google Workspace and Gmail
- GitHub
- Azure Active Directory / Microsoft Entra ID
OIDC provides secure, standards-based authentication and allows users to sign in with their existing accounts from these providers.
Prerequisites
Before configuring OIDC, ensure you have:- A running Frontier server (see Getting Started)
- Admin access to your identity provider
- RSA keys generated for JWT signing
- A publicly accessible callback URL (or localhost for development)
Understanding OIDC Flow
Here’s how OIDC authentication works with Frontier:Google OIDC Configuration
Create a Google Cloud Project
- Go to Google Cloud Console
- Create a new project or select an existing one
- Note your project ID
Enable Google Identity Platform
- In the Google Cloud Console, go to APIs & Services > Library
- Search for “Google Identity Platform API” or “Google+ API”
- Click Enable
Create OAuth 2.0 Credentials
- Go to APIs & Services > Credentials
- Click Create Credentials > OAuth client ID
- Choose Web application as application type
- Configure the OAuth consent screen if prompted:
- Set app name (e.g., “Acme Corp Portal”)
- Add your domain
- Add scopes:
email,profile,openid
Save your credentials
After creating the OAuth client, you’ll see:
- Client ID: Looks like
123456789-abc.apps.googleusercontent.com - Client Secret: A random string
GitHub OIDC Configuration
Register a new OAuth App
- Go to GitHub Developer Settings
- Click New OAuth App
- Fill in the application details:
- Application name: Your app name
- Homepage URL:
http://localhost:8000(dev) or your domain - Authorization callback URL:
http://localhost:8000/v1beta1/auth/callback
Generate a client secret
- After creating the app, click Generate a new client secret
- Copy the secret immediately (you won’t see it again)
- Also copy the Client ID shown on the page
Azure AD / Microsoft Entra ID Configuration
Register an application in Azure AD
- Go to Azure Portal
- Navigate to Azure Active Directory (or Microsoft Entra ID)
- Go to App registrations > New registration
- Fill in:
- Name: Your application name
- Supported account types: Choose based on your needs
- Single tenant (your org only)
- Multi-tenant (any Azure AD org)
- Multi-tenant + personal Microsoft accounts
Configure redirect URI
- In Authentication, click Add a platform
- Choose Web
- Add redirect URI:
http://localhost:8000/v1beta1/auth/callback - Under Implicit grant and hybrid flows, select:
- ✓ ID tokens
Create a client secret
- Go to Certificates & secrets
- Click New client secret
- Add a description and set expiration (max 24 months)
- Copy the secret Value immediately
Get your tenant and application IDs
From the Overview page, copy:
- Application (client) ID:
12345678-1234-1234-1234-123456789abc - Directory (tenant) ID:
87654321-4321-4321-4321-987654321abc
Configure API permissions (optional)
- Go to API permissions
- Click Add a permission > Microsoft Graph
- Add delegated permissions:
User.Read(basic profile)emailopenidprofile
- Click Grant admin consent if required by your organization
Multiple Providers Configuration
You can enable multiple OIDC providers simultaneously:config.yaml
/v1beta1/auth/google/v1beta1/auth/github/v1beta1/auth/azure
Custom OIDC Provider
Frontier supports any standard OIDC-compliant provider:What is the issuer URL?
What is the issuer URL?
The issuer URL is the base URL of your OIDC provider. Frontier will automatically discover:
- Authorization endpoint
- Token endpoint
- User info endpoint
- JWKS (public keys) endpoint
/.well-known/openid-configuration to the issuer URL.Testing Your OIDC Configuration
Session Management
After successful OIDC authentication, Frontier:- Creates or updates the user in the database
- Sets a secure session cookie (if session is configured)
- Generates a JWT token (if token is configured)
- Redirects to your application with the session
Advanced Configuration
Custom Claims Mapping
Extract additional claims from the OIDC provider:Organization Domain Verification
Restrict sign-ups to verified email domains:@acme.com emails automatically join the organization on first login.
Multiple Callback URLs
Support different environments:?callback_url parameter.
Troubleshooting
Redirect URI mismatch error
Redirect URI mismatch error
Error:
redirect_uri_mismatch from Google/GitHub/AzureSolution:- Check that the callback URL in your provider settings exactly matches the URL in Frontier config
- Don’t forget
/v1beta1/auth/callbackpath - Ensure
http://vshttps://matches - Check for trailing slashes
Invalid client error
Invalid client error
Error:
invalid_client or unauthorized_clientSolution:- Verify the client ID is correct
- Check that the client secret hasn’t expired (Azure AD)
- Ensure the OAuth app is enabled
- For Azure, verify you’re using the Application ID, not Object ID
User created but can't access resources
User created but can't access resources
Issue: User logs in successfully but has no permissionsSolution:
Users created via OIDC have no roles by default. You must:
- Assign them to organizations
- Give them roles in those organizations
- Or configure domain auto-join with default roles
Session cookie not being set
Session cookie not being set
Token expired errors
Token expired errors
Issue: Authentication works but expires immediatelySolution:
Increase the validity period:
Security Best Practices
Next Steps
Organization Domains
Configure domain verification and auto-join
Session Management
Deep dive into session configuration
User Management
Learn about user lifecycle and metadata
Admin Portal
Manage authentication settings via UI