Enable SSO with Keycloak (OIDC)
Firezone supports Single Sign-On (SSO) using Keycloak through the generic OIDC provider. This guide will walk you through how to obtain the following config settings required for the integration:
- Config ID: The provider's config ID. (e.g.
keycloak
) - Label: The button label text that shows up on your Firezone login screen.
(e.g.
Keycloak
) - Scope:
OIDC scopes
to obtain from your OIDC provider. This should be set to
openid email profile offline_access
to provide Firezone with the user's email in the returned claims. - Response type: Set to
code
. - Client ID: The client ID of the application.
- Client secret: The client secret of the application.
- Discovery Document URI: The OpenID Connect provider configuration URI which returns a JSON document used to construct subsequent requests to this OIDC provider.
Step 1: Obtain configuration parameters
In the Keycloak Admin Console, make sure the realm you want to use with Firezone is selected.
Create Firezone OAuth client
Create a new Client for Firezone by navigating to Clients > Create Client and configure the following:
- Client type:
OpenID Connect
- Client ID:
firezone
- Name:
Firezone
- Click Next.
- Toggle Client authentication to
On
to generate the client secret. - Click Save.
Click Access settings to jump to that section and configure the valid redirect URI:
- Valid Redirect URIs: This should be your Firezone
EXTERNAL_URL + /auth/oidc/<Config ID>/callback/
(e.g.https://firezone.example.com/auth/oidc/keycloak/callback/
). - Click Add valid redirect URIs
Click the Credentials tab and copy the client secret.
Navigate to the Realm Settings page to get the Discovery Document URI by copying the OpenID Endpoint Configuration link at the bottom of the page.
Step 2: Integrate with Firezone
Navigate to the /settings/security
page in the admin portal, click "Add OpenID
Connect Provider" and enter the details you obtained in the steps above.
Enable or disable the Auto create users option to automatically create an unprivileged user when signing in via this authentication mechanism.
And that's it! The configuration should be updated immediately. You should now
see a Sign in with Keycloak
button on the sign in page.