Sicherheitsrichtlinien¶
Dieser Abschnitt beschreibt die Sicherheitsmechanismen von calServer -- von der Passwortverwaltung ueber die Sitzungssteuerung bis zur Zugriffssteuerung.
Passwortrichtlinien¶
calServer erzwingt konfigurierbare Passwortvorgaben. Die Einstellungen werden unter Administration > Grundeinstellungen gepflegt.
| Parameter | Beschreibung |
|---|---|
password_expiry_days |
Gueltigkeitsdauer eines Passworts in Tagen |
warning_password_expiry_days |
Vorwarnzeit vor Ablauf in Tagen |
minimal_number_characters |
Mindestlaenge des Passworts |
minimal_number_lowercase_characters |
Mindestanzahl Kleinbuchstaben |
minimal_number_uppercase_characters |
Mindestanzahl Grossbuchstaben |
minimal_number_special_characters |
Mindestanzahl Sonderzeichen |
minimal_number_digit_characters |
Mindestanzahl Ziffern |
Passwortaenderungen werden in FrontendPasswordAudit protokolliert, sodass eine Wiederverwendung frueherer Passwoerter erkannt werden kann.
Anmeldesicherheit¶
calServer bietet Schutzmassnahmen gegen Brute-Force-Angriffe:
| Einstellung | Beschreibung |
|---|---|
activate_number_of_failed_login |
Aktiviert die Sperrung nach fehlgeschlagenen Anmeldeversuchen |
number_of_failed_login |
Anzahl erlaubter Fehlversuche vor einer Kontosperre |
Fehlgeschlagene Anmeldungen werden in FrontendLoginSecurity erfasst. Nach Ueberschreitung des Limits wird das Benutzerkonto temporaer gesperrt.
Captcha-Integration¶
Fuer das Anmelde- und Registrierungsformular stehen zwei Captcha-Verfahren zur Verfuegung:
| Verfahren | Einstellungen |
|---|---|
| Google reCAPTCHA | enable_google_recaptcha, recaptcha_site_key, recaptcha_secret_key |
| Friendly Captcha | enable_friendly_captcha, friendly_captcha_site_key, friendly_captcha_secret_key |
Es kann jeweils nur ein Verfahren aktiv sein.
Rollenbasierte Zugriffssteuerung (RBAC)¶
calServer verwendet das Yii-RBAC-System mit datenbankbasierter Verwaltung (KCDbAuthManager). Die Hierarchie gliedert sich in:
- Operationen -- Granulare Berechtigungen (z. B. Inventar lesen, Kalibrierung anlegen)
- Aufgaben (Tasks) -- Buendeln mehrere Operationen
- Rollen -- Zuordnung an Benutzer
Die Typen werden in constants.php definiert:
Die Rechtepruefung erfolgt im KCAccessControlFilter, der in jedem Controller als Filter eingebunden ist.
Benutzergruppen und Freigabegruppen¶
Zusaetzlich zum RBAC-System unterstuetzt calServer:
- Benutzergruppen -- Organisatorische Zusammenfassung von Benutzern
- Freigabegruppen -- Steuern den Datenzugriff auf Inventare und Kalibrierungen innerhalb eines Mandanten
Mandantentrennung¶
Die Mandantenisolation wird auf Datenbankebene sichergestellt: Jeder Mandant arbeitet mit einer eigenen MySQL-Datenbank. Die Datenbankverbindung (KCDbConnection) wird zur Laufzeit basierend auf dem Mandantenkontext hergestellt.
Sitzungsverwaltung¶
PHP-Sitzungen werden serverseitig verwaltet. Die Sitzungsdauer und -konfiguration erfolgt ueber die PHP-FPM-Einstellungen in configs/php.ini. Bei Inaktivitaet wird die Sitzung automatisch beendet.
API-Authentifizierung¶
Zugriffe ueber die REST-API erfordern die Uebermittlung von drei HTTP-Headern:
| Header | Beschreibung |
|---|---|
HTTP_X_REST_USERNAME |
Benutzername |
HTTP_X_REST_PASSWORD |
Passwort |
HTTP_X_REST_API_KEY |
API-Schluessel (im Benutzerprofil generiert) |
Weitere Informationen finden Sie unter API-Authentifizierung.
SSO-Integration¶
calServer unterstuetzt Single Sign-On ueber:
- SAML 2.0 -- Konfiguration in
config/saml.php, Implementierung ueberonelogin/php-saml - LDAP/Active Directory -- Integration ueber
adldap/adldap
Details zur Einrichtung finden Sie unter SSO und LDAP.
Cookie-Consent¶
calServer bietet eine konfigurierbare Cookie-Consent-Verwaltung:
| Einstellung | Beschreibung |
|---|---|
enable_cookie_banner |
Aktiviert das Cookie-Banner |
cookie_storage_days |
Speicherdauer der Einwilligung in Tagen |
cookie_consent |
Consent-Konfiguration |
Die Verwaltung erfolgt ueber die Modelle FrontendCookieCategory und FrontendCookieItem.
Doppelte Datensatzpruefung¶
Zur Vermeidung von Duplikaten bietet calServer optionale Eindeutigkeitspruefungen:
| Einstellung | Beschreibung |
|---|---|
disable_double_asset_number |
Verhindert doppelte Inventarnummern |
disable_double_booking_number |
Verhindert doppelte Auftragsnummern |
Audit-Protokollierung¶
Alle relevanten Aenderungen werden in der Tabelle FrontendAudit protokolliert. Die Protokollierung umfasst:
- Benutzer, der die Aenderung vorgenommen hat
- Zeitstempel der Aenderung
- Art der Aenderung (Erstellen, Aendern, Loeschen)
- Betroffener Datensatz und Feld
- Alter und neuer Wert
Die Protokolllaenge wird ueber den Parameter log_summary_length (Standard: 120 Zeichen) gesteuert.
SSL-Zertifikatsverwaltung¶
calServer verwaltet SSL-Zertifikate ueber den CLI-Befehl insertcert, der Zertifikate auf dem Server erkennt und in der Tabelle ssl_certificate registriert. Die SSL-Terminierung erfolgt am Nginx-Reverse-Proxy.