diff --git a/pflichtenheft.md b/pflichtenheft.md
index 970dd0c..76f67cd 100644
--- a/pflichtenheft.md
+++ b/pflichtenheft.md
@@ -138,7 +138,7 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth
| Anforderung | ID |
| --- | --- |
| SMTP (Email versand)
1. Zielsetzung
Die Implementierung eines SMTP-basierten E-Mail-Versands in der C#-Backend-Anwendung ermöglicht das Versenden von E-Mails über einen konfigurierten
Mailserver. Dies umfasst sowohl systemgenerierte E-Mails (z. B. Bestätigungen, Benachrichtigungen) als auch benutzergenerierte Inhalte.
Das Ziel ist eine zuverlässige, sichere und skalierbare Lösung für den E-Mail-Versand.
2. Aufgabenbeschreibung
Die Aufgabe umfasst:
Konfiguration des SMTP-Servers: Festlegung von Parametern wie Host, Port, Authentifizierung und Verschlüsselung.
Erstellung von E-Mail-Nachrichten: Gestaltung der E-Mails im Text- und HTML-Format.
Integration in die C#-Backend-Anwendung: Nutzung von SMTP-Befehlen über .NET-Bibliotheken.
Fehlerbehandlung und Logging: Sicherstellung eines robusten Versandprozesses und Nachverfolgung fehlerhafter E-Mails.
Sicherheitsmaßnahmen: Schutz der E-Mail-Kommunikation und Verhinderung von Missbrauch.
3. Dynamischer Versand
Benachrichtigungs-E-Mails:
Beispiele: Willkommens-E-Mails, Passwort-Zurücksetzen, Bestellbestätigungen.
Dynamische Platzhalter (z. B. {Name}, {Bestellnummer}) für personalisierte Inhalte.
Massen-E-Mails:
Versand an mehrere Empfänger (z. B. Newsletter).
Nutzung von BCC oder sequentiellem Versand.
3.1 Fehler- und Zustellungsmanagement
Protokollierung von fehlgeschlagenen E-Mails (z. B. ungültige Adresse, Verbindung zum SMTP-Server fehlgeschlagen).
Rückmeldung an die Anwendung, wenn der Versand erfolgreich war.
Möglichkeit zur späteren Wiederholung fehlgeschlagener E-Mails.
4. Nicht-funktionale Anforderungen
Performance:
E-Mails sollen innerhalb von 3 Sekunden pro Nachricht versendet werden.
Unterstützung von mindestens 100 gleichzeitigen E-Mails bei Massenversand.
Skalierbarkeit:
Vorbereitung auf den Versand von bis zu 10.000 E-Mails pro Tag.
Sicherheit:
Verschlüsselung der Verbindung zum SMTP-Server (TLS/SSL).
Schutz vor Spam und Missbrauch (z. B. Rate-Limiting).
Kompatibilität:
Unterstützung moderner E-Mail-Clients (z. B. Gmail, Outlook, Thunderbird).
Sicherstellung der Anzeige von HTML-E-Mails auf Desktop- und Mobilgeräten.
5. Technische Umsetzung
5.1. Backend
Framework: ASP.NET Core.
Bibliotheken:
Verwendung von .NET System.Net.Mail oder externen Bibliotheken wie MailKit oder FluentEmail für erweiterten SMTP-Support.
Architektur:Erstellung eines SMTP-Services:Methoden für das Versenden von einfachen und komplexen E-Mails.Unterstützung für Anhänge und Templates.
5.2. Sicherheit
Schutz der Zugangsdaten:
Verwendung eines Secret Managers oder von Umgebungsvariablen für SMTP-Zugangsdaten.
Rate Limiting:
Begrenzung der Anzahl der E-Mails pro Zeitspanne, um Serverüberlastung zu vermeiden.
Spam-Prävention:
Konfiguration von SPF, DKIM und DMARC auf der Mailserver-Seite.
6. Erfolgskriterien
Alle E-Mails werden zuverlässig und sicher über den SMTP-Server versendet.
Personalisierte Nachrichten und Anhänge werden korrekt verarbeitet.
Robustheit gegen typische Fehler und Schutz vor Missbrauch.
| SnT-2 |
-| LinkedÌn OAuth (Phase 2, oder später)
Backend zu LinkedIn
1. Zielsetzung
Implementierung von LinkedIn OAuth 2.0 für die Authentifizierung und den Abruf von Profildaten in der C#-Backend-Anwendung.
2. Anforderungen
Registrierung der App im LinkedIn Developer Portal.
OAuth 2.0 Authentifizierungsablauf:
Weiterleitung zur LinkedIn-Login-Seite.
Empfang des Autorisierungscodes.
Austausch des Codes gegen ein Zugriffstoken.
Abruf von Benutzerinformationen (Vorname, Nachname, E-Mail).
Sicheres Token-Management (kein Speichern von Zugangsdaten in der Datenbank).
3. Technische Umsetzung
Backend: ASP.NET Core
API-Endpunkte:
/auth/linkedin (Weiterleitung zur LinkedIn-Login-Seite).
/auth/linkedin/callback (Empfang des Codes).
/api/user/profile (Abruf von LinkedIn-Daten mit Token).
Sicherheit:
Nutzung von HTTPS und PKCE.
Speicherung von Tokens nur im Cache (z. B. Redis).
Einschränkung der API-Berechtigungen (r_liteprofile, r_emailaddress).
4. Erfolgskriterien
Benutzer können sich sicher über LinkedIn anmelden.
Zugriffstoken werden sicher verarbeitet.
API-Datenabruf funktioniert zuverlässig.
| SnT -3 |
+| LinkedÌn OAuth (Phase 2, oder später)
Backend zu LinkedIn
1. Zielsetzung
Implementierung von LinkedIn OAuth 2.0 für die Authentifizierung und den Abruf von Profildaten in der C#-Backend-Anwendung.
2. Anforderungen
Registrierung der App im LinkedIn Developer Portal.
OAuth 2.0 Authentifizierungsablauf:
Weiterleitung zur LinkedIn-Login-Seite.
Empfang des Autorisierungscodes.
Austausch des Codes gegen ein Zugriffstoken.
Abruf von Benutzerinformationen (Vorname, Nachname, E-Mail).
Sicheres Token-Management (kein Speichern von Zugangsdaten in der Datenbank).
3. Technische Umsetzung
Backend: ASP.NET Core
API-Endpunkte:
/auth/linkedin (Weiterleitung zur LinkedIn-Login-Seite).
/auth/linkedin/callback (Empfang des Codes).
/api/user/profile (Abruf von LinkedIn-Daten mit Token).
Sicherheit:
Nutzung von HTTPS und PKCE.
Speicherung von Tokens nur im Cache (z. B. Redis).
Einschränkung der API-Berechtigungen (r_liteprofile, r_emailaddress).
4. Erfolgskriterien
Benutzer können sich sicher über LinkedIn anmelden.
Zugriffstoken werden sicher verarbeitet.
API-Datenabruf funktioniert zuverlässig.
| SnT-3 |
# Anforderungen an die Software
@@ -155,10 +155,7 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth
| Anforderung | ID |
| --- | --- |
-| **Benutzername und Passwort Authentifizierung**:
**Im Frontend**:
Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in einer Anwendung zu identifizieren, indem sie ihre Anmeldedaten über ein Formular eingeben. Das Frontend sendet die Daten sicher an das Backend, das die Authentifizierung übernimmt. Bei erfolgreicher Anmeldung erhält der Nutzer Zugriff auf geschützte Bereiche der Anwendung.
**Vorraussetzungen**:
Passwort zurücksetzen |