# Mail-RBAC Architektur mit Mitarbeiter-Anonymisierung **Version:** 1.0.0 **Status:** Architekturplanung --- ## Executive Summary Dieses Dokument beschreibt eine neuartige Architektur, die E-Mail, Kalender und Videokonferenzen mit rollenbasierter Zugriffskontrolle (RBAC) verbindet. Das Kernkonzept ermöglicht die **vollständige Anonymisierung von Mitarbeiterdaten** bei Verlassen des Unternehmens, während geschäftliche Kommunikationshistorie erhalten bleibt. --- ## 1. Das Problem ### Traditionelle E-Mail-Systeme ``` max.mustermann@firma.de → Person gebunden → DSGVO: Daten müssen gelöscht werden → Geschäftshistorie geht verloren ``` ### BreakPilot-Lösung: Rollenbasierte E-Mail ``` klassenlehrer.5a@schule.breakpilot.app → Rolle gebunden → Person kann anonymisiert werden → Kommunikationshistorie bleibt erhalten ``` --- ## 2. Architektur-Übersicht ``` ┌─────────────────────────────────────────────────────────────────┐ │ BreakPilot Groupware │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Webmail │ │ Kalender │ │ Jitsi │ │ │ │ (SOGo) │ │ (SOGo) │ │ Meeting │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ │ └────────────────┼────────────────┘ │ │ │ │ │ ┌───────────┴───────────┐ │ │ │ RBAC-Mail-Bridge │ ◄─── Neue Komponente │ │ │ (Python/Go) │ │ │ └───────────┬───────────┘ │ │ │ │ │ ┌─────────────────────┼─────────────────────┐ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────────┐ ┌────────────┐ │ │ │PostgreSQL│ │ Mail Server │ │ MinIO │ │ │ │(RBAC DB) │ │ (Stalwart) │ │ (Backups) │ │ │ └──────────┘ └──────────────┘ └────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 3. Komponenten-Auswahl ### 3.1 E-Mail Server: Stalwart Mail Server **Empfehlung:** [Stalwart Mail Server](https://stalw.art/) | Kriterium | Bewertung | |-----------|-----------| | Lizenz | AGPL-3.0 (Open Source) | | Sprache | Rust (performant, sicher) | | Features | IMAP, SMTP, JMAP, WebSocket | | Kalender | CalDAV integriert | | Kontakte | CardDAV integriert | | Spam/Virus | Integriert | | API | REST API für Administration | ### 3.2 Webmail-Client: SOGo oder Roundcube **Option A: SOGo** (empfohlen) - Lizenz: GPL-2.0 / LGPL-2.1 - Kalender, Kontakte, Mail in einem - ActiveSync Support - Outlook-ähnliche Oberfläche **Option B: Roundcube** - Lizenz: GPL-3.0 - Nur Webmail - Benötigt separaten Kalender --- ## 4. Anonymisierungs-Workflow ``` Mitarbeiter kündigt │ ▼ ┌───────────────────────────┐ │ 1. Functional Mailboxes │ │ → Neu zuweisen oder │ │ → Deaktivieren │ └───────────┬───────────────┘ │ ▼ ┌───────────────────────────┐ │ 2. Personal Email Account │ │ → Anonymisieren: │ │ max.mustermann@... │ │ → mitarbeiter_a7x2@... │ └───────────────────────────┘ │ ▼ ┌───────────────────────────┐ │ 3. Users-Tabelle │ │ → Pseudonymisieren: │ │ name: "Max Mustermann" │ │ → "Ehem. Mitarbeiter" │ └───────────────────────────┘ │ ▼ ┌───────────────────────────┐ │ 4. Mailbox Assignments │ │ → Bleiben für Audit │ │ → User-Referenz zeigt │ │ auf anonymisierte │ │ Daten │ └───────────────────────────┘ │ ▼ ┌───────────────────────────┐ │ 5. E-Mail-Archiv │ │ → Header anonymisieren │ │ → Inhalte optional │ │ löschen │ └───────────────────────────┘ ``` --- ## 5. Unified Inbox Implementation ### Implementierte Komponenten Die Unified Inbox wurde als Teil des klausur-service implementiert: | Komponente | Pfad | Beschreibung | |------------|------|--------------| | **Models** | `klausur-service/backend/mail/models.py` | Pydantic Models für Accounts, E-Mails, Tasks | | **Database** | `klausur-service/backend/mail/mail_db.py` | PostgreSQL-Operationen mit asyncpg | | **Credentials** | `klausur-service/backend/mail/credentials.py` | Vault-Integration für IMAP/SMTP-Passwörter | | **Aggregator** | `klausur-service/backend/mail/aggregator.py` | Multi-Account IMAP Sync | | **AI Service** | `klausur-service/backend/mail/ai_service.py` | KI-Analyse (Absender, Fristen, Kategorien) | | **Task Service** | `klausur-service/backend/mail/task_service.py` | Arbeitsvorrat-Management | | **API** | `klausur-service/backend/mail/api.py` | FastAPI Router mit 30+ Endpoints | ### API-Endpoints (Port 8086) ``` # Account Management POST /api/v1/mail/accounts - Neues Konto hinzufügen GET /api/v1/mail/accounts - Alle Konten auflisten DELETE /api/v1/mail/accounts/{id} - Konto entfernen POST /api/v1/mail/accounts/{id}/test - Verbindung testen # Unified Inbox GET /api/v1/mail/inbox - Aggregierte Inbox GET /api/v1/mail/inbox/{id} - Einzelne E-Mail POST /api/v1/mail/send - E-Mail senden # KI-Features POST /api/v1/mail/analyze/{id} - E-Mail analysieren GET /api/v1/mail/suggestions/{id} - Antwortvorschläge # Arbeitsvorrat GET /api/v1/mail/tasks - Alle Tasks POST /api/v1/mail/tasks - Manuelle Task erstellen PATCH /api/v1/mail/tasks/{id} - Task aktualisieren GET /api/v1/mail/tasks/dashboard - Dashboard-Statistiken ``` ### Niedersachsen-spezifische Absendererkennung ```python KNOWN_AUTHORITIES_NI = { "@mk.niedersachsen.de": "Kultusministerium Niedersachsen", "@rlsb.de": "Regionales Landesamt für Schule und Bildung", "@landesschulbehoerde-nds.de": "Landesschulbehörde", "@nibis.de": "NiBiS", } ``` --- ## 6. Lizenz-Übersicht | Komponente | Lizenz | Kommerzielle Nutzung | Veröffentlichungspflicht | |------------|--------|---------------------|-------------------------| | Stalwart Mail | AGPL-3.0 | Ja | Nur bei Code-Änderungen | | SOGo | GPL-2.0/LGPL | Ja | Nur bei Code-Änderungen | | Roundcube | GPL-3.0 | Ja | Nur bei Code-Änderungen | | RBAC-Mail-Bridge | Eigene | N/A | Kann proprietär bleiben | | BreakPilot Backend | Eigene | N/A | Proprietär | --- ## 7. Referenzen - [Stalwart Mail Server](https://stalw.art/) - [SOGo Groupware](https://www.sogo.nu/) - [Roundcube Webmail](https://roundcube.net/) - [CalDAV Standard](https://tools.ietf.org/html/rfc4791) - [DSGVO Art. 17 - Recht auf Löschung](https://dsgvo-gesetz.de/art-17-dsgvo/)