Die tokenbasierte Authentifizierung ist eine Möglichkeit, die Identität eines Nutzers oder Geräts zu bestätigen. Dabei wird überprüft, ob die betreffende Person ein zuvor ausgegebenes Token besitzt.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Was ist Authentifizierung?
Was ist OAuth?
Was ist SAML?
Zwei-Faktor-Authentifizierung
Gegenseitige Authentifizierung
Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!
Link zum Artikel kopieren
Bei der tokenbasierten Authentifizierung wird die Identität durch die Überprüfung eines Tokens verifiziert. In der Zugriffsverwaltung verwenden Server die Token-Authentifizierung, um die Identität eines Nutzers, einer API, eines Computers oder eines anderen Servers zu überprüfen.
Ein Token ist ein symbolischer Gegenstand, der von einer vertrauenswürdigen Quelle ausgestellt wird – vergleichen Sie dies mit dem Ausweis von Strafverfolgungsbeamten, der ihre Autorität legitimiert. Token können entweder physisch (wie ein USB-Stick) oder digital (eine computergenerierte Nachricht oder digitale Signatur) sein.
Die tokenbasierte Authentifizierung kann sich auf eine Reihe verschiedener Verfahren beziehen:
Die Authentifizierung mit einem physischen Token erfolgt in der Regel während des Anmeldevorgangs des Nutzers. Der Nutzer muss nachweisen, dass er einen Gegenstand besitzt, den sonst niemand hat. Dies kann durch die Eingabe eines Codes geschehen, der auf dem Gegenstand angezeigt wird, durch das Verbinden des Gegenstands mit einem Gerät über USB, durch das Verbinden des Gegenstands über Bluetooth oder durch verschiedene andere Methoden. Ähnlich wie die Eingabe eines Passworts beweist, dass der Nutzer über ein Wissen verfügt, das sonst niemand hat, beweist die Verwendung eines Tokens, dass ein Nutzer einen Gegenstand besitzt, den nur er hat.
Es gibt zwei Arten von Token, die für diese Art der Authentifizierung verwendet werden: Soft Token und Hard Token.
Ein Web-Token ist digital und kein physischer Gegenstand. Es handelt sich um eine Nachricht, die von einem Server an einen Client gesendet und vom Client vorübergehend gespeichert wird. Der Client fügt eine Kopie des Tokens in nachfolgende Anfragen an den Server ein, um den Authentifizierungsstatus des Clients zu bestätigen.
Während bei der Authentifizierung mit physischen Token die Identität während des Anmeldevorgangs überprüft wird, werden Web-Tokens als Ergebnis einer erfolgreichen Anmeldung ausgegeben. Sie halten die eingeloggte Sitzung aktiv.
Die Verwendung von Web-Tokens für Nutzersitzungen ist jedoch nicht immer ideal. Viele Entwickler befürworten stattdessen die Verwendung von Cookies. Web-Tokens eignen sich besser für die Authentifizierung von API-Endpunkten oder zur Validierung einer Verbindung zwischen Servern statt zwischen Server und Client.
In der Webentwicklung bezieht sich der Begriff „Web Token“ fast immer auf JSON Web Token. JSON Web Token (JWT) ist ein Standard für die Erstellung digital signierter Web-Tokens, die JavaScript Object Notation (JSON) Daten enthalten. Ein Server erstellt ein Token, das die Identität des Kunden nachweist, und sendet es an den Kunden. JWT verwendet digitale Signaturen, um zu beweisen, dass das Token legitim ist.
JWTs bestehen aus drei Komponenten:
JWTs werden manchmal verwendet, um Nutzer zu authentifizieren, sobald sie sich bei einer Webanwendung angemeldet haben. Allerdings eignen sich auch Cookies für diesen Zweck.
Ein Cookie ist eine kleine Datendatei, die ein Server an einen Client sendet. Wenn sich ein Nutzer bei einer Webanwendung anmeldet, erzeugt der Server ein Cookie und sendet es an das Client-Gerät (in der Regel der Computer oder das Smartphone des Nutzers). Das Client-Gerät speichert das Cookie im Cache des Browsers und fügt eine Kopie des Cookies in zukünftige Anfragen an den Server ein, ähnlich wie JWTs verwendet werden können. Sobald sich der Nutzer abmeldet, löscht der Browser das Cookie.
Cookies haben im Vergleich zu JWTs eine viel geringere Dateigröße, da JWTs neben der Nutzlast auch Header und digitale Signaturen enthalten. Im Gegensatz dazu enthält das Cookie nur die Nutzlast. Dadurch sind sie in Bezug auf die Web-Performance und die Bandbreite wesentlich effizienter.
JWTs sind nicht für die Performance optimiert, da sie digitale Signaturen enthalten, die sicherstellen, dass ihr Inhalt nicht manipuliert wurde. Aber wenn eine Webanwendung HTTPS verwendet (was sie tun sollte), sollte ein Cookie ohnehin fälschungssicher sein. HTTPS verschlüsselt und signiert das Cookie zusammen mit allen anderen HTTP-Daten, die zwischen Client und Server ausgetauscht werden, und Angreifer sollten nicht in der Lage sein, es zu fälschen oder während der Übertragung abzufangen, es sei denn, sie führen einen On-Path-Angriff durch.
JWTs sind besser für APIs und Server-zu-Server-Verbindungen geeignet. Solche Anwendungen müssen nicht so stark skaliert werden: Eine Webanwendung mag eine Million Nutzer haben, aber sie wird nicht eine Million API-Verbindungen haben. Dadurch werden die möglichen Auswirkungen auf Performance und Bandbreite reduziert. Andere Authentifizierungsmethoden, wie mutual TLS, sind jedoch manchmal effizienter für APIs – erfahren Sie mehr über mutual TLS.