Skip to content

SSO / OIDC

dockmesh supports OpenID Connect (OIDC) as its single sign-on protocol — covering essentially every modern identity provider. SSO is free, not a paid feature.

Settings → Authentication → OIDC → Add provider

FieldExample
Display nameAzure AD
Issuer URLhttps://login.microsoftonline.com/<tenant-id>/v2.0
Client IDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Client secret•••••••
Scopesopenid profile email groups
Redirect URIhttps://dockmesh.example.com/auth/oidc/callback (auto-filled)

Click Test to run the discovery request against the issuer URL. dockmesh validates the well-known/openid-configuration endpoint before letting you save.

ProviderIssuer URL formatGroup claim
Azure AD / Entra IDhttps://login.microsoftonline.com/<tenant>/v2.0groups
Google Workspacehttps://accounts.google.com(emit via hosted-domain claim)
Oktahttps://<org>.okta.comgroups
Keycloakhttps://kc.example.com/realms/<realm>groups or custom mapper
Authentikhttps://authentik.example.com/application/o/<slug>/groups
GitHub (via dex)https://dex.example.comgroups

If your provider speaks OIDC and exposes a discovery document, it will work.

Settings → Authentication → Group mappings maps an incoming claim value to a dockmesh role:

Group claimdockmesh roleScope
sre-teamAdminall hosts
dev-frontendOperatortag=team-frontend
contractorsViewerall hosts

On every login, the claim is re-evaluated — remove a user from an AD group and their permissions are revoked the next time they log in.

On a fresh install, the first user to log in via any configured provider is automatically promoted to Admin (regardless of group mappings) to avoid locking yourself out. You can change this in Settings → Authentication → Bootstrap.

OIDC and local username+password can coexist. Under Settings → Authentication → Local accounts you can disable local login entirely after SSO is set up, or keep a break-glass admin account for IdP outages.

  • RBAC & Roles — define the roles that group mappings reference
  • Two-Factor Auth — still applies to local accounts even when SSO is enabled