From 9dd8c008e1d1de47dd363ffc46c0d51a61b5fe3f Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 13 Jan 2025 10:04:46 +0000 Subject: [PATCH 1/8] Pflichtenheft: ZUG-1 bearbeitet --- pflichtenheft.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index 37b701f..98e31df 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -137,7 +137,18 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth ## Zugriffsverwaltung -

Benutzername und Passwort Authentifizierung

Frontend:

Benutzername- und Passwort-Authentifizierung auf die Interaktion des Benutzers mit der Weboberfläche. Es geht darum, wie der Benutzer seine Anmeldeinformationen eingibt, wie diese Daten sicher an den Server übermittelt werden und wie der Benutzer nach erfolgreicher Authentifizierung auf die geschützten Teile der Anwendung zugreifen kann.

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

+ +
+

Benutzername und Passwort Authentifizierung

+Im Frontend:

+ +Voraussetzungen für das Frontend =>

  • Ein Backend zur Verarbeitung und Validierung der Anmeldedaten
  • Ein sicherer Mechanismus zur Kommunikation zwischen Frontend und Backend
  • Ein Token-basierter Authentifizierungsansatz zur Verwaltung von Sitzungen
+ +Komponenten Im Frontend =>
  • Das Frontend benötigt ein Formular über (HTML), in dem Benutzer ihre Anmeldeinformationen eingeben können
  • Das Frontend benötigt eine Funktion über Rest API (HTTP), in dem die eingegebenen Daten an das Backend gesendet werden können

+ +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 + +

## Hall of Fame (Phase 2) From b0cc7a5be6a9e9b16a298227e0669cddf3c51924 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 13 Jan 2025 10:46:26 +0000 Subject: [PATCH 2/8] pflichtenheft.md aktualisiert --- pflichtenheft.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index 98e31df..f8a4f1d 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -138,17 +138,23 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth ## Zugriffsverwaltung -
-

Benutzername und Passwort Authentifizierung

-Im Frontend:

+
+

Benutzername und Passwort Authentifizierung +

+Im Frontend: +

+Voraussetzungen für das Frontend => +

    +
  • Ein Backend zur Verarbeitung und Validierung der Anmeldedaten +
  • Ein sicherer Mechanismus zur Kommunikation zwischen Frontend und Backend +
  • Ein Token-basierter Authentifizierungsansatz zur Verwaltung von Sitzungen +
-Voraussetzungen für das Frontend =>
  • Ein Backend zur Verarbeitung und Validierung der Anmeldedaten
  • Ein sicherer Mechanismus zur Kommunikation zwischen Frontend und Backend
  • Ein Token-basierter Authentifizierungsansatz zur Verwaltung von Sitzungen
- -Komponenten Im Frontend =>
  • Das Frontend benötigt ein Formular über (HTML), in dem Benutzer ihre Anmeldeinformationen eingeben können
  • Das Frontend benötigt eine Funktion über Rest API (HTTP), in dem die eingegebenen Daten an das Backend gesendet werden können

+Komponenten fürs Frontend =>

  • Das Frontend benötigt ein Formular über HMTL, in dem Benutzer ihre Anmeldeinformationen eingeben können
  • Das Frontend benötigt eine Funktion über Rest API, in dem die eingegebenen Daten an das Backend gesendet werden können

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 -

+

## Hall of Fame (Phase 2) From b1b5aebee547c6db701d300d2e92b864932c18da Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 27 Jan 2025 08:52:23 +0000 Subject: [PATCH 3/8] pflichtenheft.md aktualisiert --- pflichtenheft.md | 57 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index f8a4f1d..3765c15 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -137,20 +137,57 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth ## Zugriffsverwaltung -
-

Benutzername und Passwort Authentifizierung +

Benutzername und Passwort Authentifizierung

-Im Frontend: +Im Frontend

-Voraussetzungen für das Frontend => -

    -
  • Ein Backend zur Verarbeitung und Validierung der Anmeldedaten -
  • Ein sicherer Mechanismus zur Kommunikation zwischen Frontend und Backend -
  • Ein Token-basierter Authentifizierungsansatz zur Verwaltung von Sitzungen -
-Komponenten fürs Frontend =>
  • Das Frontend benötigt ein Formular über HMTL, in dem Benutzer ihre Anmeldeinformationen eingeben können
  • Das Frontend benötigt eine Funktion über Rest API, in dem die eingegebenen Daten an das Backend gesendet werden können

+Beschreibung: +

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

+ +Voraussetzungen: +

+1. Backend-Anforderungen: + - API-Endpunkte für Authentifizierung (z. B. `/login` und `/register`). + - Mechanismen zur Passwort-Validierung und Token-Generierung (z. B. JWT). + - HTTPS für sichere Datenübertragung. +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). +

+ +Benötigte Komponenten: +

+1. Login-Formular: + - Eingabefelder für Benutzername und Passwort. + - Submit-Button. + - Fehleranzeige bei ungültigen Eingaben oder falschen Daten. +2. HTTP-Client: + - Zum Senden von Authentifizierungsanfragen an das Backend (RestAPI). +3. Token-Management: + - Speicherung von JWTs (z. B. im localStorage oder Cookies). +4. Routing (bei geschützten Bereichen): + - Weiterleitung zu geschützten Seiten nach erfolgreicher Anmeldung. + - Zugangsbeschränkung zu sensiblen Bereichen der App. +

+ +Technologien +

+1. Framework: + - C# +2. HTTP-Anfragen: + - RestAPI +3. Sicherheitsmaßnahmen + - HTTPS +4. Styling: + - Eigenes CSS +5. Token-Handling: + - 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 From e035e56826b8ee52684a43eeed8f89883d752c08 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 27 Jan 2025 10:46:24 +0000 Subject: [PATCH 4/8] ZUG 1 Fertig Zug 1 Fertig --- pflichtenheft.md | 54 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index 3765c15..4016238 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -150,42 +150,42 @@ Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in Voraussetzungen:

-1. Backend-Anforderungen: - - API-Endpunkte für Authentifizierung (z. B. `/login` und `/register`). - - Mechanismen zur Passwort-Validierung und Token-Generierung (z. B. JWT). - - HTTPS für sichere Datenübertragung. -2. Frontend-Anforderungen: - - Formular zur Eingabe von Benutzername und Passwort. - - Möglichkeit zur Verarbeitung und sicheren Übertragung der Eingaben. +1. Backend-Anforderungen:
+ - API-Endpunkte für Authentifizierung (z. B. `/login` und `/register`).
+ - Mechanismen zur Passwort-Validierung und Token-Generierung (z. B. JWT).
+ - HTTPS für sichere Datenübertragung.

+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).

Benötigte Komponenten:

-1. Login-Formular: - - Eingabefelder für Benutzername und Passwort. - - Submit-Button. - - Fehleranzeige bei ungültigen Eingaben oder falschen Daten. -2. HTTP-Client: - - Zum Senden von Authentifizierungsanfragen an das Backend (RestAPI). -3. Token-Management: - - Speicherung von JWTs (z. B. im localStorage oder Cookies). -4. Routing (bei geschützten Bereichen): - - Weiterleitung zu geschützten Seiten nach erfolgreicher Anmeldung. +1. Login-Formular:
+ - Eingabefelder für Benutzername und Passwort.
+ - Submit-Button.
+ - Fehleranzeige bei ungültigen Eingaben oder falschen Daten.

+2. HTTP-Client:
+ - Zum Senden von Authentifizierungsanfragen an das Backend (RestAPI).

+3. Token-Management:
+ - Speicherung von JWTs (z. B. im localStorage oder Cookies).

+4. Routing:
+ - Weiterleitung zu geschützten Seiten nach erfolgreicher Anmeldung. - Zugangsbeschränkung zu sensiblen Bereichen der App.

-Technologien +Technologien:

-1. Framework: - - C# -2. HTTP-Anfragen: - - RestAPI -3. Sicherheitsmaßnahmen - - HTTPS -4. Styling: - - Eigenes CSS -5. Token-Handling: +1. Framework:
+ - C#

+2. HTTP-Anfragen:
+ - RestAPI

+3. Sicherheitsmaßnahmen:
+ - HTTPS

+4. Styling:
+ - Eigenes CSS

+5. Token-Handling:
- JWT

From 20a36434597c9f768c4d2a45a43ccbd63c420f83 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Sun, 9 Feb 2025 17:17:36 +0000 Subject: [PATCH 5/8] 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 - @@ -262,7 +264,9 @@ Die Implementierung von Rollen im Frontend dient der Steuerung von Benutzerzugri 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

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.

@@ -299,7 +303,9 @@ Die Benutzerverwaltung erlaubt Administratoren, Benutzerkonten zu verwalten, ein 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

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.

@@ -336,7 +342,9 @@ In Phase 2 wird die Möglichkeit geschaffen, Benutzern eine Einladung zur Regist 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

Backend:

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

@@ -372,7 +380,9 @@ Die Magic Link Authentifizierung ermöglicht es Benutzern, sich ohne Passwort an 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

Backend:

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

@@ -409,7 +419,9 @@ In Phase 2 wird die Zwei-Faktor-Authentifizierung (2FA) implementiert, um die Si 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

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.

@@ -446,7 +458,9 @@ In Phase 2 wird die OAuth-Authentifizierung implementiert, die es Benutzern erm 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

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.

From 7479079b5b8a8eb2d46f7b416cf351895165eaf9 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 10 Feb 2025 08:00:53 +0000 Subject: [PATCH 8/8] pflichtenheft.md aktualisiert --- pflichtenheft.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index 44e3e05..041f401 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -188,7 +188,7 @@ Diese gelten für alle folgenden Punkte! 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

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.

@@ -227,7 +227,7 @@ Die Passwort-Zurücksetzen-Funktion im Frontend ermöglicht es Benutzern, über 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

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.

@@ -266,7 +266,7 @@ Die Implementierung von Rollen im Frontend dient der Steuerung von Benutzerzugri 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

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.

@@ -305,7 +305,7 @@ Die Benutzerverwaltung erlaubt Administratoren, Benutzerkonten zu verwalten, ein 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

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.

@@ -344,7 +344,7 @@ In Phase 2 wird die Möglichkeit geschaffen, Benutzern eine Einladung zur Regist 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

Backend:

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

@@ -382,7 +382,7 @@ Die Magic Link Authentifizierung ermöglicht es Benutzern, sich ohne Passwort an 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

Backend:

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

@@ -421,7 +421,7 @@ In Phase 2 wird die Zwei-Faktor-Authentifizierung (2FA) implementiert, um die Si 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

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.

@@ -460,7 +460,7 @@ In Phase 2 wird die OAuth-Authentifizierung implementiert, die es Benutzern erm 5. Token-Handling:
- JWT

6. Datenbank:
- - MySQL + - PostgresSQL

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.

-

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

From a3ed9112e9f3af095a1cd85fcd2e53cfd6f338d5 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 10 Feb 2025 07:33:41 +0000 Subject: [PATCH 6/8] pflichtenheft.md aktualisiert --- pflichtenheft.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index 2932dee..c75b506 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -172,7 +172,7 @@ Diese gelten für alle folgenden Punkte! - Zum Senden von Authentifizierungsanfragen an das Backend (RestAPI).

3. Token-Management:
- Speicherung von JWTs (z. B. im localStorage oder Cookies).

-4. Routing:
+4. Routing:
- Weiterleitung zu geschützten Seiten nach erfolgreicher Anmeldung. - Zugangsbeschränkung zu sensiblen Bereichen der App.

From 62012c43b7121716da4e03e66999c75e18441162 Mon Sep 17 00:00:00 2001 From: Amar Mehmedovic Date: Mon, 10 Feb 2025 07:49:26 +0000 Subject: [PATCH 7/8] pflichtenheft.md aktualisiert --- pflichtenheft.md | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/pflichtenheft.md b/pflichtenheft.md index c75b506..44e3e05 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -151,11 +151,9 @@ Die Benutzername- und Passwort-Authentifizierung ermöglicht es Nutzern, sich in Voraussetzungen:

1. Backend-Anforderungen:
- - API-Endpunkte für Authentifizierung (z. B. `/login` und `/register`).
- Mechanismen zur Passwort-Validierung und Token-Generierung (z. B. JWT).
- HTTPS für sichere Datenübertragung.

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

@@ -188,7 +186,9 @@ Diese gelten für alle folgenden Punkte! 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

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.

@@ -225,7 +225,9 @@ Die Passwort-Zurücksetzen-Funktion im Frontend ermöglicht es Benutzern, über 4. Styling:
- Eigenes CSS

5. Token-Handling:
- - JWT + - JWT

+6. Datenbank:
+ - MySQL

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.