Compare commits

..

9 Commits

Author SHA1 Message Date
0c81576f4b pflichtenheft.md aktualisiert 2025-02-10 09:34:58 +00:00
10fbe5e559 pflichtenheft.md aktualisiert 2025-02-10 09:34:58 +00:00
d3c8ef9adc pflichtenheft.md aktualisiert 2025-02-10 09:34:58 +00:00
f6c221bc7c Neuer Patch
Ismails part
2025-02-10 09:34:58 +00:00
2e7a610833 pflichtenheft.md aktualisiert 2025-02-10 09:34:17 +00:00
831743383f pflichtenheft.md aktualisiert 2025-02-10 09:34:17 +00:00
6462dade43 pflichtenheft.md aktualisiert 2025-02-10 07:32:52 +00:00
0869da3a3c Aus 1 Änderung 2025-01-27 08:40:28 +00:00
0152d9c594 Aus 1 geändert 2025-01-27 08:09:56 +00:00

View File

@ -118,12 +118,13 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth
### Schnittstellen zu eigenen Systemen
| RestAPI (Frontend / Backend)<br><br>Zwischen Datenbank und C#<br><br>Die Umsetzung einer RESTAPI umfasst die Planung von Endpunkten, Backend-Entwicklung, Datenbankanbindung | SnT-1 |
| RestAPI (Frontend / Backend)<br><br>
|1. Zielsetzung <br>Die geplante REST API soll in die Oqtane-CMS-Umgebung integriert werden, um eine dynamische Kommunikation zwischen dem CMS und einer Website zu ermöglichen. Sie dient dazu, Inhalte und Funktionen des CMS über die API für die Website verfügbar zu machen und ermöglicht dynamische CRUD-Operationen (Create, Read, Update, Delete) direkt aus dem CMS heraus.<br><br>2. Aufgabenbeschreibung<br>Die Aufgabe umfasst:<br>Integration in Oqtane: Erweiterung des Oqtane-CMS mit zusätzlichen Modulen und APIs.<br>Entwicklung der REST API: Bereitstellung von Endpunkten zur Interaktion zwischen CMS-Daten und Website.<br>Frontend-Integration: Anbindung der Website an die API, um CMS-Inhalte dynamisch darzustellen.<br>Sicherheitsimplementierung: Absicherung der API und des Datenflusses zwischen CMS und Website.<br><br>3. Sicherheitsanforderungen<br>Authentifizierung:<br>Verwendung von Oqtane's integriertem Benutzermanagement und JWT für Authentifizierung.<br>Sicherstellung, dass Benutzerrollen (z. B. Admin, Editor, User) berücksichtigt werden.<br>Autorisierung:<br>Zugriff auf Endpunkte wird basierend auf Benutzerrollen gesteuert.<br>Sensible Aktionen (z. B. Inhalte löschen) nur für berechtigte Benutzer möglich.<br>Eingabedatenvalidierung:<br>Eingaben im Frontend und Backend validieren.<br>API-Schutz:<br>Schutz gegen CSRF, XSS, und andere Angriffe.<br>Nutzung von HTTPS.<br><br>4. Nicht-funktionale Anforderungen<br>Performance: Antwortzeiten der API < 300ms für häufige Anfragen.<br>Kompatibilität: Vollständig kompatibel mit Oqtane-Modulen und Standard-Datenstrukturen.<br>Skalierbarkeit: Möglichkeit, neue Module und API-Endpunkte ohne größere Umbauten zu integrieren.<br>Internationalisierung: Unterstützung mehrsprachiger Inhalte.<br><br>5. Technische Umsetzung<br>5.1. Backend (Oqtane CMS)<br>Framework: ASP.NET Core, integriert in Oqtane.<br>Architektur:<br>Erweiterung des Oqtane-CMS durch Module.<br>Nutzung der Oqtane-Service-API und Datenzugriff über die vorhandene Architektur.<br>Erstellung benutzerdefinierter APIs mit .Controllers und Abbildung auf Oqtane-Tabellen.<br>5.2. Frontend<br>Technologien:<br>JavaScript-Frameworks wie React, Angular oder Vue.js.<br>Integration der REST API über Bibliotheken wie Axios oder die Fetch API.<br>Darstellung der Inhalte aus Oqtane in dynamischen Komponenten (z. B. Listen, Detailansichten).<br>API-Integration:<br>Frontend ruft Inhalte direkt von der REST API ab.<br>Dynamische Aktualisierung der Inhalte durch Benutzeraktionen (z. B. Formularübermittlung).<br>5.3. Sicherheit<br>Authentifizierung:<br>Authentifizierung über JWT-Token (Login-Endpunkte in Oqtane).<br>Speicherung von Token im sicheren Speicher (z. B. HttpOnly Cookies).<br>Eingabeverarbeitung:<br>Validierung von Daten im Frontend und Backend.<br>Schutz vor schädlichen Nutzereingaben (z. B. SQL-Injection).<br><br>6. Erfolgskriterien<br>Die Website kann nahtlos mit der Oqtane-REST API interagieren.<br>Die API erfüllt alle funktionalen Anforderungen und ist in die Oqtane-Datenstruktur integriert.<br>Sichere und performante Bereitstellung der API.<br>Modularer Aufbau, der zukünftige Erweiterungen unterstützt.<br><br> | SnT-1 |
| --- | --- |
### Schnittstellen zu anderen Systemen
| SMTP (Email versand)<br><br>C# (Backend) zum Mailserver<br><br>Die Umsetzung von SMTP für den E-Mail-Versand umfasst die Konfiguration eines SMTP-Servers, die Erstellung von E-Mail-Nachrichten im richtigen Format, die Verwendung von SMTP-Befehlen (wie EHLO, MAIL FROM, RCPT TO, DATA), das Senden der E-Mail über den Server. | SnT-2 |
| SMTP (Email versand)<br><br>1. Zielsetzung<br>Die Implementierung eines SMTP-basierten E-Mail-Versands in der C#-Backend-Anwendung ermöglicht das Versenden von E-Mails über einen konfigurierten<br> Mailserver. Dies umfasst sowohl systemgenerierte E-Mails (z. B. Bestätigungen, Benachrichtigungen) als auch benutzergenerierte Inhalte.<br>Das Ziel ist eine zuverlässige, sichere und skalierbare Lösung für den E-Mail-Versand.<br><br>2. Aufgabenbeschreibung<br>Die Aufgabe umfasst:<br>Konfiguration des SMTP-Servers: Festlegung von Parametern wie Host, Port, Authentifizierung und Verschlüsselung.<br>Erstellung von E-Mail-Nachrichten: Gestaltung der E-Mails im Text- und HTML-Format.<br>Integration in die C#-Backend-Anwendung: Nutzung von SMTP-Befehlen über .NET-Bibliotheken.<br>Fehlerbehandlung und Logging: Sicherstellung eines robusten Versandprozesses und Nachverfolgung fehlerhafter E-Mails.<br>Sicherheitsmaßnahmen: Schutz der E-Mail-Kommunikation und Verhinderung von Missbrauch.<br><br>3. Dynamischer Versand<br>Benachrichtigungs-E-Mails:<br>Beispiele: Willkommens-E-Mails, Passwort-Zurücksetzen, Bestellbestätigungen.<br>Dynamische Platzhalter (z. B. {Name}, {Bestellnummer}) für personalisierte Inhalte.<br>Massen-E-Mails:<br>Versand an mehrere Empfänger (z. B. Newsletter).<br>Nutzung von BCC oder sequentiellem Versand.<br>3.1 Fehler- und Zustellungsmanagement<br>Protokollierung von fehlgeschlagenen E-Mails (z. B. ungültige Adresse, Verbindung zum SMTP-Server fehlgeschlagen).<br>Rückmeldung an die Anwendung, wenn der Versand erfolgreich war.<br>Möglichkeit zur späteren Wiederholung fehlgeschlagener E-Mails.<br><br>4. Nicht-funktionale Anforderungen<br>Performance:<br>E-Mails sollen innerhalb von 3 Sekunden pro Nachricht versendet werden.<br>Unterstützung von mindestens 100 gleichzeitigen E-Mails bei Massenversand.<br>Skalierbarkeit:<br>Vorbereitung auf den Versand von bis zu 10.000 E-Mails pro Tag.<br>Sicherheit:<br>Verschlüsselung der Verbindung zum SMTP-Server (TLS/SSL).<br>Schutz vor Spam und Missbrauch (z. B. Rate-Limiting).<br>Kompatibilität:<br>Unterstützung moderner E-Mail-Clients (z. B. Gmail, Outlook, Thunderbird).<br>Sicherstellung der Anzeige von HTML-E-Mails auf Desktop- und Mobilgeräten.<br><br>5. Technische Umsetzung<br>5.1. Backend<br>Framework: ASP.NET Core.<br>Bibliotheken:<br>Verwendung von .NET System.Net.Mail oder externen Bibliotheken wie MailKit oder FluentEmail für erweiterten SMTP-Support.<br>Architektur:Erstellung eines SMTP-Services:Methoden für das Versenden von einfachen und komplexen E-Mails.Unterstützung für Anhänge und Templates.<br><br>5.2. Sicherheit<br>Schutz der Zugangsdaten:<br>Verwendung eines Secret Managers oder von Umgebungsvariablen für SMTP-Zugangsdaten.<br>Rate Limiting:<br>Begrenzung der Anzahl der E-Mails pro Zeitspanne, um Serverüberlastung zu vermeiden.<br>Spam-Prävention:<br>Konfiguration von SPF, DKIM und DMARC auf der Mailserver-Seite.<br><br>6. Erfolgskriterien<br>Alle E-Mails werden zuverlässig und sicher über den SMTP-Server versendet.<br>Personalisierte Nachrichten und Anhänge werden korrekt verarbeitet.<br>Robustheit gegen typische Fehler und Schutz vor Missbrauch.<br><br>| SnT-2 |
| --- | --- |
| LinkedÌn OAuth (Phase 2, oder später)<br><br>Backend zu LinkedIn<br><br>Die Umsetzung von LinkedIn OAuth für die Authentifizierung umfasst die Registrierung einer Anwendung im LinkedIn Developer Portal, die Umleitung des Benutzers zur LinkedIn-Login-Seite zur Zustimmung, das Erhalten eines Zugriffstokens durch den Austausch eines Autorisierungscodes, das Stellen von API-Anfragen mit dem Zugriffstoken und das sichere Management des Tokens zur Optimierung der Benutzererfahrung. | SnT -3 |
@ -326,7 +327,7 @@ Protokollierung aller Authentifizierungsversuche und der zugehörigen LinkedIn-D
Mehr Prosa (Unterscheidung Phase 1 & 2)
| **Dashboard**<br><br>Frontend: <br>Zeige die letzten Anmeldeaktivitäten und biete schnelle Optionen zur Sicherheitsverwaltung. Ermögliche Benachrichtigungen bei neuen Login-Versuchen und erleichtere den Zugriff auf Sicherheitsfunktionen.<br><br>Backend:<br><br>Ein Backend-Dashboard bündelt Systemdaten wie Nutzeraktivität, Serverstatus und Verkaufszahlen in Echtzeit. Es visualisiert KPIs über Diagramme und Tabellen, ermöglicht schnelle Analysen und unterstützt präzise Entscheidungen. Durch Zugriffsrechte und performante Datenbanken bleibt das Dashboard sicher und effizient die zentrale Kontrollstelle für Systemauswertungen. | AUS-1 |
| <br>Dashboard<br>Frontend: <br>Anforderung:<br>Das Frontend der Webanwendung soll ein Dashboard bereitstellen, das die letzten Anmeldeaktivitäten des Benutzers anzeigt, schnelle Optionen zur Sicherheitsverwaltung bietet und Benachrichtigungen zu neuen Login-Versuchen ermöglicht. Das Dashboard soll die Benutzerfreundlichkeit und Transparenz im Umgang mit sicherheitsrelevanten Informationen gewährleisten.<br>Beschreibung der Funktionalität: <br>1. Anzeige der letzten Anmeldeaktivitäten: <br>- Das Dashboard zeigt eine übersichtliche Liste der letzten Anmeldeaktivitäten, einschließlich Datum, Uhrzeit, Gerät/Browser und Standort (basierend auf der IP-Adresse).<br>- Ungewöhnliche oder verdächtige Aktivitäten werden visuell hervorgehoben (z. B. durch farbliche Markierungen oder Warnsymbole). <br>- Eine Funktion zur Markierung von Aktivitäten als „verdächtig“ ermöglicht dem Benutzer, ungewöhnliche Logins direkt zu melden<br>2. Sicherheitsverwaltung:<br>- Das Dashboard enthält direkte Links oder Schaltflächen zu wichtigen Sicherheitsfunktionen, darunter:<br>- Änderung des Passworts<br>- Aktivierung/Deaktivierung der Zwei-Faktor-Authentifizierung (2FA)<br>- Übersicht und Verwaltung aktiver Sitzungen mit der Möglichkeit, einzelne Sitzungen zu beenden<br>- Eine Funktion zur Anzeige und Verwaltung von vertrauenswürdigen Geräten wird bereitgestellt.<br>3. Benachrichtigungen bei neuen Login-Versuchen:<br>- Das Dashboard zeigt Benachrichtigungen zu neuen Login-Versuchen in Echtzeit an, falls diese erkannt werden.<br>- Bei neuen Login-Versuchen aus unbekannten Standorten oder Geräten wird eine zusätzliche Sicherheitsabfrage bereitgestellt (z. B. über E-Mail oder SMS).<br>4. Benutzerfreundlichkeit und Usability:<br>- Die Darstellung der Informationen erfolgt in einem klar strukturierten und leicht verständlichen Format (z. B. Tabellen oder Karten).<br>- Die Sicherheitsoptionen sind intuitiv zugänglich und mit kurzen Erklärungen versehen, um die Benutzerfreundlichkeit zu erhöhen.<br>- Das Design ist responsive und für die Nutzung auf verschiedenen Geräten (Desktop, Tablet, Mobil) optimiert.<br>5. Barrierefreiheit:<br>- Das Dashboard erfüllt Standards zur Barrierefreiheit und unterstützt z. B. Screenreader oder Tastatur-Navigation.<br>- Visuelle Warnhinweise (z. B. zu verdächtigen Aktivitäten) werden durch alternative Texte und Symbole ergänzt<br>Akzeptanzkriterien:<br>- Das Dashboard zeigt die letzten Anmeldeaktivitäten vollständig und korrekt an, einschließlich aller relevanten Details.<br>- Sicherheitsfunktionen wie Passwortänderung, 2FA-Verwaltung und Sitzungsübersicht sind direkt zugänglich und funktionieren einwandfrei.<br>- Benachrichtigungen zu neuen Login-Versuchen werden in Echtzeit angezeigt und ermöglichen eine schnelle Reaktion des Benutzers.<br>- Das Dashboard ist auf verschiedenen Geräten benutzerfreundlich und barrierefrei bedienbar.<br><br>Backend:<br><br>Ein Backend-Dashboard bündelt Systemdaten wie Nutzeraktivität, Serverstatus und Verkaufszahlen in Echtzeit. Es visualisiert KPIs über Diagramme und Tabellen, ermöglicht schnelle Analysen und unterstützt präzise Entscheidungen. Durch Zugriffsrechte und performante Datenbanken bleibt das Dashboard sicher und effizient die zentrale Kontrollstelle für Systemauswertungen | AUS-1 |
| --- | --- |
| Auswertungen erstellen<br><br>Frontend: <br>Erstelle präzise Auswertungen deiner Anmeldedaten: Analysiere Login-Häufigkeit, erkenne verdächtige Aktivitäten und gewinne Einblicke in Nutzerverhalten. Optimiere deine Sicherheitsstrategie<br><br>Backend:<br><br>Für Auswertungen im Backend sind strukturierte Daten, Filter und Algorithmen zur KPI-Berechnung nötig. Diagramme und Tabellen visualisieren die Ergebnisse. Zugriffsrechte sichern die Daten, eine performante Datenbank sorgt für schnelle Analysen so werden Rohdaten in präzise Systemauswertungen verwandelt. | AUS-2 |
| Auswertugnen erstellen 2 (Phase 2)<br><br>Frontend: <br>Login-Standorte und verwendete Geräte aufzeigen. Finde heraus, zu welchen Zeiten die meisten Anmeldungen stattfinden und entdecke potenzielle Sicherheitslücken durch Vergleich der Nutzeraktivitäten. Erhalte zudem detaillierte Statistiken zu fehlgeschlagenen Login-Versuchen und häufig genutzten Wiederherstellungsfunktionen, um gezielt Sicherheitsmaßnahmen zu verbessern.<br><br>Backend:<br><br>Für Backend-Auswertungen benötigt man zuverlässige Datenquellen, Filter und Algorithmen zur Berechnung von Metriken. Eine schnelle Datenbank ermöglicht effiziente Verarbeitung, Visualisierungstools wandeln Ergebnisse in Diagramme und Tabellen um. Zugriffsrechte sichern die Daten so entsteht eine präzise und sichere Analysebasis. | AUS-3 |
@ -357,7 +358,7 @@ Mehr Prosa (Unterscheidung Phase 1 & 2)
## Profilverwaltung
| Profil erstellen<br><br>Frontend: <br>Die Profilverwaltung im Frontend für Treffen erlaubt Nutzern, ein individuelles Profil zu erstellen, das ihre Interessen und Präferenzen widerspiegelt. Mit einfachen Eingabefeldern können sie persönliche Informationen und vergangene Veranstaltungen hinzufügen, um passende Treffen zu finden.<br><br>Backend:<br><br>Für die Profilverwaltung im Backend werden Eingabefelder für persönliche Informationen benötigt, die in einer Datenbank gespeichert werden. Ein Algorithmus validiert die Eingaben und stellt sicher, dass alle erforderlichen Daten korrekt erfasst werden. Zugriffsrechte sichern, dass nur autorisierte Nutzer Profile erstellen können, während eine Schnittstelle das Hinzufügen oder Bearbeiten von Profilen ermöglicht. | Pro-1 |
| Profil erstellen <br><br>Frontend: <br>Die Profilverwaltung im Frontend für Treffen erlaubt Nutzern, ein individuelles Profil zu erstellen, das ihre Interessen und Präferenzen widerspiegelt. Mit einfachen Eingabefeldern können sie persönliche Informationen und vergangene Veranstaltungen hinzufügen, um passende Treffen zu finden.<br><br>Backend:<br><br>Für die Profilverwaltung im Backend werden Eingabefelder für persönliche Informationen benötigt, die in einer Datenbank gespeichert werden. Ein Algorithmus validiert die Eingaben und stellt sicher, dass alle erforderlichen Daten korrekt erfasst werden. Zugriffsrechte sichern, dass nur autorisierte Nutzer Profile erstellen können, während eine Schnittstelle das Hinzufügen oder Bearbeiten von Profilen ermöglicht. | Pro-1 |
| --- | --- |
| Profil bearbeiten<br><br>Frontend: <br>Die Profilbearbeitung im Frontend der Profilverwaltung für Treffen ermöglicht es Nutzern, ihre Informationen schnell und unkompliziert zu aktualisieren. Mit intuitiven Eingabefeldern können sie Interessen, persönliche Daten und vergangene Veranstaltungen anpassen, um stets ein aktuelles und relevantes Profil zu präsentieren.<br><br>Backend:<br><br>Für das Bearbeiten von Profilen im Backend werden Editierfunktionen und eine Datenbank benötigt, die die Änderungen speichert. Ein Algorithmus stellt sicher, dass nur gültige Eingaben übernommen werden. Zugriffsrechte kontrollieren, dass nur autorisierte Nutzer ihre eigenen Profile bearbeiten können. Eine benutzerfreundliche Schnittstelle ermöglicht das einfache Aktualisieren der Profilinformationen. | Pro-2 |
| Profil mit LinkedIn automatisch abgleichen lassen<br><br>Frontend: <br>Die Funktion zum automatischen Abgleich des Profils mit LinkedIn im Frontend der Profilverwaltung für Treffen erleichtert Nutzern die Erstellung und Aktualisierung ihrer Informationen. Durch einen einfachen Klick werden relevante Daten wie berufliche Erfahrungen und Interessen nahtlos übernommen, sodass das Profil stets aktuell und ansprechend bleibt.<br><br>Backend:<br><br>Für den automatischen Abgleich mit LinkedIn wird eine API benötigt, die Profilinformationen aus LinkedIn abruft und in die Datenbank überträgt. Ein Algorithmus aktualisiert die Profildaten entsprechend. Zugriffsrechte stellen sicher, dass nur autorisierte Nutzer den Abgleich durchführen können. | Pro-3 |