SSO with OpenID Connect
Firezone supports authenticating users with a universal OIDC connector that
works with any authentication service supporting the
OIDC standard and authorization_code
grant type.
You'll need to create an OAuth application with your identity provider. OIDC documentation for popular providers:
Setting up the OIDC provider
To set up the OIDC provider, go to Settings → Authentication → Add Provider
and select OIDC.
In general, you'll provide the following when setting up the provider:
- Scopes: These control what information Firezone can access from
your identity provider. At a minimum, you'll need to provide the
openid,profile, andemailscopes. These are configured in your identity provider's OAuth app settings. - Redirect URI: Firezone uses a single callback URL for all OIDC authentication:
https://app.firezone.dev/auth/oidc/callback
- Client ID and secret: These are used to authenticate Firezone with your identity provider. You'll get these values when you create the OAuth app in your identity provider.
- Discovery document URI: This is the URL to your identity provider's OIDC discovery document. This is used to automatically configure the connector with your identity provider's cryptographic and endpoint settings.
- Email verification: How Firezone confirms a user owns the email address returned by your provider before linking their OIDC identity.
Scopes
Firezone requires the following OAuth scopes in order to authenticate users via the OIDC provider:
email: Provides theemailclaim used for identifying users by email on the first sign-inopenid: Provides theissandsubclaims used for identifying users on subsequent sign-insprofile: Provides thenameand other profile claims used for displaying user information in the admin portal
Additional scopes are allowed but unused by Firezone.
Redirect URIs
Firezone uses a common redirect URI for all OIDC authentication:
https://app.firezone.dev/auth/oidc/callback
Make sure to add this URI to the list of allowed redirect URIs in your identity provider's OAuth app settings.
Client ID and secret
Provide the client ID and secret from the OAuth app you created in your identity provider.
Discovery document URI
The discovery document URI is the URL to your identity provider's OIDC discovery document. This document contains all the information needed to configure the connector with your identity provider's settings. You can usually find this URL in your identity provider's OAuth app settings or in their OIDC documentation.
It typically looks something like this (Okta example given):
https://your-tenant.okta.com/.well-known/openid-configuration
PKCE
Firezone's OIDC authentication provider requires your identity provider to support PKCE (Proof Key for Code Exchange). PKCE is a security feature that helps prevent certain types of attacks and is supported by nearly every OIDC identity provider today.
If your provider does not support PKCE, authentication will fail with an error message similar to this:
You may not authenticate to this account.
If you believe this to be in error, please contact support for assistance.
Email verification
Because the universal OIDC connector works with any provider, Firezone lets you choose how it confirms that a user owns the email address the provider returns before linking that OIDC identity to a Firezone user. Firezone matches an OIDC identity to a user by email on the first sign-in (see Scopes), so this setting controls how much it trusts that email.
Choose one of three methods when configuring the provider:
- Claim (default) — Trust the email address only when the provider returns
email_verified=truein the ID token or userinfo response. If the claim is missing orfalse, sign-in fails. Use this whenever your provider reliably setsemail_verified. - Proof — Before linking a new OIDC identity, Firezone emails a one-time
passcode to the claimed address, and the user must enter it to complete the
link. This challenge happens only the first time an identity is linked;
subsequent sign-ins go straight through. Use this when your provider can't
reliably send
email_verified=true. - None — Don't confirm email ownership at all; Firezone trusts the email claim as-is. Not recommended — a provider that lets users set an unverified email could allow one user to sign in as another.
Prefer Claim or Proof unless you fully trust your provider's email handling. None disables a key protection against account takeover via spoofed email claims.
Provisioning users and groups
Users must be created in Firezone before they can sign in with the OIDC provider. You can create users in the admin portal or programmatically via the REST API.
Similarly, groups used for access control must also be created in Firezone before they can be used with users associated with the OIDC provider. You can create groups manually in the admin portal or use the REST API to create groups programmatically.
Need help? See all support options.