zhangchiqing / nutzerkonto-anbieter

Implementierung eines Anbieters (aka Fachverfahren) am Beispiel des "leistungsabhängigen Bafög Teilerlasses"

Home Page:https://tech4germany.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nutzerkonto Anbieter

Dies ist ein Tech4Germany-Projekt.

Dieses Repository ist eine beispielhafte Implementierung für einen Nutzerkonto-Anbieter (Fachverfahren, Drittanbieter, etc.), um insbesondere die Modularität des Ansatzes auf Architekturebene zu veranschaulichen.

Architektur

Gesamtarchitektur

Modularitat

Um das Nutzerkonto modular zu gestalten, stellen alle Mehrwertdienste und Services erstens APIs bereit und können zweitens unabhängig voneinander in Containern gestartet werden.

Der Authentifizierungs-Prozess läuft wie im folgenden Diagramm ab. Das Session-Management (prototypisch mit Keycloak, also der Keycloak-Server) speichert die Sessions zentral während beim Anbieter-Client nur die Session-ID in Form eines Cookies abgelegt wird. Der Transfer findet selbstverständlich via TLS abgesichert statt.

Architektur der Authentifizierung

Dadurch ist der Code des Anbieters (dieses Repository) unabhängig von der IAM-Komponente (low coupling).

Sicherheit

Um ein gewisse Sicherheit (BSI, 2014) zu erreichen wird die Session-ID für einen angemeldeten Benutzer dazu verwendet, eine auf dem Server gespeicherte Session (inklusive Access-und ID-Tokens, siehe OIDC Standard) mit dem Benutzer in Verbindung zu bringen. Die Tokens werden nach vorgegebenem JWE Standard (RFC 7516) signiert und verschlüsselt, damit im Falle eines erfolgreichen Angriffs auf den Server die Tokens nicht direkt ausgelesen werden können.

Zusätzlich zu Benutzername und Passwort beinhaltet die Authentifizierung aller sicherheitsrelevanten Informationen einen zweiten Faktor, wie zum Beispiel TOTP oder push Token 2FA. Hierbei authentifiziert sich der Server mit Zertifikat und die Anzahl an Versuchen ist zum Schutz gegen Brute-Force-Angriffe limitiert. Des Weiteren sind die Tokens von der IDM-Komponente (in unserem Fall Keycloak) signiert.

Für weitere Details bezüglich Modularität oder Sicherheit kontakieren Sie gerne Tech4Germany.

Requirements

  • Node.js

Setup

2. Setup Nutzerkonto Anbieter (dieses Repository)

  • npm install
  • eine .env Datei im Root-Verzeichnis dieses Projektes mit den folgenden Attributen erstellen
Attribute Description Example
HOST_NUTZERKONTO URL für das Nutzerkonto Bund http://localhost:3000
HOST_NUTZERKONTO_SP URL für den exemplarischen Anbieter http://localhost:3001
  • npm start

3. Setup Keycloak als IAM-Komponente

Um den Prototypen zu testen, ist die Installation des Keycloak Servers eine notwendige Voraussetzung, da er die zentrale IAM-Komponente darstellt. Zusätzlich zur offiziellen Dokumentation ist die Anleitung auf codeburst.io sehr empfehlenswert.

Grundsätzliche Schritte:

  1. Herunterladen des Keycloak Server Images
  2. Entpacken des Images
  3. Erstellen des ersten Benutzers ist mit dem CLI- Tool ./bin/add-user-keycloak.sh
  4. Starten des Keycloak Servers mit ./bin/standalone.sh -b=0.0.0.0
  5. optional; einrichten des SMTP Servers für den Mailversand zur Benachrichtigung von Benutzern: Realm Settings → Email → SMTP Informationen eingeben (z.B. Gmail Server Daten)

About

Implementierung eines Anbieters (aka Fachverfahren) am Beispiel des "leistungsabhängigen Bafög Teilerlasses"

https://tech4germany.org

License:MIT License


Languages

Language:HTML 49.4%Language:JavaScript 33.5%Language:CSS 17.1%