Skip to content

Auth-Service

Zuständig für die Authentifizierung und Verwaltung der Rechte der User des Systems.

Der Service stellt auch die Loginmaske zur Verfügung. Dazu wird Freemarker verwendet. Mittels wro4j werden JavaScript Ressource (jquery und Bootstrap) zur Verfügung gestellt. Im Projekt sind zusätzliche Ressourcen im Ordner resources-non-filtered hinterlegt.

Abhängigkeiten

  • Infomanagement-Service

Datenmodell

IMPORTANT

Der Benutzername liegt in der Datenbank nur verschlüsselt vor.

Prozesse

Auswahl Loginmaske

Login

Damit ein Benutzer sich anmelden darf, müssen zum einen die Logindaten entsprechend LDAP korrekt sein. Des Weiteren müssen folgende Regeln beachtet werden:

  1. Ist der Nutzer gesperrt?
  2. Falls der Nutzer gesperrt ist, muss die Sperre abgelaufen sein
  3. darf der Nutzer sich nur innerhalb einer bestimmten Zeitspanne einloggen wird der Zeitraum validiert
  4. erfolgte der Login über eine erlaubte Anwendung (Prüfung der clientID)

NOTE

Ein erfolgreicher Login setzt alle vorherigen Loginversuche zurück

Erstellung der Benutzer

IMPORTANT

Damit Benutzer angelegt werden können muss die definierte Authority vorhanden sein die den Benutzern zugewiesen werden soll.

NOTE

Wird der Service mit dem Profil db-dummydata gestartet werden Testdaten erzeugt, welche die notwendige Authority umfasst. Im regulären Betrieb werden die Authority sowie Permission mittels Skript erzeugt.

Der Service erzeugt für eine Liste an Wahlbezirken eines Wahltermins (wahltagID) Benutzer. Dabei werden der Benutzername und die PIN zufällig erzeugt.

Die Benutzer die zuvor für den Wahltermin vorhanden waren werden gelöscht.

Konfigurationsparameter

Alle Konfigurationsparameter beginnen mit dem Prefix service.config

NameBeschreibungDefault
crypto.encryptionPrefixString vor dem verschlüssten Wert. Auf diese Weise sind verschlüsselte Werte erkennbarENCRYPTED:
crypto.keySchlüssel zum ver- und entschlüsseln
falscheLoginZeitstrafeZeit in Minuten für eine Sperrung10
maxLoginAttemptsMaximale Anzahl an Fehlersuchen bis der Account gesperrt wird.5
clients.infomanagement.basepathURL zum Infomanagement-Servicehttp://localhost:39146
clients.infomanagement.configkey.welcomeMessageSchlüssel für Konfiguration der WillkommensnachrichtWILLKOMMENSTEXT
clients.infomanagement.configkey.fruehesterLoginSchlüssel für Konfiguration des frühesten Zeitpunktes für LoginFRUEHESTE_LOGIN_UHRZEIT
clients.infomanagement.configkey.spaetesterLoginSchlüssel für Konfiguration des spätesten Zeitpunktes für LoginSPAETESTE_LOGIN_UHRZEIT
clients.infomanagement.dateformatFormat des Datums wie es vom Infomanagement-Service kommtdd.MM.yyyy HH:mm
serviceauth.welcomemessage.defaultStandard Willkommensnachricht falls die definierte Willkommensnachricht nicht geladen werden kannWillkommen zur Wahl!
ldap.userDnUsername zur Authentifizierung am LDAP-Server
ldap.userDnPasswordPasswort zur Authentifizierung am LDAP-Server
ldap.contextSourceUrl zum LDAP-Server, z.B. ldaps://my-ldap-server.de:636
ldap.userSearchBaseBasispfad für Suche, z.b. o=myOrg,c=deou=people
ldap.userSearchFilterFilter für Suche, z.B. (uid={0})uid={0}
oauth2.clients.wahllokalgui.idID des Client der Wahllokal-Anwendungwahllokalgui
oauth2.clients.admingui.idID des Client der Admintool-Anwendungadmingui
oauth2.jwk.rsa.init.seedSeed für RSA-Schlüsselpaar. Gleiche Seeds sorgen für gleiche Ergebnisse
rsa.rsa-key-settingEnum (GENERATED_KEY,STATIC_KEY), das bestimmt welcher RSA-Key verwendet werden soll
rsa.public-keyVerwendeter Public-Key
rsa.private-keyVerwendeter Private-Key