overcut CLI sign-in offers the same
option. Email and password sign-in stays available, so the bootstrap admin
can always get in.
The Keycloak bundled with your installation brokers the login. You set up
providers with the overcut-admin command in the server container, not in the
Keycloak admin console.
Before you start
- Overcut v1.3.0 or later, installed from the matching deployment kit.
- Shell access to run
kubectl exec(Kubernetes, AWS) ordocker compose exec(Docker Compose) against the installation. - Admin access to your identity provider.
- The workspace users should join, and the email domain or domains they sign
in with. Public mailbox domains such as
gmail.comare refused. - Keycloak must reach your identity provider over HTTPS. Behind an egress
proxy or a TLS-intercepting proxy, configure the kit’s proxy and CA bundle
settings first. On Kubernetes and AWS they apply to Keycloak too. On Docker
Compose, Keycloak has its own proxy and trust store settings in
standalone/.env.
How it works
- A user chooses Continue with SSO and enters their work email.
- Overcut looks up the email domain. If a provider is bound to it, the user goes to your identity provider.
- Your provider authenticates the user and returns their email, first name, and last name.
- An existing member is signed in. A user with an open invitation gets an account and joins the workspace. Anyone else is admitted only when auto-join is on for the provider, otherwise they are asked to request an invitation.
Set up single sign-on
The commands below run theovercut-admin command inside the server
container. Use the form for your deployment (on Kubernetes, replace
overcut with your namespace if you installed into another one):
Turn on single sign-on
global.sso.enabled: true in your values
file (on AWS, helm-values/overcut-values.local.yaml) and run
helm upgrade. On AWS, pass both helm-values/overcut-values.rendered.yaml
and helm-values/overcut-values.local.yaml to the upgrade.Docker Compose: set SSO_ENABLED=true in standalone/.env and run
docker compose up -d.The login page then shows Continue with SSO.Pick an alias
acme-okta). It appears in the URLs below as
<alias>, and <domain> is your installation’s hostname.Create the application in your identity provider
email, firstName, and lastName. Note
the identity provider metadata URL. If your provider asks for
Overcut’s SP metadata, it is served at
https://<domain>/idp/realms/overcut/broker/<alias>/endpoint/descriptor
once the provider exists.Assign the users or groups who should be able to sign in.Write the provider spec
{"saml": {"metadataUrl": "https://..."}}, or
{"saml": {"metadataXml": "<EntityDescriptor ...>"}} when the metadata
has no URL. If your provider sends attributes under other names (for
example the long claim URIs of ADFS or Entra ID), add
"attributes": {"email": "...", "firstName": "...", "lastName": "..."}
at the top level, next to oidc or saml. If the OIDC discovery document
is not at <issuer>/.well-known/openid-configuration, add
"discoveryUrl" inside oidc. To sync teams from your provider’s
groups, also add a groups key; see
Sync teams from IdP groups. Unknown keys
are rejected.The spec is read from standard input (--spec=-) or from a file
(--spec=<path>), so the client secret never appears on a command line. Delete the file when you are done.Create the provider
--auto-join to start with
auto-join on).Check the setup
[ok], [FAIL], or [??] (could not verify). Fix
every [FAIL] and look into any [??] before going on. Then invite one
person from your organization and have them sign in through
Continue with SSO.Roll out to the team
Sync teams from IdP groups
Team sync puts people in Overcut teams based on their groups in your identity provider; see Sync teams from IdP groups for how it works. On a self-hosted installation, you turn on group import in the provider spec. It needs Overcut v1.4.0 or later.Send groups from your identity provider
groups on the
application’s Sign On tab, with a filter for the groups Overcut
should see.Import groups into Overcut
groups key to the provider spec, next to oidc or saml:claim: the OIDC claim or SAML attribute that lists the groups. Defaults togroups.scope(OIDC only): an extra scope to request when your provider sends groups only for that scope. Okta authorization servers needgroups; Microsoft Entra ID needs none.overageClaim(OIDC only): on Microsoft Entra ID, set it to_claim_names.groupsso that a user in too many groups for the token keeps their teams instead of losing them.
sso update; the spec replaces the stored one, so include the client
secret or SAML metadata again:sso create.Check which groups arrive
Turn on sync and link groups to teams
sso update --alias=acme-okta --group-sync=true. Then open each team
under Security → Teams and add its groups under
Identity provider groups.Operate
sso delete removes the binding first, then the provider in Keycloak. If the
second part fails, run sso delete --alias=<alias> --idp-only to finish.
To switch a provider between OIDC and SAML, delete it and create it again;
sso update cannot change the protocol.
Upgrades keep your providers. Each upgrade brings the Keycloak realm up to
date and leaves users, passwords, and identity providers alone.
Troubleshooting
sso doctor reports a failed check
sso doctor reports a failed check
- SSO_LOGIN_ENABLED is true on the server: single sign-on is not turned on. Repeat the first setup step.
- Realm has the “first broker login auto-link” flow or Client
“overcut-web” maps the identity_provider claim (on Kubernetes and
AWS, also Client “overcut-cli” maps the identity_provider claim):
the realm is from an older release and was not brought up to date.
Upgrade to the current kit and check the realm update ran:
kubectl -n overcut logs job/keycloak-config-cliordocker compose logs keycloak-sync. - exists in Keycloak or uses the “first broker login auto-link”
flow: the provider was created or changed by hand. Re-apply it with
sso update --alias=<alias> --spec=- < spec.json.
sso create fails with 403 from Keycloak, or says the realm has no auto-link flow
sso create fails with 403 from Keycloak, or says the realm has no auto-link flow
kubectl -n overcut logs job/keycloak-config-cli or docker compose logs keycloak-sync.sso create fails while importing the metadata
sso create fails while importing the metadata
No single sign-on is configured for this email domain
No single sign-on is configured for this email domain
sso update --alias=<alias> --domains=..., or turn the provider on.User has not been invited to the workspace yet
User has not been invited to the workspace yet
<email> has not been invited to the <provider name> workspace yet.
Ask a workspace admin to invite you.” The provider is in invitation-only
mode and the user has no open invitation. Invite them, or turn on
auto-join.Single sign-on is not enabled for this identity provider
Single sign-on is not enabled for this identity provider
sso update --alias=<alias> --enabled=true or under
Security → Single sign-on.Your identity provider shows an error
Your identity provider shows an error
client_secret_post).Limitations
- No single logout. Signing out of Overcut does not sign you out of your identity provider.
- One workspace per domain. A given email domain can be bound to a single workspace.
- Providers are managed with
overcut-admin. There is no screen for adding a provider; workspace admins can only switch auto-join and the provider on or off.
Related
- Single Sign-On: the same feature on Overcut Cloud, including how membership modes work.
- Privacy and Security: how Overcut protects workspace data and secrets.