miniOrange-Logo

Produkte

Plugins

AnzeigenPreise

Ressourcen

Firma

Was ist JWT (JSON Web Token)? Wie funktioniert die JWT-Authentifizierung?

Was ist JWT (JSON Web Token)? JWT oder JSON Web Token ist ein offener Standard zum sicheren Austausch von Informationen zwischen zwei Parteien – einem Client und einem Server.

Aktualisiert am: 31. Oktober 2023

Was ist JWT (JSON Web Token)?

JWT oder JSON Web Token ist ein offener Standard, der zum sicheren Austausch von Informationen zwischen zwei Parteien – einem Client und einem Server – verwendet wird. In den meisten Fällen handelt es sich um ein codiertes JSON, das eine Reihe von Ansprüchen und eine Signatur enthält. Es wird normalerweise im Kontext anderer Authentifizierungsmechanismen wie OAuth und OpenID verwendet, um benutzerbezogene Informationen auszutauschen. Es ist auch eine beliebte Methode zur Authentifizierung/Autorisierung von Benutzern in einer Microservice-Architektur.

Die JWT-Authentifizierung ist ein tokenbasierter, zustandsloser Authentifizierungsmechanismus. Sie wird häufig als clientseitige, zustandslose Sitzung verwendet. Dies bedeutet, dass der Server nicht vollständig auf einen Datenspeicher (oder eine Datenbank) angewiesen ist, um Sitzungsinformationen zu speichern.

JWTs können verschlüsselt werden, sind aber normalerweise codiert und signiert. Wir konzentrieren uns auf signierte JWTs. Der Zweck von signierten JWTs besteht nicht darin, die Daten zu verbergen, sondern ihre Authentizität sicherzustellen. Aus diesem Grund wird dringend empfohlen, HTTPS mit signierten JWTs zu verwenden.

Struktur von JWT

Die JWT-Struktur ist in drei Teile unterteilt: Header, Payload, Signatur & sind durch einen Punkt (.) voneinander getrennt und folgen der folgenden Struktur:

JSON Web Token(JWT)-Struktur

  • Kopfzeile
    Der Header besteht aus zwei Teilen:
  1. Der verwendete Signaturalgorithmus
  2. Der Tokentyp, in diesem Fall meist „JWT“
  • Nutzlast Die Nutzlast enthält normalerweise die Ansprüche (Benutzerattribute) und zusätzliche Daten wie Aussteller, Ablaufzeit und Zielgruppe.
  • Signature
    Dies ist normalerweise ein Hash der Header- und Payload-Abschnitte des JWT. Der zum Erstellen der Signatur verwendete Algorithmus ist derselbe Algorithmus, der im Header-Abschnitt des JWT erwähnt wird. Die Signatur wird verwendet, um zu bestätigen, dass das JWT-Token während der Übertragung nicht modifiziert oder geändert wurde. Sie kann auch verwendet werden, um den Absender zu bestätigen.

Der Header- und Payload-Abschnitt des JWT ist immer Base64-codiert.

Wie funktioniert die JWT-Authentifizierung? Wann wird die JWT-Authentifizierung verwendet?

Wenn es um API-Authentifizierung und Server-zu-Server-Autorisierung geht, ist JSON Web Token (JWT) eine besonders nützliche Technologie. Im Hinblick auf Single Sign-On (SSO) bedeutet es, dass ein Dienstanbieter vertrauenswürdige Informationen vom Authentifizierungsserver erhalten kann.

Indem der Dienstanbieter einen geheimen Schlüssel mit dem Identitätsanbieter teilt, kann er einen Teil eines empfangenen Tokens hashen und mit der Signatur des Tokens vergleichen. Wenn dieses Ergebnis nun mit der Signatur übereinstimmt, weiß der Dienstanbieter, dass die bereitgestellten Informationen von der anderen Entität stammen, die den Schlüssel besitzt.

Der folgende Workflow erläutert den Authentifizierungsablauf:

JSON Web Token (JWT)-Authentifizierungs-Workflow

  1. Benutzeranmeldung mit Benutzername und Passwort.
  2. Der Authentifizierungsserver überprüft die Anmeldeinformationen und gibt ein mit einem privaten Schlüssel signiertes JWT aus.
  3. In Zukunft wird der Client das JWT verwenden, um auf geschützte Ressourcen zuzugreifen, indem er das JWT im HTTP-Autorisierungsheader übergibt.
  4. Anschließend überprüft der Ressourcenserver anhand des öffentlichen Schlüssels die Authentizität des Tokens.

Der Identitätsanbieter generiert eine JWT-zertifizierte Benutzeridentität und der Ressourcenserver dekodiert und überprüft die Authentizität des Tokens mithilfe des öffentlichen Schlüssels.

Da die Token für die Autorisierung und Authentifizierung bei zukünftigen Anfragen und API-Aufrufen verwendet werden, muss große Sorgfalt darauf verwendet werden, Sicherheitsprobleme zu vermeiden. Diese Token sollten nicht in öffentlich zugänglichen Bereichen wie dem lokalen Speicher des Browsers oder Cookies gespeichert werden. Falls es keine andere Möglichkeit gibt, sollte die Nutzlast verschlüsselt werden.

So funktioniert JWT Single Sign-On (SSO) für mehrere Web-Apps

Mit Single Sign-On (SSO) können Sie Benutzer in Ihren Systemen authentifizieren und anschließend Anwendungen darüber informieren, dass der Benutzer authentifiziert wurde. Bei erfolgreicher Authentifizierung wird ein JWT-Token generiert und zurückgegeben, das von der App zum Erstellen einer Benutzersitzung verwendet werden kann. Das Token wird bei der Anmeldung automatisch mit dem IDP verifiziert. Der Benutzer kann dann auf die Apps zugreifen, ohne aufgefordert zu werden, separate Anmeldeinformationen einzugeben.

Dieser Sicherheitsmechanismus ermöglicht es Anwendungen, den Anmeldeanforderungen zu vertrauen, die sie von den Systemen erhalten. Darüber hinaus gewähren diese Apps nur den Benutzern Zugriff, die von Ihnen/dem Administrator authentifiziert wurden. Daher basiert Single Sign-On (SSO) auf JSON Web Token (JWT), um den Austausch von Benutzerauthentifizierungsdaten zu sichern. Bei der Speicherung und Verwaltung dieses Tokens ist große Sorgfalt geboten.

miniOrange JWT-Authentifizierung für Apps, die keine Standard-SSO-Protokolle unterstützen

Anwendungsfall: Erstellen Sie ein benutzerdefiniertes SSO zwischen zwei bestehenden und unabhängigen Websites mit jeweils eigener Benutzerdatenbank.

Mit miniOrangekönnen Sie sich von vorhandenen Benutzerspeichern und Identitätsanbietern aus mit Protokollen wie SAML, OAuth OpenID und SSO auf Websites authentifizieren, die nur JWT-Token unterstützen. Ja, Sie haben richtig gehört. miniOrange bietet Single Sign-On (SSO) für JSON Web Token (JWT)-AppsMit dieser Lösung können Sie Einmaliges Anmelden (SSO) in Ihre Anwendungen (z. B. vorhandene oder unabhängige), die SSO-Standardprotokolle (wie SAML 2.0 usw.) nicht unterstützen.

Dies geschieht mithilfe von JSON Web Token (JWT)-Tokens und kann problemlos in Ihre Anwendung integriert werden, die in einem beliebigen Framework oder einer beliebigen Sprache erstellt wurde. Auf diese Weise können Sie SSO für jede mobile App, clientseitige Apps und statische Websites aktivieren, die keine SSO-Standardprotokolle unterstützen und auf Plattformen wie React.js, Firebase, Cordova, Angular.js usw. basieren.

MiniOrange-Integrationsfluss mit JWT-Token

 

miniOrange macht es Ihnen leicht, SSO für Ihre Anwendung in einem einfachen 3-Schritte-Prozess zu aktivieren. Alles, was Sie tun müssen, ist:

  1. Betten Sie ein einfaches Skript in Ihre Site/App ein
  2. Konfigurieren Sie Ihren Identitätsanbieter/Benutzerspeicher in miniOrange (optional)
  3. Hinzufügen einer JWT-App

 

Das ist es! Sie können wählen, ob Sie Benutzer in miniOrange verwalten oder einen externen Identitätsanbieter/Benutzerspeicher auswählen möchten. Sie können sogar MFA zusätzlich zu SSO mit nur einer Konfigurationsänderung aktivieren, ohne dass weitere Skriptänderungen oder Codierung erforderlich sind.

 

 

Testen Sie die JWT SSO-Lösung von miniOrange für die angesagtesten Apps:

 

 

Weitere hilfreiche Links:

Profilbild des Autors

miniOrange

Autorin

Hinterlasse einen Kommentar

    Klicken Sie auf die Schaltfläche „Kontakt“.