From 20a36434597c9f768c4d2a45a43ccbd63c420f83 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Sun, 9 Feb 2025 17:17:36 +0000 Subject: [PATCH] pflichtenheft.md aktualisiert --- pflichtenheft.md | 272 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 267 insertions(+), 5 deletions(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index 4016238..2932dee 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -137,8 +137,8 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth ## Zugriffsverwaltung -
-

Benutzername und Passwort Authentifizierung + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Benutzername und Passwort Authentifizierung

Im Frontend

@@ -157,7 +157,9 @@ Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in 2. Frontend-Anforderungen:
- Formular zur Eingabe von Benutzername und Passwort.
- Möglichkeit zur Verarbeitung und sicheren Übertragung der Eingaben.
- - Mechanismus zur Speicherung von Authentifizierungsdaten (z. B. Tokens). + - Mechanismus zur Speicherung von Authentifizierungsdaten (z. B. Tokens).
+
+Diese gelten für alle folgenden Punkte!

Benötigte Komponenten: @@ -178,7 +180,7 @@ Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in Technologien:

1. Framework:
- - C#

+ - C#, HTML

2. HTTP-Anfragen:
- RestAPI

3. Sicherheitsmaßnahmen:
@@ -189,7 +191,267 @@ Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in - JWT

-Backend:

Überprüft die empfangenen Anmeldedaten, in dem er nach vorhandenen Benutzernamen sucht. Anschließend wird das eingegebene Passwort mit den Daten in der Datenbank überprüft.

ZUG-1

Passwort zurücksetzen

Frontend:

Das Zurücksetzen des Passworts im Frontend einer Anwendung ermöglicht es den Benutzern, ihr Passwort zu ändern, falls sie es vergessen haben oder aus anderen Gründen ein neues Passwort festlegen möchten.

Backend:

Das neu festgelegte Passwort überschreibt den dazugehörigen Datenbankeintrag. Der Link zum Passwortreset, sofern man sich ganz aus der Applikation ausgesperrt hat, wird per E-Mail zugestellt.

ZUG-2

Rollen

Frontend:

Verwaltung von Benutzerrechten und Zugriffssteuerung innerhalb einer Webanwendung. In einer typischen Anwendung können Benutzer unterschiedliche Rollen haben, die bestimmte Berechtigungen definieren. Diese Rollen beeinflussen, welche Teile der Anwendung für den Benutzer sichtbar sind oder welche Aktionen er ausführen darf.

Backend:

Die Rollen erlauben es Benutzern verschiedene Berechtigungen zu erlangen. Hierfür muss im Backend ein Konzept zur Verteilung und Überprüfung von Rollen implementiert werden.

ZUG-3

Benutzerverwaltung (für Admins)

Frontend:

Die Benutzerverwaltung für Administratoren in einer Webanwendung bezieht sich auf die Funktionen, die es Administratoren ermöglichen, Benutzerkonten zu erstellen, zu bearbeiten, zu löschen und deren Berechtigungen zu verwalten.

Backend:

Alle Einträge, die in der Weboberfläche (Admin-Bereich) geändert werden, werden übers Backend in der DB gespeichert, hier muss man ganz Besonders auf die Rechteverteilung aufpassen, dass keine ungewollten Änderungen von dritten eingetragen werden.

ZUG-4

Einladung an die EDU-Adresse (Phase 2)

Frontend:

Im Frontend können Benutzer Einladungen an E-Mail-Adressen versenden, indem sie eine Adresse in ein Eingabefeld eingeben und auf „Einladen“ klicken. Die Anwendung überprüft die E-Mail-Adresse und sendet sie dann an das Backend, das eine Einladung generiert und per E-Mail verschickt.

Backend:

Es werden alle nötigen Schritte für die Erstellung einer Einladung durchgeführt, damit diese dann per E-Mail versendet werden kann.

ZUG-5

Magic Link Authentifizierung

Frontend:

Die Magic Link Authentifizierung ist eine Methode der Benutzeranmeldung, bei der anstelle eines Passworts ein einmaliger Login-Link an die E-Mail-Adresse des Benutzers gesendet wird. Wenn der Benutzer auf diesen Link klickt, wird er automatisch und sicher in die Anwendung eingeloggt.

Backend:

Ein potenzieller Benutzer bekommt per E-Mail einen Link zugesendet, womit er sich authentifizieren kann.

ZUG-6

2FA Authentifizierung (Phase 2)

Frontend:

  • Erste Anmeldung: Der Benutzer gibt seinen Benutzernamen und sein Passwort im Frontend ein.
  • 2FA-Code-Anforderung: Nach erfolgreicher Passworteingabe fordert die Anwendung einen zweiten Faktor an, z. B. einen 6-stelligen Code, der per SMS, E-Mail oder einer Authenticator-App (z. B. Google Authenticator) generiert wird.
  • Code-Eingabe: Der Benutzer gibt den Code im Frontend ein.
  • Verifizierung: Das Frontend sendet den Code zur Verifizierung an das Backend.
  • Zugriff gewähren: Bei korrekter Codeeingabe erhält der Benutzer Zugriff auf die Anwendung.

Backend:

Nach erfolgreicher Eingabe der Anmeldedaten wird über eine andere Kommunikationsoberfläche ein Code übermittelt auf einem anderen Gerät generiert, der wiederum eingegeben werden muss, um seine Identität zu bestätigen.

ZUG-7

OAuth (Phase 2)

Frontend:

  • Anmeldelink: Der Benutzer klickt auf einen Login-Button, und das Frontend leitet ihn zur OAuth-Provider-Seite (z. B. Google) weiter.
  • Autorisierung: Der Benutzer meldet sich an und erlaubt der Anwendung Zugriff auf bestimmte Daten.
  • Token-Erhalt: Der OAuth-Provider leitet den Benutzer zurück zur Anwendung mit einem Access Token in der URL.
  • API-Zugriff: Das Frontend speichert das Token (meist im Speicher des Browsers) und verwendet es, um direkt auf API-Ressourcen zuzugreifen.

Backend:

Authentifizierung mittels LinkedIn Account. Hierfür muss im Backend ein Mapping geführt werden, welcher LinkedIn Account, zu welchem von unseren Accounts gehört. In einer weiteren Ausbaustufe kann man vielleicht gleich das ganze Profil von LinkedIn mit dem eigenen Abgleichen.

ZUG-8 +Backend:

Überprüft die empfangenen Anmeldedaten, in dem er nach vorhandenen Benutzernamen sucht. Anschließend wird das eingegebene Passwort mit den Daten in der Datenbank überprüft.

+ +

ZUG-1

Passwort zurücksetzen +

+Im Frontend +

+ +Beschreibung: +

+Die Passwort-Zurücksetzen-Funktion im Frontend ermöglicht es Benutzern, über eine Benutzeroberfläche einen Token-basierten Prozess zur Passwortänderung zu starten. +

+ +Benötigte Komponenten: +

+1. Eingabefeld für die E-Mail-Adresse.

+2. Formular zur Eingabe des neuen Passworts nach Token-Bestätigung.

+3. Fehler- und Erfolgsmeldungen zur Benutzerführung. +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +

Backend:

Das neu festgelegte Passwort überschreibt den dazugehörigen Datenbankeintrag. Der Link zum Passwortreset, sofern man sich ganz aus der Applikation ausgesperrt hat, wird per E-Mail zugestellt.

ZUG-2

Rollen +

+Im Frontend +

+ +Beschreibung: +

+Die Implementierung von Rollen im Frontend dient der Steuerung von Benutzerzugriffen und Funktionen basierend auf deren Berechtigungen. Rollen legen fest, welche Inhalte und Aktionen für bestimmte Benutzergruppen sichtbar oder ausführbar sind.  +

+ +Benötigte Komponenten: +

+1. Rollenbasierte Navigation

+2. Zugriffskontroll-Guard

+3. UI-Elemente basierend auf Benutzerrolle +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +Backend:

Die Rollen erlauben es Benutzern verschiedene Berechtigungen zu erlangen. Hierfür muss im Backend ein Konzept zur Verteilung und Überprüfung von Rollen implementiert werden.

ZUG-3

Benutzerverwaltung (für Admins) +

+Im Frontend +

+ +Beschreibung: +

+Die Benutzerverwaltung erlaubt Administratoren, Benutzerkonten zu verwalten, einschließlich Erstellung, Bearbeitung, Aktivierung/Deaktivierung und Löschung von Benutzern sowie Zuweisung von Rollen und Berechtigungen. +

+ +Benötigte Komponenten: +

+1. Liste der Benutzer mit Rollen und Status

+2. Buttons zum Bearbeiten und Löschen von Benutzern

+3. Such- und Filterfunktionen für Benutzer +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +Backend:

Alle Einträge, die in der Weboberfläche (Admin-Bereich) geändert werden, werden übers Backend in der DB gespeichert, hier muss man ganz Besonders auf die Rechteverteilung aufpassen, dass keine ungewollten Änderungen von dritten eingetragen werden.

ZUG-4

Einladung an die EDU-Adresse (Phase 2) +

+Im Frontend +

+ +Beschreibung: +

+In Phase 2 wird die Möglichkeit geschaffen, Benutzern eine Einladung zur Registrierung oder Teilnahme über eine EDU-E-Mail-Adresse zu senden. Diese Einladung erfolgt in Form einer E-Mail, die den Benutzer zur Anmeldung auf der Plattform einlädt. +

+ +Benötigte Komponenten: +

+1. Eingabefeld für die EDU-E-Mail-Adresse

+2. Button zum Versenden der Einladung

+3. Bestätigungs- und Fehlermeldungen für den Versand +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +Backend:

Es werden alle nötigen Schritte für die Erstellung einer Einladung durchgeführt, damit diese dann per E-Mail versendet werden kann.

ZUG-5

Magic Link Authentifizierung +

+Im Frontend +

+ +Beschreibung: +

+Die Magic Link Authentifizierung ermöglicht es Benutzern, sich ohne Passwort anzumelden, indem sie auf einen Link klicken, der ihnen per E-Mail zugeschickt wird. Dieser Link ist temporär und führt den Benutzer direkt zur Anwendung, wenn er gültig ist.  +

+ +Benötigte Komponenten: +

+1. Eingabefeld für die E-Mail-Adresse

+2. Button zum Anfordern des Magic Links

+3. Weiterleitung zur Bestätigungsseite nach Klick auf den Magic Link +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +Backend:

Ein potenzieller Benutzer bekommt per E-Mail einen Link zugesendet, womit er sich authentifizieren kann.

ZUG-6

2FA Authentifizierung (Phase 2) +

+Im Frontend +

+ +Beschreibung: +

+In Phase 2 wird die Zwei-Faktor-Authentifizierung (2FA) implementiert, um die Sicherheit des Benutzerkontos zu erhöhen. Nach der Eingabe des Benutzernamens und Passworts wird ein zweiter Authentifizierungsfaktor benötigt, wie ein einmaliger Code, der an das Handy des Benutzers gesendet wird. +

+ +Benötigte Komponenten: +

+1. Eingabefeld für den OTP (One-Time-Password)

+2. Button zur Bestätigung des OTPs

+3. Fehler- und Erfolgsmeldungen für die OTP-Verifizierung +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +Backend:

Nach erfolgreicher Eingabe der Anmeldedaten wird über eine andere Kommunikationsoberfläche ein Code übermittelt auf einem anderen Gerät generiert, der wiederum eingegeben werden muss, um seine Identität zu bestätigen.

ZUG-7

OAuth (Phase 2) +

+Im Frontend +

+ +Beschreibung: +

+In Phase 2 wird die OAuth-Authentifizierung implementiert, die es Benutzern ermöglicht, sich über Drittanbieter wie Google, Facebook oder andere Plattformen anzumelden. Dabei wird der Benutzer direkt zu einer externen OAuth-Plattform weitergeleitet, um sich zu authentifizieren, und anschließend wieder zurück zur Anwendung.  +

+ +Benötigte Komponenten: +

+1. Button für die Auswahl des OAuth-Anbieters (z. B. Google, Facebook)

+2. Weiterleitung zur OAuth-Anmeldeseite des Anbieters

+3. Empfang und Verarbeitung des Tokens nach erfolgreicher Anmeldung +

+ +Technologien: +

+1. Framework:
+ - C#, HTML

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
+ - JWT +

+ +Backend:

Authentifizierung mittels LinkedIn Account. Hierfür muss im Backend ein Mapping geführt werden, welcher LinkedIn Account, zu welchem von unseren Accounts gehört. In einer weiteren Ausbaustufe kann man vielleicht gleich das ganze Profil von LinkedIn mit dem eigenen Abgleichen.

ZUG-8