Dies ist eine alte Version des Dokuments!


Anmeldung aus Drittsystemen

Zur Anbindung an Drittsysteme kann ein zusätzlicher JWT Endpoint genutzt werden. Hierbei ist es auch möglich, dass die Benutzeraccounts auf Ebene von EDP gar nicht vorhanden und angelegt sind.

Insbesondere bei größeren Organisationen kann dies hilfreich sein, um aus einem zentralen Drittsystem heraus die Anmeldung und Benutzerverwaltung zentral zu steuern.

Dazu muss dieser zunächst innerhalb der lokalen Konfigurationsdatei aktiviert werden. Im Nachfolgenden ist die Konfiguration beschrieben.

Konfiguration

In der edpweb.ini muss folgender Block ergänzt werden:

[JWT External]
Aktiv=1
;Angabe des Secrets für das JWT
Secret=...

Innerhalb des erzeugten JWTs müssen folgende Claims im Payload enthalten sein:

  • sub: Hier wird der Benutzername angegeben, unter dem der Benutzer in EDP angemeldet wird.
  • funktion: Die Funktion definiert den Funktionsnamen, mit dem der Benutzer in EDP Web angemeldet wird.
  • rolle: Hier muss die jeweilige Benutzerrolle angegeben werden, mit der der Benutzer in EDP Web angemeldet wird. Üblicherweise wären das default, abschnitt oder abteilung.
  • ort: Wenn der Benutzer mit der Abteilungsrolle angemeldet wird, muss hier zusätzlich noch das Ortsfeld angegeben werden, also die Filterung des Einsatzzugriffs auf einen bestimmten Bereich.

Die Gültigkeit des JWTs sollte nur wenige Sekunden betragen, da es nur einmalig für die Anmeldung genutzt wird. Die Konfiguration dazu erfolgt auf Ebene des Drittsystems.

Bitte beachten Sie darauf, dass das Secret eine ausreichende Komplexität besitzt.

Aufruf des Endpoints

Wenn der Endpoint in der Konfiguration aktiviert wurde, ist er wie folgt erreichbar:

https://ip-adresse:port/jwt_ext?jwt=...

Anpassung der Zuordnung der Claims

Sollte die Bezeichnung der Claims anderslautend als o.g. sein, so kann in der edpweb.ini zudem unter [JWT External] noch folgendes ergänzt werden:

[JWT External]
Aktiv=1
;Angabe des Secrets für das JWT
Secret=...
;Bezeichnung des Claims für den Benutzernamen
FieldUsername=sub
;Bezeichnung des Claims für die Funktion
FieldFunktion=funktion
;Bezeichnung des Claims für die Benutzerrolle
FieldUserlevel=rolle
;Bezeichnung des Claims für das Ortsfeld (benötigt bei der Benutzerrolle abteilung)
FieldOrt=ort