Zum Inhalt springen

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.
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.
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.
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.
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.