SAML SSO quickstart
Configure SAML from IdP metadata (URL, paste, or upload). TokenTimer picks HTTP-Redirect for AuthnRequest when available.
Prerequisites:
- The Enterprise delivery tarball pulled from the registry, which contains the Helm examples and Compose files referenced below. See Registry access.
- A SAML application registered in your identity provider (IdP), with its metadata (URL or XML) at hand.
- The shared prerequisites in the SSO overview.
Choose one configuration method below. Register the exact callback shown for your API origin and provider slug in the IdP before testing sign-in. Keep a verified local administrator while setting up SSO, or provision the license, provider manifest, secrets, and verified bootstrap-admin group before first startup for SSO-only mode.
Helm
- Merge
helm/examples/values-sso-basic-saml.yaml(from the delivery) into your existing deployment values; retain database, URLs, license mounts, and other required settings. - Set
entryPoint,issuer, and your IdP signing cert via the Secret named in the example (keycloak-saml-idp) with keySSO_KEYCLOAK_SAML_CERTexactly as shown. helm upgradethe release using that values file (the example includes bootstrap mount andenvFromwiring).
For encrypted assertions or signed AuthnRequests, see helm/examples/values-sso-full-reference.yaml in the delivery.
SSO encryption keyring: by default the chart auto-creates <release>-enterprise-secrets. For a manual Secret or sso.secretsKeyring, follow Keyring JSON format. Key material lives only in Kubernetes/env, not in Postgres.
Compose
Start at the extracted delivery root, then enter compose/.
cd composecp sso-providers.basic-saml.example.json sso-providers.json- Generate the SSO keyring: see the keyring section of the Compose SSO README (
compose/sso-providers.README.mdin the delivery). - Merge
.env.sso-basic.exampleinto.envand fill theSSO_*secret values (paste IdP cert PEM intoSSO_KEYCLOAK_SAML_CERTfor the bundled example slug). docker compose -f docker-compose.yml -f docker-compose.sso.yml up -d
Manifest shape, env prefix rules, and advanced Compose setup are covered in the Compose SSO README in the delivery.
Dashboard
- System Settings → Manage SSO providers, add SAML provider, paste or fetch metadata XML.
- Copy the SP metadata URL (
/auth/saml/<slug>/metadata) into your IdP. - Copy the ACS callback URL (
/auth/saml/<slug>/callback). - Run Test, then Enable.
Verify
- Confirm
GET /api/auth/featureslists the slug under the chosen protocol withsignInReady: true. - In a new private browser window, start login from TokenTimer and complete the IdP exchange.
- Confirm the expected workspace role and, for the first operator, system-administrator access. A provider Test checks configuration/transport; it does not prove the resulting user grants.
- Keep the existing administrator session until the new login and recovery access are verified.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No provider button on login | License missing feature:saml, provider disabled, or signInReady: false | Fix license (System Settings → License); enable provider and run Test under Manage SSO providers; confirm slug in GET /api/auth/features providers.saml[] |
IdP-initiated SSO
Not supported in v1 (InResponseTo is always required). Use SP-initiated login from the TokenTimer login page.
For SLO, claim mapping, and restricted networks, see the Authentication model and SSO identity provider guides.