JWT-Authentifizierung

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Eingebettete Webseiten-Lösungen > Authentifizierung >

JWT-Authentifizierung

Eingebettete Webseiten-Lösungen können auch mittels JSON Web Tokens (JWT, empfohlene Aussprache wie Englisch: "jot") authentifiziert werden. Die Verarbeitung der JWT-Authentifizierung erfolgt dabei außerhalb des MobileTogether Server-Authentifizierungssystems. Für einen authentifizierten Benutzer wird ein JWT ausgestellt, welches über die Webseite an MobileTogether Server übergeben wird. Das JWT wird auf dem Server überprüft und außerdem geparst, um anhand dieser Informationen den Benutzer zu ermitteln. Wenn das JWT gültig ist, wird die Kommunikation zwischen der eingebetteten Lösung und dem Server für den im JWT definierten Benutzer fortgesetzt.

 

Im unten gezeigten Diagramm sehen Sie, wie die JWT-Authentifizierung funktioniert.

Click to expand/collapse

 

Beachten Sie die folgenden Punkte:

 

Der Authentifizierungsserver und der (www)-Applikationsserver müssen nicht separat sein.
Es bleibt dem Implementierenden überlassen, zu definieren, in welchem Szenario die eingebettete Webseiten-Lösung verwendet werden soll sowie welches Authentifizierungssystem zur Anwendung kommen soll.
Wenn (bei der erfolgreichen Authentifizierung eines Benutzers) ein JWT erstellt wird, wird ein Parameter, der den Benutzer spezifiziert, definiert. Wenn der so definierte Benutzer mit einem der auf MobileTogether Server konfigurierten Benutzer übereinstimmt, so hängt der Zugriff auf den Server von den für diesen Benutzer konfigurierten Berechtigungen ab. Jeder andere Benutzer wird automatisch in die Liste der konfigurierten Benutzer importiert, jedoch müssen für diesen Benutzer Berechtigungen auf MobileTogether Server konfiguriert werden.
Der Implementierende gibt das Shared Secret oder den Public Key in den MobileTogether Server-Einstellungen ein. Das Shared Secret ist derselbe Zeichenstring, anhand von welchem der Implementierende das JWT auf dem Authentifizierungsserver generiert. Der Public Key ist der Schlüssel, der dem Private Key entspricht, mit dem das JWT verschlüsselt wurde.
Das JWT wird beim ersten Mal, bei dem die Lösung auf MobileTogether Server zugreift, an den IFrame übergeben.
Auf MobileTogether Server wird das Shared Secret oder der Public Key in den MobileTogether Server-Einstellungen verwendet, um das eingehende JWT zu überprüfen.
Nach Überprüfung des eingehenden JWT wird zwischen der Lösung im eingebetteten IFrame und MobileTogether Server eine authentifizierte Kommunikationssitzung eingerichtet.
Der Benutzer für die Sitzung ist der im JWT definierte.

 

Was ist ein JWT?

Ein JWT ist eine Gruppe von Claims (JSON-Eigenschaft-Wert-Paare), die gemeinsam ein JSON-Objekt bilden. Es besteht aus drei Teilen:

 

Header: Besteht aus zwei Eigenschaften: { "alg": "HS256", "typ": "JWT" }. alg ist der zur Verschlüsselung des JWT verwendete Algorithmus.
Payload: Dies ist der Bereich, in dem die zu sendenden Daten gespeichert sind; diese Daten werden als JSON-Eigenschaft-Wert-Paare gespeichert.
Signatur: Die Signatur wird durch Verschlüsselung (i) des Base64Url-kodierten Headers, (ii) des base64Url-kodierten Payload und (iii) eines Secret (oder Private Key) mit dem im Header definierten Algorithmus erstellt:

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret|privateKey)

 

Das endgültige JWT besteht aus drei Teilen. Jeder davon ist base64Url-kodiert und vom nächsten durch einen Punkt getrennt. Nähere Informationen dazu finden Sie auf den Websites openid.net und jwt.io.

 

Symmetrischer Schlüssel und asymmetrische Schlüssel

Ein JWT kann entweder mit Hilfe eines symmetrischen Schlüssels (Shared Secret) oder mit Hilfe von asymmetrischen Schlüsseln (dem Private Key eines Private-Public-Paars) verschlüsselt werden.

 

Symmetrischer Schlüssel: Zur Verschlüsselung (wenn das JWT erstellt wird) und Entschlüsselung (MobileTogether Server überprüft das JWT anhand des Schlüssels) wird derselbe Schlüssel verwendet. Der symmetrische Schlüssel - auch als Shared Secret oder gemeinsames Geheimnis bezeichnet - wird als Einstellung auf MobileTogether Server gespeichert. Nähere Informationen zum Arbeiten mit symmetrischen Schlüssel finden Sie unter Symmetrischer Schlüssel: ein Shared Secret.
Asymmetrische Schlüssel: Unterschiedliche Schlüssel werden für die Verschlüsselung (Private Key) und die Entschlüsselung (Public Key) verwendet. Der Public Key (oder öffentliche Schlüssel) wird als Einstellung auf MobileTogether Server gespeichert, so dass das JWT überprüft werden kann. Informationen zur Verwendung einer asymmetrischen Verschlüsselungsmethode für JWTs finden Sie unter Asymmetrische Schlüssel: der Public Key.

 

Testen des JWT

Sie könnten ein JWT folgendermaßen ausprobieren:

 

1.Erstellen Sie auf der Seite Online JWT Builder of Jamie Kurtz Ihr eigenes JWT. Eine Anleitung dazu finden Sie im Abschnitt Symmetrischer Schlüssel: ein Shared Secret.
2.Überprüfen Sie Ihren Schlüssel auf der jwt.io-Website folgendermaßen: (i) Geben Sie das verschlüsselte JWT in den Bereich Encoded ein; (ii) Geben Sie im Bereich Verify Signature das Secret ein, mit dem Sie das JWT erstellt haben. Der Debugger der Website informiert Sie darüber, dass die Signatur überprüft wurde und gültig ist.

 

Siehe dazu auch das Beispiel JWT-Authentifizierung.

 


© 2019 Altova GmbH