feat: Benutzerverwaltung als neuen Reiter in Einstellungen-Seite integriert

This commit is contained in:
ISA
2025-04-28 15:47:28 +02:00
parent 0efaedb059
commit 79a535feae
4 changed files with 184 additions and 1 deletions

View File

@@ -237,3 +237,82 @@ Angezeigt mit [Mermaid.js](https://mermaid-js.github.io/).
## 👋 Kontakt für Fragen
Bei Fragen oder Problemen bitte an das CPLv4.0 Entwicklungsteam wenden.
# 🔐 Benutzerverwaltung und Sicherheit
## Backend TLS-Authentifizierung
- **TLS-Authentifizierung** erfolgt über das Backend (Embedded-System, CPL).
- Wird genutzt für HTTPS-Verbindungen und verschlüsselte OPC UA-Kommunikation.
- TLS-Benutzername und Passwort werden **nicht** vom Frontend verwaltet.
- Diese Login-Daten dienen **nur der sicheren Netzwerkverbindung** (z.B. HTTPS, Zertifikate).
## Frontend-Admin-Login (eigene Benutzerverwaltung)
- Das **Frontend** besitzt eine eigene **Benutzerverwaltung** für erweiterte Funktionen.
- Beispiele für geschützte Funktionen:
- Firmware-Update der Kabelüberwachungsmodule
- Erweiterte Systemeinstellungen
### Benutzerstruktur
Benutzer werden definiert unter:
```text
/components/main/settingsPageComponents/config/users.ts
```
Beispiel für die Benutzerstruktur:
```ts
const USERS = {
AdminUser: {
username: "admin",
password: "$2a$10$xpq/.tcOJN/LXfzdCcCVrenlBh2nRlM1R1ISY7dd1q2qGWC9Fyd2G", // bcrypt Hash von "admin"
role: "Admin",
},
};
export default USERS;
```
### Sicherheit
- **Passwörter sind verschlüsselt** mit `bcryptjs`.
- Klartext-Passwörter werden **niemals** im Quellcode gespeichert.
### Rollenbeschreibung
| Benutzerrolle | Beschreibung |
| :------------------- | :-------------------------------------------------------------- |
| TLS-User (Backend) | Anmeldung für sichere HTTPS-Verbindung, keine Frontend-Funktion |
| AdminUser (Frontend) | Darf Firmware-Updates durchführen, Konfiguration ändern |
### Anleitung für Entwickler: Passwort-Hash erzeugen
Um ein neues Passwort zu erstellen, benutze folgendes Script:
```ts
import bcrypt from "bcryptjs";
const hash = bcrypt.hashSync("meinNeuesPasswort", 10);
console.log(hash); // Kopieren und in users.ts einfügen
```
**Hinweis:** Stelle sicher, dass das neue Passwort korrekt gehasht ist, bevor es ins Repository hochgeladen wird.
---
## Zusammenfassung
| Thema | Hinweis |
| :--------------------- | :-------------------------------------------------------- |
| TLS-Login (Backend) | Nur für Netzwerkverschlüsselung |
| Admin-Login (Frontend) | Schutz für kritische Funktionen |
| Passwort-Handling | Immer bcrypt verwenden |
| Benutzerdatei | `/components/main/settingsPageComponents/config/users.ts` |
---
**Stand:** 28. April 2025
**Projekt:** CPLv4.0 Weboberfläche