article

Sichere Authentifizierung und Autorisierung mit Zugriffstoken

Zugriffstoken sind digitale Schlüssel, die die Identität eines Benutzers verifizieren und authentifizieren, bevor ihnen der Zugriff auf Ressourcen in verschiedenen Kontexten gewährt wird, z. B. auf Anwendungsprogrammierschnittstellen (APIs), Webanwendungen und Cloud-Dienste. Als Alternative zu herkömmlichen passwortbasierten Systemen dienen Zugriffstoken als Autorisierungsnachweis und ermöglichen eine sichere Kommunikation zwischen Clients und Servern.

Wichtige Bestandteile von Zugriffstoken

Zugriffstoken bestehen aus Header, Nutzlast und Signatur. Diese dienen zusammen dazu, die Zugriffsprivilegien des Benutzers auf Ressourcen zu verifizieren. Der Header enthält Informationen über den Tokentyp und den zu seiner Erstellung verwendeten Algorithmus. Informationen über den Benutzer (z. B. Berechtigungen und Ablaufdaten) sind in der Nutzlast enthalten. Die Signatur enthält die Daten, die der Empfänger benötigt, um die Authentizität des Tokens zu verifizieren. Signaturen von Zugriffstoken werden üblicherweise verschlüsselt (z. B. gehasht), um Missbrauch oder Replikation zu verhindern.

So erhalten Sie einen Zugriffstoken

Zugriffstoken werden durch explizite Grant- oder Refresh-Token des Ressourcenbesitzers ausgestellt. Sie können verwendet werden, um zu einem späteren Zeitpunkt Zugriff zu erhalten, ohne erneut Zugriff durch den Benutzer anfordern zu müssen. Aus Sicherheitsgründen haben Zugriffstoken jedoch eine begrenzte Gültigkeit. Nach Ablauf kann ein Zugriffstoken nicht mehr verwendet werden.

Wo finde ich Zugriffstoken?

Jeder Benutzer, der sich bei einem System oder einer Anwendung anmeldet, verfügt über einen Zugriffstoken, der beim Starten seiner Sitzung und bei der Anmeldung beim Dienst erstellt wird. Jeder Prozess, der im Rahmen einer Benutzersitzung ausgeführt wird, verfügt über eine Kopie des Tokens, der eine sichere Anmeldekennung (SID) zur Identifizierung der aktuellen Sitzung enthält.

Zugriffs- und Aktualisierungstoken können in serverseitigen Sitzungen gespeichert werden, sodass sie für Anforderungen verfügbar sind, die von serverseitigem Code stammen. Dies wird als Backend-für-Frontend-Proxy (BFF) bezeichnet. Anwendungen können dedizierte APIs verwenden, um Zugriffstoken zu speichern, im Speicher zu behalten oder in Cookies zu speichern.

Anwendungen

API-Zugriff

  1. Erlauben es Anwendungen, Token von einem Autorisierungsserver anzufordern und diese Token für den Zugriff auf APIs zu verwenden.
  2. Beschränken den Zugriff auf bestimmte API-Funktionen auf autorisierte Anwendungen, Dienste oder Benutzer.
  3. Sichern API-Endgeräte.

Cloud-Dienste

  1. Kontrollieren den Zugriff auf Ressourcen wie Datenbanken, Speichercontainer und virtuelle Maschinen.
  2. Helfen Cloud-Plattformen, den Zugriff auf ihre Dienste zu verwalten.
  3. Beschränken den Zugriff auf und die Interaktion mit sensiblen Cloud-Ressourcen auf authentifizierte und autorisierte Entitäten.

Föderierte Identitätssysteme

  1. Ermöglichen Benutzern den Zugriff auf Ressourcen über verschiedene Sicherheitsdomänen oder Organisationen hinweg.
  2. Helfen, die Identität und Berechtigungen eines Benutzers in verschiedenen Systemen abzubilden.
  3. Vereinfachen das Zugriffsmanagement bei der Zusammenarbeit mehrerer Organisationen.

Internet der Dinge (IoT)

  1. Wahren die Integrität und den Datenschutz der IoT-Kommunikation.
  2. Beschränken Zugriffs- und Datenübertragungsmöglichkeiten auf autorisierte Geräte.
  3. Sichern die Kommunikation zwischen IoT-Geräten und der Cloud oder anderen Geräten.

Mobile Anwendungen

  1. Authentifizieren und autorisieren Benutzer, ohne ihre Anmeldedaten zu speichern.

Single-Sign-On-Systeme (SSO)

  1. Helfen, die authentifizierte Sitzung eines Benutzers über verschiedene Anwendungen hinweg aufrechtzuerhalten.
  2. Bieten mit einem Satz Anmeldedaten nahtlosen Zugriff auf mehrere Anwendungen oder Dienste.
  3. Reduzieren die Notwendigkeit wiederholter Anmeldungen.

Webauthentifizierung (z. B. OAuth2 und OpenID Connect)

  1. Verwendung in Verbindung mit den Protokollen OAuth2 und OpenID Connect zur Benutzerauthentifizierung und -autorisierung

Bedeutung von Zugriffstokens

Zugriffstokens sind wichtig, da sie dazu beitragen, digitale Ressourcen vor unbefugtem Zugriff zu schützen. Zu den Vorteilen, die diese Bedeutung belegen, gehören Folgende:

Höhere Sicherheit

Zugriffstoken sind eine sicherere Alternative zu Passwörtern, da sie schwerer zu stehlen oder zu knacken sind. Da Zugriffstoken typischerweise zustandslos sind, muss der Server zudem keine Benutzersitzungsinformationen speichern.

Compliance

Token können so eingerichtet werden, dass sie Metadaten zu Einwilligung und Nutzung enthalten. Diese Informationen unterstützen Unternehmen bei der Einhaltung von Compliance-Anforderungen, indem sie eine klare und überprüfbare Möglichkeit bieten, den Zugriff auf sensible Ressourcen zu verwalten und einzuschränken.

Delegierter Zugriff

Zugriffstoken ermöglichen es Drittanbieteranwendungen, Aktionen im Namen eines Benutzers auszuführen, ohne dessen Anmeldeinformationen offenlegen zu müssen. Beispiele hierfür sind die Aktivierung von Anmeldungen über Social-Media-Konten oder die Integration mit Drittanbieterdiensten.

Effizienz

Zugriffstoken reduzieren den Kryptografieaufwand, da nur eine Signatur zum Erhalt des Tokens erstellt werden muss.

Granulare Zugriffskontrolle

Zugriffstoken können so konfiguriert werden, dass die Berechtigungen einer Client-Anwendung eingeschränkt werden, um die unbefugte Offenlegung sensibler Daten oder Ressourcen zu reduzieren.

Interoperabilität

Zugriffstoken ermöglichen die Interoperabilität zwischen verschiedenen Diensten und Anwendungen und ermöglichen so eine nahtlose Integration und den Zugriff auf gemeinsam genutzte Ressourcen in verteilten Umgebungen. In einem API-Ökosystem kann beispielsweise ein Dienst ein Zugriffstoken anfordern, um im Namen eines Benutzers mit einem anderen Dienst zu interagieren, ohne Anmeldedaten weitergeben zu müssen.

Reduzierte Angriffsfläche

Zugriffstoken können so programmiert werden, dass sie nur eine kurze Lebensdauer haben. Dies reduziert das Risiko und die Auswirkungen einer Kompromittierung, da das Zeitfenster für Missbrauch reduziert wird.

Widerrufbarkeit

Wenn ein Zugriffstoken kompromittiert oder nicht mehr benötigt wird, kann er vom Autorisierungsserver widerrufen oder ungültig gemacht werden. Dies erhöht die Sicherheit und die Kontrolle über den Zugriff auf Ressourcen.

Skalierbarkeit

Zugriffstoken ermöglichen eine effizientere Skalierung von Systemen, da der Server den Sitzungsstatus nicht mehr aufrechterhalten muss. Dies ist insbesondere in verteilten Systemen oder Microservices-Architekturen von Vorteil, in denen Dienste Token unabhängig überprüfen können, ohne auf einen zentralen Sitzungsspeicher angewiesen zu sein.

Optimierte Entwicklung

Zugriffstoken vereinfachen das Management von Benutzersitzungen und Berechtigungen in verschiedenen Teilen einer Anwendung. Da sie problemlos in Headern oder Abfrageparametern übergeben werden können, können Entwickler sie für viele verschiedene Anwendungsfälle verwenden, um sicheren Zugriff mit minimalem Aufwand zu ermöglichen.

Arten von Zugriffstoken

Es gibt verschiedene Arten von Zugriffstoken, die in den verschiedenen oben genannten Kontexten verwendet werden. Die Wahl des Zugriffstokentyps ist von einer Reihe von Kriterien abhängig, wie beispielsweise Sicherheitsanforderungen, Interoperabilität und dem spezifischen Anwendungsfall der Anwendung oder des Dienstes.

Unabhängig davon, welche Art von Zugriffstoken verwendet wird, ist es wichtig zu bedenken, dass sie den Zugriff auf sensible Daten ermöglichen und daher dieselben Sicherheitskontrollen erfordern wie andere Zugriffsmethoden.
Häufig verwendete Arten von Zugriffstoken sind die Folgenden.

API-Schlüssel

API-Schlüssel werden zur Identifizierung des aufrufenden Programms oder Benutzers verwendet und können zur Zugriffskontrolle und Nachverfolgung der Nutzung verwendet werden.

Bearer-Token

Bearer-Token sind eine Art Zugriffstoken. Sie sind in sich geschlossen und repräsentieren die der Clientanwendung erteilte Autorisierung.

Bearer-Token enthalten keine Informationen über den Benutzer. Das bedeutet, dass der „Bearer“ (Inhaber) (d. h. derjenige, der das Token besitzt), dieses verwenden kann. Bearer-Token werden häufig bei der HTTP-Authentifizierung verwendet, bei der der Client sie für den Zugriff auf geschützte Ressourcen dem Ressourcenserver im Autorisierungsheader von HTTP-Anfragen vorlegt.

JSON-Web-Tokens (JWT)

JWTs sind ein eigenständiger Zugriffstokentyp, der JSON-basierte (JavaScript Object Notation) Datenstrukturen verwendet, um Informationen zur Authentifizierungssitzung und zu autorisierten Bereichen zu kodieren. Sie ermöglichen Ressourcenservern die Überprüfung ihrer Authentizität und Integrität, ohne mit dem Autorisierungsserver kommunizieren zu müssen. JWTs werden häufig in OpenID Connect für Identitäts- und Zugriffstoken verwendet.

OAuth-Zugriffstoken

OAuth-Zugriffstoken werden im OAuth-Authentifizierungsprotokoll verwendet, um einer Anwendung den Zugriff auf bestimmte Teile der Benutzerdaten zu ermöglichen, ohne dass dessen Passwort erforderlich ist. Diese Token können flexibel für verschiedene Bereiche und Laufzeiten ausgegeben werden.

Referenztoken

Im Gegensatz zu JWTs oder Bearer-Token sind Referenztoken nicht in sich geschlossen. Sie verweisen auf Tokendaten, die auf dem Autorisierungsserver gespeichert sind. Wenn ein Client einem Ressourcenserver ein Referenztoken vorlegt, muss der Ressourcenserver eine separate Anfrage an den Autorisierungsserver senden, um das Token zu validieren und die zugehörigen Tokendaten abzurufen.

Referenztoken bieten zwar zusätzliche Sicherheit und Kontrolle, erfordern jedoch mehr Interaktion zwischen dem Ressourcenserver und dem Autorisierungsserver.

Aktualisierungstoken

Aktualisierungstoken werden in Verbindung mit OAuth-Zugriffstoken verwendet. Ein Client kann Benutzern ein Aktualisierungstoken bereitstellen, wenn die anderen ablaufen, ohne dass eine erneute Authentifizierung erforderlich ist. Aktualisierungstoken werden verwendet, wenn Benutzer über längere Zeiträume kontinuierlichen Zugriff auf Ressourcen benötigen.

Inhalt von Zugriffstoken

Zugriffstoken enthalten Informationen, die der Ressourcenserver benötigt, um den Zugriff auf geschützte Ressourcen zu validieren und zu autorisieren. Der genaue Inhalt eines Zugriffstokens variiert je nach Authentifizierungsprotokoll (z. B. OAuth 2.0, OpenID Connect) und Implementierung, umfasst aber in der Regel die folgenden Informationen.

Funktionsweise von Zugriffstoken

Zugriffstoken verknüpfen die Anmeldedaten eines Benutzers mit seinen Aktionen bei der Interaktion mit einem System. Wenn sich ein Benutzer bei einem System anmeldet, wird ein Zugriffstoken ausgestellt, das Details zu seiner Identität und seinen Berechtigungen enthält und an alle Aktionen des Benutzers im System angehängt wird. Dadurch kann das System überprüfen, ob der Benutzer die Person ist, für die er sich ausgibt, und ob er die Berechtigung hat, die gewünschten Aktionen auszuführen.

Der Zugriffstokenzyklus im Überblick

  1. Autorisierungsanforderung
    Der Client leitet den Benutzer zusammen mit der Client-ID, dem angeforderten Bereich und einer Umleitungs-URI an einen Autorisierungsserver weiter.
  2. Authentifizierung
    Der Benutzer oder die Client-Anwendung authentifiziert sich gegenüber dem Autorisierungsserver oder Identitätsanbieter.
  3. Autorisierung
    Der Autorisierungsserver validiert die Anmeldeinformationen des Benutzers und gewährt Zugriff auf die angeforderten Ressourcen.
  4. Ausgabe von Zugriffstoken
    Der Autorisierungsserver stellt dem authentifizierten Benutzer oder der Clientanwendung einen Zugriffstoken aus, der Informationen über den Benutzer, Berechtigungen und andere Metadaten enthält, die für den Zugriff auf geschützte Ressourcen erforderlich sind.
  5. Darstellung des Zugriffstokens
    Das Zugriffstoken für den Ressourcenserver.
  6. Validierung des Zugriffstokens
    Der Ressourcenserver validiert das Zugriffstoken, um seine Authentizität, Integrität und Gültigkeit sicherzustellen.
  7. Ressourcenzugriff
    Der Ressourcenserver gewährt Zugriff auf die geschützten Ressourcen.
  8. Ablauf und Erneuerung des Zugriffstokens
    Wenn ein Zugriffstoken abläuft, endet die Sitzung oder die Clientanwendung erhält ein neues Zugriffstoken (z. B. ein Aktualisierungstoken), um weiterhin auf geschützte Ressourcen zugreifen zu können.

Widerruf von Zugriffstoken

Ein wichtiges Sicherheitsmerkmal von Zugriffstoken ist die Möglichkeit, sie vor Ablauf ihres Ablaufdatums zu widerrufen. Mögliche Fälle, in denen ein Zugriffstoken widerrufen werden muss, sind beispielsweise, wenn das Token kompromittiert wurde, sich ein Benutzer abmeldet oder sich seine Berechtigungen oder Rollen geändert haben.

Token können auf verschiedene Arten widerrufen werden. OAuth 2.0 gibt einen Sperrendpunkt an, der es Clients ermöglicht, den Autorisierungsserver zu benachrichtigen, ein Token ungültig zu machen. Einige Systeme verwenden Token-Blacklisting, bei dem widerrufene Token zu einer Blacklist hinzugefügt werden, die bei jeder Anfrage überprüft wird.

Benutzer können häufig ihre eigenen Token widerrufen, insbesondere in Anwendungen, die die Anzeige und das Management aktiver Sitzungen ermöglichen. Viele Webdienste ermöglichen es Benutzern beispielsweise, sich von allen Geräten abzumelden, wodurch alle aktiven Token widerrufen werden. In Umgebungen mit API-Gateways kann das Gateway den Token-Widerruf erzwingen, indem es den Authentifizierungsdienst prüft oder eine Widerrufsliste verwendet, um sicherzustellen, dass das Token noch gültig ist.

Unabhängig davon, wie dies geschieht, wird der Zugriff auf Ressourcen sofort gesperrt, wenn ein Zugriffstoken widerrufen wird. Einige Systeme führen eine zentrale Liste widerrufener Token, die bei jeder Anfrage überprüft wird. Anhand dieser Liste lässt sich feststellen, ob ein Zugriffstoken widerrufen wurde und der Zugriff verweigert werden sollte.

Sicherheit

Zugriffstoken müssen angemessen gesichert werden, um die Vertraulichkeit, Integrität und Authentizität der von ihnen unterstützten Authentifizierungs- und Autorisierungsprozesse zu gewährleisten. Die folgenden Sicherheitsmaßnahmen werden häufig zum Schutz von Zugriffstoken eingesetzt:

  1. Binden Sie Zugriffstoken an bestimmte Clientgeräte oder Benutzersitzungen.
  2. Kombinieren Sie Zugriffstoken mit zusätzlichen Authentifizierungsfaktoren wie Passwörtern, Biometrie oder Hardwaretoken.
  3. Konfigurieren Sie Zugriffstoken mit kurzer Lebensdauer und verwenden Sie Aktualisierungstoken für eine längere Nutzung.
  4. Verschlüsseln Sie Zugriffstoken.
  5. Richten Sie Mechanismen zum Widerrufen von Zugriffstoken ein.
  6. Implementieren Sie Protokollierungs-, Monitoring- und Auditing-Mechanismen.
  7. Begrenzen Sie den Umfang der Zugriffstoken, indem Sie nur so viele Berechtigungen erteilen, wie zum Ausführen der erforderlichen Aufgabe erforderlich sind.
  8. Speichern Sie Zugriffstoken sicher.
  9. Übertragen Sie Zugriffstoken über sichere Kanäle (z. B. per HTTPS).
  10. Validieren Sie Token, indem Sie deren Signatur, Aussteller, Zielgruppe und Ablaufzeit überprüfen.

Anwendungsbeispiele für Zugriffstoken

Im Folgenden finden Sie einige gängige Beispiele für die Verwendung von Zugriffstoken.

API-Zugriff

Zugriffstoken werden häufig zur Authentifizierung von Anfragen bei der Interaktion mit RESTful-APIs verwendet. Ein Beispiel hierfür ist, wenn eine mobile App Benutzerdaten von einem Backend-Dienst abrufen muss. Die App fügt in den Anfrageheadern ein Zugriffstoken ein, um zu beweisen, dass die Anfrage von einem authentifizierten Benutzer stammt.

Cloud-Dienste

In Cloud-Umgebungen (z. B. AWS, Azure und GCP) können Zugriffstoken verwendet werden, um Diensten oder Anwendungen temporäre Anmeldedaten zur Verfügung zu stellen. Beispielsweise kann eine EC2-Instanz in AWS Zugriffstoken verwenden, um mit S3-Buckets zu interagieren.

Sichere API-Aufrufe

Ein Beispiel für die Verwendung sicherer API-Aufrufe sind mobile Apps. Diese Anwendungen nutzen häufig Zugriffstoken für die sichere Kommunikation mit Backend-Diensten. So wird sichergestellt, dass nur authentifizierte Benutzer Aktionen wie das Abrufen oder Aktualisieren ihrer Daten ausführen können.

Sitzungsmanagement

JWTs (JSON Web Tokens) können für das Sitzungsmanagement in Webanwendungen verwendet werden. Nach der Anmeldung erhält ein Benutzer ein JWT, das clientseitig (z. B. im lokalen Speicher oder in einem Cookie) gespeichert und bei jeder Anfrage mitgesendet wird, um die Identität des Benutzers zu überprüfen.

Single Sign-On (SSO) (Einmaliges Anmelden)

In Unternehmensumgebungen können SSO-Systeme Zugriffstoken ausstellen, damit sich Benutzer einmal anmelden und auf mehrere Anwendungen zugreifen können, ohne sich für jede Anwendung separat authentifizieren zu müssen.

Zugriff auf Dienste von Drittanbietern

Soziale und andere Konten (z. B. Google oder Facebook) können zur Anmeldung bei Drittanbieteranwendungen verwendet werden. In diesem Fall erhält die Anwendung ein Zugriffstoken, mit dem sie im Namen des Benutzers mit diesen Diensten interagieren kann, ohne dass dieser seine Anmeldeinformationen eingeben muss.

Transaktionsauthentifizierung

Zahlungs-Gateways verwenden häufig Zugriffstoken, um API-Anfragen im Zusammenhang mit der Zahlungsverarbeitung zu authentifizieren und so sicherzustellen, dass nur autorisierte Transaktionen ausgeführt werden.

Bei der Auswahl von Zugriffstokentypen folgt die Form der Funktion

Die Verwendung von Zugriffstoken ermöglicht eine reibungslose Authentifizierung. Zugriffstoken sind ein bewährter Sicherheitsmechanismus für die Autorisierung und Ressourcendelegierung in verteilten Umgebungen. Nehmen Sie sich Zeit, die Anwendungsfälle und Anforderungen zu bewerten, bevor Sie entscheiden, welchen Zugriffstokentyp Sie verwenden möchten.

Datum: 23. Juni 2025Lesezeit: 15 Minuten
Sicherheit