# Florian Edlmayer

## 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.
