Last updated
Last updated
Use these instructions to set up Google as your SSO provider for Tonic Structural.
To configure Google SSO:
Create an OAuth 2.0 Client ID - Requires GCP project permissions to create credentials.
Create and configure a service account to read user groups - In addition to the above, requires the Google workspace administrator.
The OAuth client ID is sufficient to enable logging in with your Google account, but no groups are parsed. If the service account is misconfigured, the login succeeds without the groups being parsed and a warning is logged to the server with more details. For the provided links, it is assumed that the user is logged into their administrative account and using the same project.
Click Create credentials, located near the top.
Select OAuth client ID.
Select Web application as the application type.
Choose a name.
Under Authorized redirect URIs, add the URL of the Structural server with the endpoint /sso/callback.
For example, a local Structural server at http://localhost:3000 would need http://localhost:3000/sso/callback to be set as the redirect URI
Also note that internal URLs might not work:
Note the client ID and client secret. You will need to provide them to Structural.
Configure the following environment settings in the Structural web server container:
TONIC_SSO_CLIENT_ID
: <client id of oauth credentials>
TONIC_SSO_CLIENT_SECRET
: <client secret of oauth credentials>
TONIC_SSO_PROVIDER
: google
To set up the service account:
For official documentation, see https://cloud.google.com/iam/docs/creating-managing-service-accounts and https://cloud.google.com/iam/docs/creating-managing-service-account-keys.
Click Create service account, located near the top
Skip all the subsequent optional steps.
After you create the service account, select it and go into the Keys tab.
Select Add Key -> Create new key and select JSON as the key type. The browser automatically downloads a json file.
The json file must be base64 encoded to set it as a variable in your Docker Compose file. An example command to do this is:
cat /path/to/json/file | base64 -w 0
The long output of this command is set as the value of TONIC_SSO_SERVICE_ACCOUNT_JSON_BASE64
in the Docker Compose file
Take note of the service account email. You will need this later.
Click Enable if it is not yet enabled.
Go to https://admin.google.com and select Admin Roles.
Select Groups Reader from the list of predefined roles.
Click Assign Roles -> Assign service accounts.
Copy the service account email into the box, then click Add.
To save these changes, click Assign Role.
In the Structural web server container, set the following Structural environment settings:
TONIC_SSO_SERVICE_ACCOUNT_JSON_BASE64
: <base64 encoded json key>
TONIC_SSO_DOMAIN
: <domain name> - The domain name is the workspace domain. For example, for support@tonic.ai, the domain is tonic.ai
.
TONIC_SSO_GROUP_FILTER_REGEX
: Identifies the allowed SSO groups for Structural. For details, go to Synchronizing SSO groups with Tonic Structural.
For Kubernetes, TONIC_SSO_SERVICE_ACCOUNT_JSON_BASE64
can be provided through the tonic-sso-google-account-service-json-secret
secret