Hivelock Get early access

For workspace owners and IT teams

Single sign-on

People can sign in to a workspace through your own identity provider, using OpenID Connect. It is always available when self-hosted, and part of the Business plan in hosted mode.

Works with your identity provider.

Connect any OpenID Connect provider directly. If your company uses SAML, connect it through Keycloak in a few steps.

What you need

Steps in Hivelock

  1. Open Settings, then Single sign-on.
  2. Enter the issuer address, client ID, client secret and email domain, then save. Hivelock reads the provider's published settings and shows a redirect address.
  3. Add that redirect address to the client in your provider.
  4. Add the DNS TXT record shown, then choose Check the record. DNS can take a while.
  5. Sign in once with SSO in a private window, before you change anything else.
  6. Choose who may join. By default, people need an invitation. Turning on Let new people join on first sign-in lets anyone your provider vouches for join as a viewer.
  7. If you want, turn on Require single sign-on.

The secret is encrypted when saved and never shown again. To use a different provider or domain, remove SSO and set it up again. Removing it signs out everyone who came through it.

Keycloak

  1. Create a realm, or use your own. The issuer is https://your-host/realms/your-realm.
  2. Under Clients, create a client of type OpenID Connect.
  3. Turn on Client authentication, and leave only Standard flow on.
  4. Set Valid redirect URIs to the address Hivelock showed. Do not use a wildcard.
  5. On Advanced, set Proof Key for Code Exchange Code Challenge Method to S256.
  6. Copy the secret from Credentials.
  7. Check that each user has Email verified on. For users from LDAP, turn on Trust Email on the federation, or Hivelock will refuse them.

Authentik

  1. Under Applications, then Providers, create an OAuth2/OpenID Provider.
  2. Set Client type to Confidential, and use an explicit-consent or implicit-consent authorization flow.
  3. Add the address Hivelock showed as a strict redirect URI.
  4. Keep the openid, email and profile scopes. Authentik's default email mapping sends email_verified: false, and Hivelock refuses that. If your addresses are managed so that people cannot change them unchecked, create a custom scope mapping with the scope name email that returns True. Use it in place of the default one on this provider.
  5. Create an Application using this provider.
  6. The issuer is https://your-host/application/o/your-application-slug/, with the slash at the end. Copy it exactly from the provider's page.

Other providers

Anything that publishes /.well-known/openid-configuration and signs ID tokens should work. The issuer in that document must equal the address you enter, and email_verified must be the value true, not the text "true".

On-premise providers

A provider on a private network is refused, unless the server's operator adds its host to ALLOWED_PRIVATE_HOSTS. Plain http is allowed only for hosts on that list. This cannot be used in hosted mode, so a hosted workspace needs a provider reachable from the internet.

SAML through Keycloak

  1. In Keycloak, add your SAML provider under Identity providers.
  2. Connect Hivelock to Keycloak with OpenID Connect, as above.

Keycloak connects to your SAML provider, and Hivelock connects to Keycloak with OpenID Connect. Your people sign in with the accounts they already use.

Rules Hivelock enforces

When SSO is required

Password sessions cannot reach the workspace, including through the people screens.

If your provider is down, an owner signed in with password and two-step verification can still get in. They give a reason of at least 10 characters. Access lasts one hour for that one session, and goes in the audit log as sso.break_glass_used.

In hosted mode, if the plan no longer includes SSO, the requirement stops applying, so nobody is locked out.

Audit log

These events are recorded: sso.configured, sso.changed, sso.domain_verified, sso.removed, sso.signed_in, sso.sign_in_refused and sso.break_glass_used.

What the sign-in page reveals

Someone who types an address sees whether it goes to an identity provider, and that provider's address. This cannot be avoided, because the browser has to go there. Hivelock shows no workspace or company name, gives the same answer for an unknown domain as for an unproved one, and limits how fast anyone can ask.

The DNS record is checked once, when the domain is proved, so it can be removed afterwards. If you sell a domain, remove SSO first.

Checked against the code on 6 November 2026.