Setup
1
Register a client at your identity provider
Create a confidential OIDC client (an “application” or “web app” in most providers) with the authorization code flow enabled. Register this redirect URI:Rootprint requests the
openid, profile, and email scopes. Copy the Client ID and Client Secret.2
Enter the issuer and credentials in Rootprint
In Rootprint, go to Settings → Authentication, then click Configure on the OpenID Connect row. Enter:
- Issuer URL: the issuer as your provider publishes it, for example
https://auth.example.com/realms/main. Rootprint appends/.well-known/openid-configurationitself. - Client ID and Client Secret: from the client you registered.
3
Save the configuration
Click Save. Rootprint fetches and validates the discovery document. If it rejects the issuer, it saves nothing and shows why. On success, a Continue with SSO button appears on the sign-in page.
Configure with environment variables
To keep the provider in your deployment config instead of the database, set all three variables and restart Rootprint:https:// or http:// on a private network. Register the same redirect URI as in Setup.
While the variables are set, Settings → Authentication shows the provider read-only. To change or remove it, update the variables and restart.
Issuer requirements
Rootprint rejects the issuer and saves nothing unless:- The issuer URL and the discovery endpoints use
https://. Plainhttp://works only on a private network: loopback, private IP ranges, single-label hostnames such asdex, and names ending in.localor.internal. Anhttps://issuer cannot name anhttp://endpoint. - The discovery document is reachable JSON with
authorization_endpoint,token_endpoint, andjwks_uri, and itsissuerfield matches the URL you entered (a trailing slash is ignored). - If the document lists
code_challenge_methods_supported, it includesS256. If it liststoken_endpoint_auth_methods_supported, it includesclient_secret_basicorclient_secret_post.
Changing the issuer or client ID
Changing the Issuer URL or Client ID, in the form or throughOIDC_ISSUER_URL and OIDC_CLIENT_ID, changes the identity behind every linked account. Rootprint unlinks every OpenID Connect account and signs those users out. They re-link by email on their next sign-in, or an admin can reset their password. Rotating only the client secret unlinks nobody.
Issuer unreachable at boot
If discovery fails while Rootprint starts, the Continue with SSO button stays hidden until a retry succeeds.OIDC_RETRY_MS and OIDC_DISCOVERY_TIMEOUT_MS set the retry interval and the fetch timeout. See Environment variables.
