Sicherheit
Dieser Inhalt ist für v1.0. Wechseln Sie zur neuesten Version, um die aktuelle Dokumentation zu sehen.
| Variable | Standard | Beschreibung |
|---|---|---|
SESSION_SECRET |
— | Geheimnis zum Signieren der Session-Cookies und der Schicht-Kalenderlinks — eine Änderung macht alle Kalenderlinks ungültig (Mitarbeitende erneuern ihre). Mind. 32 Zeichen. Muss geändert werden. Erzeugen: openssl rand -hex 32 |
CSRF_KEY |
— | Geheimnis zum Signieren der CSRF-Token. Mind. 32 Zeichen. Muss geändert werden. Erzeugen: openssl rand -hex 32 |
SESSION_SECURE_COOKIE |
true im Produktivbetrieb | Standardmäßig true, wenn APP_ENV production ist (erfordert HTTPS). Für reines HTTP, etwa auf localhost, false setzen. |
SESSION_SAME_SITE |
lax | Cookie-SameSite-Richtlinie: strict, lax oder none. |
SESSION_MAX_AGE_HOURS |
8 | Sitzungsdauer in Stunden. „Angemeldet bleiben“ gilt stattdessen MFA_TRUST_DAYS. |
Authentifizierung
Abschnitt betitelt „Authentifizierung“| Variable | Standard | Beschreibung |
|---|---|---|
REMEMBER_ME_ENABLED |
true | Checkbox „Angemeldet bleiben” auf der Login-Seite anzeigen. |
MFA_TRUST_ENABLED |
true | Checkbox „Diesem Gerät vertrauen” auf der MFA-Seite anzeigen. |
MFA_TRUST_DAYS |
30 | Dauer in Tagen für gemerkte Sitzungen und vertrauenswürdige MFA-Geräte. |
DEFAULT_ADMIN_PASSWORD |
empty | Passwort für das anfängliche Admin-Konto (Benutzername admin, E-Mail admin@localhost). Wird nur beim ersten Start verwendet. Leer: Klokk erzeugt ein Einmalpasswort und schreibt es einmalig ins Log. In jedem Fall fragt Klokk bei der ersten Anmeldung ein persönliches Passwort ab. |
PASSKEYS_ENABLED |
true | Anmeldung mit Passkeys (WebAuthn / FIDO2) erlauben. false blendet Passkeys überall aus und deaktiviert ihre Endpunkte. |
WEBAUTHN_RPID |
Host aus BASE_URL | Relying-Party-ID: die Domain, an die Passkeys gebunden sind. Nur setzen, wenn sie vom Host in BASE_URL abweichen muss. Eine spätere Änderung macht registrierte Passkeys unbrauchbar. |
WEBAUTHN_RP_ORIGINS |
Origin aus BASE_URL | Kommagetrennte Origins (Schema, Host und Port), die für die Passkey-Anmeldung zugelassen sind — nötig, wenn Klokk unter einer anderen öffentlichen Adresse als BASE_URL erreichbar ist. |
WEBAUTHN_RP_NAME |
Klokk | Name, den Browser oder Passwortmanager beim Anlegen eines Passkeys anzeigen. |
Admin-Zugriffskontrolle
Abschnitt betitelt „Admin-Zugriffskontrolle“| Variable | Standard | Beschreibung |
|---|---|---|
ADMIN_IP_ALLOWLIST |
empty | Kommagetrennte IPs/CIDRs mit Zugriff auf /admin/*. Leer = keine Einschränkung. Die Client-Adresse hinter Reverse Proxys wird wie unter TRUSTED_PROXIES beschrieben ermittelt. |
SUPER_ADMIN_IP_ALLOWLIST |
empty | Zusätzliche Allowlist für reine super_admin-Routen (/admin/settings, /admin/companies, /admin/audit). Ergänzt ADMIN_IP_ALLOWLIST. |
TRUSTED_PROXIES |
empty | Client-Adresse hinter Reverse Proxys, maßgeblich für Anfragelimits, IP-Allowlists und das Audit-Log. Klokk liest X-Forwarded-For nur von einer privaten oder Loopback-Gegenstelle und glaubt standardmäßig nur dem Eintrag, den dieser Proxy angehängt hat — ein Client kann seine Adresse nicht mit einem eigenen Header fälschen. Bei mehreren Proxys hintereinander die äußeren eintragen: Adressen, CIDRs, cloudflare (deren veröffentlichte Bereiche; dann gilt auch CF-Connecting-IP) oder private, durch Kommas getrennt. Hinter Cloudflare cloudflare setzen. |
Passwortrichtlinie
Abschnitt betitelt „Passwortrichtlinie“| Variable | Standard | Beschreibung |
|---|---|---|
PASSWORD_MIN_LENGTH |
12 | Minimale Passwortlänge. |
PASSWORD_REQUIRE_UPPER |
true | Mindestens einen Großbuchstaben verlangen. |
PASSWORD_REQUIRE_LOWER |
true | Mindestens einen Kleinbuchstaben verlangen. |
PASSWORD_REQUIRE_NUMBER |
true | Mindestens eine Ziffer verlangen. |
PASSWORD_REQUIRE_SPECIAL |
true | Mindestens ein Sonderzeichen verlangen. |
PASSWORD_MAX_HISTORY |
5 | Anzahl gemerkter früherer Passwörter (verhindert Wiederverwendung). 0 = deaktiviert. |
PASSWORD_EXPIRY_DAYS |
0 | Passwortablauf in Tagen. 0 = läuft nie ab. |
Rate-Limiting
Abschnitt betitelt „Rate-Limiting“| Variable | Standard | Beschreibung |
|---|---|---|
RATE_LIMIT_LOGIN_PER_MINUTE |
10 | Maximale Login-Versuche pro IP und Minute. |
RATE_LIMIT_MFA_PER_MINUTE |
10 | Maximale MFA-Versuche pro IP und Minute. |
RATE_API_PER_MINUTE |
100 | Maximale API-/allgemeine Anfragen pro IP und Minute. |
AUTH_LOCKOUT_THRESHOLD |
5 | Fehlgeschlagene Login-Versuche bis zur Kontosperrung. 0 = deaktiviert. |
AUTH_LOCKOUT_DURATION_MINUTES |
15 | Dauer der Kontosperrung in Minuten. |