101 lines
4.3 KiB
Markdown
101 lines
4.3 KiB
Markdown
---
|
|
marp: true
|
|
theme: default
|
|
paginate: true
|
|
---
|
|
|
|
# Defensio Diplomarbeit: AlumniHub
|
|
## Individueller Teil: Florian Edlmayer
|
|
**Datensicherheit, Backup-Systeme & Premium-Bereich**
|
|
|
|
---
|
|
|
|
# Ausgangslage & Zielsetzung
|
|
- **Ausgangssituation**: Fehlen einer sicheren, datenschutzkonformen digitalen Vernetzung der Absolventen der HTL Ungargasse.
|
|
- **Mein Beitrag**:
|
|
- DSGVO-konforme Datenschutzimplementierung.
|
|
- Robuste, automatisierte Backups & Restore-Systeme.
|
|
- Externes Login mittels LinkedIn (OAuth 2.0).
|
|
- Konzeption und Entwicklung des Premium-Bereichs.
|
|
- **Nutzen**: Rechtskonformer Betrieb, hohe Ausfallsicherheit, einfache Nutzung, Förderung des Engagements.
|
|
|
|
---
|
|
|
|
# Eingesetzte Technologien
|
|
- **Framework**: ASP.NET Core & .NET 8
|
|
- **Datenbanksystem**: PostgreSQL
|
|
- **Authentifizierung**: OAuth 2.0 (LinkedIn)
|
|
- **Scripting & Automation**: Bash-Skripte für Linux Cronjobs
|
|
|
|
---
|
|
|
|
# DSGVO & Datenschutz
|
|
- **Notwendigkeit**: Einhaltung gesetzlicher Rahmenbedingungen (DSGVO, DSG).
|
|
- **Umsetzung**:
|
|
- Erstellung und Einbindung einer rechtskonformen Datenschutzerklärung.
|
|
- **Datenminimierung**: Es werden nur absolut notwendige Daten für den Vereinszweck erhoben.
|
|
- **Vertraulichkeit**: TLS/HTTPS-Verschlüsselung, lokales Hosting der Daten in Österreich (LiveDesign).
|
|
- Sicherstellung aller Betroffenenrechte (Auskunft, Löschung).
|
|
|
|
---
|
|
|
|
# Backup- & Restore-Systeme (1)
|
|
- **Problem**: Schutz der Daten vor Hardwareausfällen, Softwarefehlern oder Cyberangriffen.
|
|
- **Lösung: Vollautomatisiertes Backup-Skript**
|
|
- **Cronjob** führt Skript nachtschlafend (`02:30 Uhr`) aus.
|
|
- Sichert die `PostgreSQL`-Datenbank im Custom-Format (`pg_dump -Fc`).
|
|
- Komprimiert den gesamten App-Dateibaum mittels `tar -cvpzf`.
|
|
- Alle Backups erhalten UTC-Zeitstempel für ordentliche Strukturierung.
|
|
|
|
---
|
|
|
|
# Backup- & Restore-Systeme (2)
|
|
- **Retention Management**:
|
|
- Automatische Bereinigung alter Backups (Rotation). Nur die neuesten 30 Backups (`RETAIN=30`) bleiben vorhanden, um Speicherplatz zu sparen.
|
|
- **Restore-Skript**:
|
|
- Kontrollierter Wiederherstellungsprozess.
|
|
- Integrierte Sicherheitsabfrage (`ja/nein`) vor dem Überschreiben.
|
|
- Umbenennen bestehender Ordner als "Rückversicherung".
|
|
- Neuanlage der Datenbank (`dropdb` / `createdb`) & Einspielen via `pg_restore`.
|
|
|
|
---
|
|
|
|
# Authentifizierung mit LinkedIn (OAuth 2.0)
|
|
- **Ziel**: Reduzierung von Registrierungshürden und Steigerung der Plattformsicherheit (keine Passwörter im eigenen System speichern).
|
|
- **Ablauf**:
|
|
- Nutzer klickt auf "Via LinkedIn Anmelden".
|
|
- Weiterleitung an LinkedIn -> Freigabe durch den Nutzer.
|
|
- Oqtane External Login fängt Authorization Code ab, tauscht diesen gegen ein Access Token.
|
|
- Automatisches Mapping auf lokales Benutzerkonto mithilfe der definierten *Claims* (Name, System-ID).
|
|
|
|
---
|
|
|
|
# Der Premium-Bereich (1)
|
|
- **Zweck**: Anreiz für aktives Engagement im Absolventenverein.
|
|
- **Ingenieur-Antrags-Workflow**:
|
|
- Nutzer können *Ingenieur-Anträge* (PDF) via Oqtane FileManager hochladen (`Entity: EngineerApplication`).
|
|
- Nach Prüfung und Freigabe durch Admins (`Approved`) wird automatisch für 12 Monate der Premium-Status vergeben (`UserPremium`).
|
|
- **Bibliothek**:
|
|
- Premium-Mitglieder können eine Übersicht aller genehmigten Vorzeige-Anträge einsehen.
|
|
|
|
---
|
|
|
|
# Der Premium-Bereich (2)
|
|
- **Mitgliedersuche & Kontakt**:
|
|
- Gezielte, datensparsame Suchfunktion nach anderen Absolventen.
|
|
- Die Suche filtert sensible Daten serverseitig heraus, bevor es zum Client geschickt wird.
|
|
- **Kontakt-Mechanismus**: In-App Nachrichtensystem *ohne* Preisgabe der persönlichen E-Mail-Adresse. Oqtane übernimmt als Broker die Zustellung.
|
|
- **Architektur**:
|
|
- Umsetzung über EF Core (Tabellen: `UserPremium`, `EngineerApplication`, `PremiumEvent` wg. Audit-Trails).
|
|
- Rollenbasierte Zugriffskontrollen tief in der Service-Schicht (`IsAuthorized`).
|
|
|
|
---
|
|
|
|
# Fazit & Ausblick
|
|
- **Erreichtes**:
|
|
- Sensible Mitglieder-Daten sind DSGVO-konform geschützt.
|
|
- Die Betriebssicherheit wird durch fehlerresistente Bash-Backups bewahrt.
|
|
- Der nahtlose Login mit LinkedIn reduziert Barrieren stark.
|
|
- Der Premium-Bereich samt Ingenieur-Anträgen stiftet echten Mehrwert für die Alumni-Community.
|
|
- **Ausblick**: Evaluierung weiterführender OAuth-Anbieter sowie Ausbau der Premium-Pfeiler zur Steigerung der Mitglieds-Dauerhaftigkeit.
|