Jednotné přihlášení (Generic OIDC / SAML SSO)
LockMyCal podporuje standardizovaný protokol OpenID Connect (OIDC), což umožňuje bezproblémové napojení na libovolného podnikového poskytovatele identity (IdP), jako jsou:
- Keycloak (Self-hosted)
- Authentik (Self-hosted)
- Authelia (Self-hosted)
- Okta / Auth0
- GitLab / JumpCloud / OneLogin
Jak OIDC v LockMyCal funguje
sequenceDiagram
participant U as Uživatel
participant L as LockMyCal
participant I as Váš Identity Provider (Keycloak/Authentik)
U->>L: Kliknutí na "Firemní přihlášení (SSO)"
L->>I: Přesměrování na autorizační URL s OIDC scopes (openid profile email)
U->>I: Zadání firemních údajů + MFA
I->>L: Zpětné volání s autorizačním kódem (/auth/oauth/callback)
L->>I: Výměna kódu za ID Token / UserInfo
I-->>L: Uživatelský profil (email, jméno, unikátní sub)
L->>U: Přihlášení do LockMyCal dashboardu
1. Zaregistrování klienta ve vašem IdP
Ve vašem identity provideru vytvořte nového klienta (Client / Application) typu OpenID Connect / Confidential:
- Client ID:
lockmycal - Client Authentication: Zapnuto (Client Secret)
- Valid Redirect URI:
https://rezervace.vasedomena.cz/auth/oauth/callback - Scopes:
openid,profile,email
2. Konfigurace proměnných v LockMyCal
Nastavte ve vašem .env souboru:
# Povolení obecného OAuth/OIDC modulu
ENABLE_OAUTH_AUTH=true
# Klíče klienta
OAUTH_CLIENT_ID=lockmycal
OAUTH_CLIENT_SECRET=vas_vygenerovany_tajny_klic
# Endpointy vašeho poskytovatele (musí být HTTPS; najdete je v .well-known/openid-configuration
# dokumentu vašeho IdP — LockMyCal jej ale sám nenačítá, endpointy je nutné zadat ručně)
OAUTH_AUTHORIZE_URL=https://sso.vasedomena.cz/realms/master/protocol/openid-connect/auth
OAUTH_TOKEN_URL=https://sso.vasedomena.cz/realms/master/protocol/openid-connect/token
OAUTH_USERINFO_URL=https://sso.vasedomena.cz/realms/master/protocol/openid-connect/userinfo
# Volitelné: rozsah oprávnění (výchozí "openid email profile")
OAUTH_SCOPE="openid email profile"
# Volitelné: základní URL, jen pokud jsou endpointy výše zadané relativně (např. /token)
# OAUTH_PROVIDER_URL=https://sso.vasedomena.cz
# Volitelné: jak důvěřovat claimu email_verified (trust_absent / require / ignore)
# Někteří poskytovatelé (Authentik, Entra ID, část Keycloak nastavení) ho neposílají.
# OAUTH_EMAIL_VERIFIED_CLAIM=trust_absent
# Volitelné: přijmout "id"/"user_id" místo "sub" (jen pro ne-OIDC poskytovatele)
# OAUTH_ALLOW_ID_FALLBACK=false
Tip
S PASSWORD_AUTH_ENABLED=false zůstane SSO jediným způsobem přihlášení – před vypnutím hesel ověřte, že přihlášení přes SSO funguje.
Note
LockMyCal nemá automatické OIDC discovery — adresu autorizačního, token a userinfo endpointu je vždy nutné zadat ručně, i když je poskytovatel nabízí přes standardní .well-known/openid-configuration dokument.
3. Cloudron
Pokud LockMyCal běží na Cloudronu s propojeným uživatelským adresářem, jednotné přihlášení se nastaví samo: aplikace převezme přihlašovací údaje a endpointy z proměnných CLOUDRON_OIDC_*, pokud nejsou zadané OAUTH_*. Tlačítko pro přihlášení se jmenuje podle názvu poskytovatele identity, který jste zadali v Cloudronu; mimo Cloudron se jmenuje „SSO“.