Zum Inhalt

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:

'user_role_types' => array('0' => 'OPERATION', '1' => 'TASK', '2' => 'ROLE')

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 ueber onelogin/php-saml
  • LDAP/Active Directory -- Integration ueber adldap/adldap

Details zur Einrichtung finden Sie unter SSO und LDAP.

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.