Search…
⌃K
Links

Keycloak

Use the following instructions to set up Keycloak as your SSO provider for Tonic.

Keycloak configuration

Within Keycloak, select the realm to use for your Tonic client. Under Clients, click Create client.
Create client option for Keycloak
On the Create client page, under General Settings:
  1. 1.
    From the Client type dropdown list, select OpenID Connect.
  2. 2.
    Enter a Client ID and Name.
  3. 3.
    Click Next.
Create client fields for a Keycloak client
On the Capability Config tab, click Save. The details page for the new client displays.
On the Settings tab, under Access settings, enter your Tonic URL information.
Access settings for a Keycloak client
Click Client scopes. Each client has a dedicated scope named <client-id>-dedicated. To configure the scope, click the scope name.
Client scopes tab for a Keycloak client
On the Mappers tab, to add a property mapper to the scope, click Configure a new mapper.
Options to add a property mapper to a Keycloak client scope
In the list of mapper types, click Group Membership.
Available mapper types for a Keycloak client scope property mapper
Under Add mapper, set both Name and Token Claim Name to groups.
Configuration options for a Keycloak property mapper
The Full group path toggle affects how child groups appear in Tonic:
  • When on, child groups display as parent group/child group.
  • When off, child groups display as child group.
To save the new group membership mapper, click Save.

Tonic configuration

In the tonic_web_server container, set the following environment variables:
  • TONIC_SSO_PROVIDER: Keycloak
  • TONIC_SSO_DOMAIN: https://my-keycloak-instance
  • TONIC_SSO_CLIENT_ID: <Keycloak client ID>
  • TONIC_SSO_REALM_ID: <Keycloak realm ID>
  • TONIC_SSO_GROUP_FILTER_REGEX: <Group regular expression> The regular expression matches the groups that Tonic needs to be aware of. You can change this later. For example, the expression .*Tonic.* allows all groups that contain the word "Tonic".
For more information on how to set environment variables, see Setting environment variables.
Last modified 2mo ago