Skip to main content

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:
  1. Log in to your identity provider’s admin console
  2. Create a new OAuth 2.0 or OIDC application
  3. Set the redirect URI to: {Ordo_API_URL}/api/auth/oauth2/callback/custom
    • Example: https://api.Ordo.example.com/api/auth/oauth2/callback/custom
  4. Copy the client ID and client secret
  5. 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:
When enabled, users visiting the sign-in page will be immediately redirected to your custom OAuth provider without seeing the Ordo login page. This is ideal for organizations that use a single identity provider for all authentication.

Troubleshooting

”Invalid code verifier” Error

This error typically indicates a PKCE configuration issue. Try setting:
Some OAuth providers don’t support PKCE or have it disabled by default.

Missing User Information

Ensure your OAuth scopes include at least profile and email:
Some providers require openid scope as well:

Redirect URI Mismatch

Verify that your redirect URI in the OAuth provider matches exactly:
For example, if 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:
This will automatically discover the authorization, token, and userinfo endpoints. However, you still need to provide the client ID and secret.

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