Skip to content

In diesem Repository wird eine Anwendung entwickelt für den lokalen Test von easy Login ohne Abhängigkeit zum offiziellen Dienst.

License

Notifications You must be signed in to change notification settings

adessoSE/easylogin-test

Repository files navigation

VDG Ticket Generator

Wichtig

Nicht für Produktionsumgebungen geeignet! Nur für lokale Tests.

How to

  1. Docker Image erstellen
  2. Keystore-Datei erstellen
  3. Docker Container starten (Hostport: 8080)
    3.1 Das Programm läuft unter http://localhost:8080/
  4. Keystore-Datei auswählen, Passwörter und Alias eingeben, und anschließend die digitale Signatur auswählen
    Keystore Tab
  5. Ticket ausfüllen
    Keystore Tab
  6. Public Key des Controllers eingeben
    Keystore Tab
  7. Das verschlüsselte Ticket wird in 'Result' angezeigt
    Keystore Tab
    7.1 Mit dem Button 'Refresh' wird das Ticket erneut vom Server generiert. Dies ist besonders hilfreich, wenn ein erstelltes Ticket bereits abgelaufen ist.
    7.2 Das Ticket kann durch Eingabe einer URL und anschließendes Klicken auf 'Send' versendet werden. Wichtig: Die URL muss mit „https://“ beginnen.

Hinweis:

  • "Accepted" bedeutet, dass die Eingabe vom Server erfolgreich akzeptiert wurde
  • "Rejected" bedeutet, dass die Eingabe vom Server abgelehnt wurde
  • Keystore und Public Key werden vom Server validiert
  • Daten des Tickets werden vom Server nicht validiert

Docker

Docker Image erstellen

docker build -t <IMAGE_NAME> .

Docker Container starten

docker run --name <CONTAINER_NAME> -p 8080:8080 -d <IMAGE_NAME>

Alternativ: Start über Docker/Rancher Desktop.
Hostport: 8080

Keystore

Die Keystore-Datei, Keystore Alias und die Passwörter müssen beim Controller hinterlegt sein!

Command

keytool -genkeypair -keystore KEYSTORENAME -storetype JKS -alias KEYSTOREALIAS -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365
  • genkeypair → Erstellt Schlüsselpaar (privater & öffentlicher Schlüssel)
  • keystore → Name der Keystore-Datei
  • storetype → Dateiformat (JKS)
  • alias → Name des Schlüsselpaars
  • keyalg → Verschlüsselungsalgorithmus (nur RSA)
  • keysize → Schlüsselgröße (mindestens 2048)
  • sigalg → Signatur Algorithmus (SHA256withRSA)
  • validity → Gültigkeitszeitraum des Zertifikats in Tagen (Bspw. 365)

Passwort

Passwort der Keystore-Datei festelegen

Keystore-Kennwort eingeben:
Neues Kennwort erneut eingeben:

Zertifikat

Anschließend muss das Zertifikat ausgefüllt werden. Die angegebenen Daten haben keinen Einfluss auf das Endergebnis.

Geben Sie den Distinguished Name ein. Geben Sie einen einzelnen Punkt (.) an, um eine Unterkomponente leer zu lassen, oder drücken Sie die Eingabetaste, um den Standardwert in Klammern zu verwenden.
- Wie lautet Ihr Vor- und Nachname?
  [Unknown]:  [OPTIONAL]
- Wie lautet der Name Ihrer organisatorischen Einheit?
  [Unknown]:  [OPTIONAL]
- Wie lautet der Name Ihrer Organisation?
  [Unknown]:  [OPTIONAL]
- Wie lautet der Name Ihrer Stadt oder Gemeinde?
  [Unknown]:  [OPTIONAL]
- Wie lautet der Name Ihres Bundeslands?
  [Unknown]:  [OPTIONAL]
- Wie lautet der Ländercode (zwei Buchstaben) für diese Einheit?
  [Unknown]:  [OPTIONAL]
 -Ist CN=XXX, OU=XXX, O=XXX, L=XXX, ST=XXX, C=XXX richtig?
  [Nein]: - Mit 'ja' bestätigen -

Passwort vom Schlüsselpaar (Alias)

Passwort für das Schlüsselpaar (Alias) festlegen. Leer lassen, falls das Passwort für die Keystore-Datei und das Passwort für den Keystore-Alias identisch sein sollen.

Schlüsselkennwort für <ALIAS> eingeben
(RETURN, wenn identisch mit Keystore-Kennwort):

Development

Frontend

cd vdg-ticket-frontend
npm install
npm run dev

Backend

cd vdg-ticket-backend
mvn quarkus:dev

Test

cd vdg-ticket-backend
mvn quarkus:test

Aubau eines Tickets

<?xml version="1.0" encoding="UTF-8" ?>
<Ticket>
	<TicketInfo>
		<TicketId>USER_INPUT</TicketId>
		<TargetId>USER_INPUT</TargetId>
		<TargetUserId>USER_INPUT</TargetUserId>
		<IssuerUserId>USER_INPUT</IssuerUserId>
		<UserIPAddress>USER_INPUT</UserIPAddress>
		<AuthLevel>USER_INPUT</AuthLevel>
		<AuthMethod>USER_INPUT</AuthMethod>
		<AuthTimestamp>SET_BY_SYSTEM</AuthTimestamp>
		<IssuerId>USER_INPUT</IssuerId>
		<IssueTimestamp>SET_BY_SYSTEM</IssueTimestamp>
	</TicketInfo>
	<Signature>
		<SignatureValue>HASHWERT_TICKETINFO</SignatureValue>
		<SignatureAlgorithm>SIGNATURE_ALGORITHM</SignatureAlgorithm>
		<KeyInfo>
			<KeyId>KEYSTORE_ALIAS</KeyId>
		</KeyInfo>
	</Signature>
</Ticket>

About

In diesem Repository wird eine Anwendung entwickelt für den lokalen Test von easy Login ohne Abhängigkeit zum offiziellen Dienst.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •