Overview
Ordo supports custom OAuth 2.0 and OpenID Connect (OIDC) providers, allowing you to integrate with any standards-compliant identity provider such as Keycloak, Auth0, Okta, Azure AD, or self-hosted solutions like Pocket ID.Configuration
To configure a custom OAuth/OIDC provider, you need to set the following environment variables in your.env file:
Required Variables
Optional Variables
Setup Steps
1. Configure Your OAuth Provider
First, create an OAuth 2.0 or OIDC application in your identity provider:- Log in to your identity provider’s admin console
- Create a new OAuth 2.0 or OIDC application
- Set the redirect URI to:
{Ordo_API_URL}/api/auth/oauth2/callback/custom- Example:
https://api.Ordo.example.com/api/auth/oauth2/callback/custom
- Example:
- Copy the client ID and client secret
- Note the authorization, token, and userinfo endpoint URLs
2. Set Environment Variables
Add the following to your.env file:
3. Restart Services
After updating the environment variables, restart your Ordo services:Example Configurations
Pocket ID
Keycloak
Auth0
Usage
Once configured, users will see a “Continue with OIDC” button on the sign-in page. The system will automatically remember the last used login method for each user.Auto-Login (Skip the Login Page)
If you want to bypass the login page entirely and automatically redirect users to your identity provider, set:Troubleshooting
”Invalid code verifier” Error
This error typically indicates a PKCE configuration issue. Try setting:Missing User Information
Ensure your OAuth scopes include at leastprofile and email:
openid scope as well:
Redirect URI Mismatch
Verify that your redirect URI in the OAuth provider matches exactly:Ordo_API_URL=https://api.Ordo.example.com, the redirect URI should be:
Discovery URL
If your provider supports OpenID Connect, you can use the discovery URL to automatically configure most settings:Security Notes
- Always use HTTPS in production
- Keep your client secret secure and never commit it to version control
- Enable PKCE when possible for enhanced security
- Use the most restrictive scopes necessary for your use case
