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