JSON Web Token (JWT)
JSON Web Token (JWT) sind ein kompaktes, URL-sicheres Mittel zum Übertragen von Informationen zwischen Parteien als JSON-Objekt.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypTechnisch
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Missbrauch durch unbefugte Personen.
- Sicherheitslücken durch schwache Schlüssel.
- Fehlkonfigurierte Token können zu Sicherheitsproblemen führen.
- Halten Sie den Schlüssel geheim und sicher.
- Stellen Sie sicher, dass Tokens kurzlebig sind.
- Verwenden Sie Bibliotheken zur JWT-Generierung.
I/O & Ressourcen
- Geheimes Schlüsselmaterial zur Token-Erstellung.
- Benutzerdaten zur Authentifizierung.
- Primäre Anwendungsstrukturen zur JWT-Verwaltung.
- JWT zur Authentifizierung.
- Token-Status nach Validierung.
- Zugriffsrechte basierend auf dem Token.
Beschreibung
JSON Web Token (JWT) ermöglichen die sichere Übertragung von Informationen zwischen verschiedenen Systemen. Sie sind besonders nützlich für die Authentifizierung und Autorisierung in Webanwendungen.
✔Vorteile
- Komprimierte Form der Übertragung.
- Sichere Authentifizierung.
- Einfache Integration in moderne Web-Stacks.
✖Limitationen
- Token können nicht widerrufen werden.
- Die Sicherheit hängt von der Geheimhaltung des Schlüssels ab.
- Größere JWTs können die Größe der Anfragen erhöhen.
Trade-offs
Metriken
- Adoptionsrate
Rate, mit der JWT in bestehenden Anwendungen implementiert sind.
- Anzahl der Sicherheitsvorfälle
Zahl der Sicherheitsvorfälle, die mit JWT in Zusammenhang stehen.
- Durchschnittliche Token-Lebensdauer
Durchschnittliche Lebensdauer von JWT, bevor sie ablaufen.
Beispiele & Implementierungen
Einsatz in einer modernen Webanwendung
JWT werden in einer React-Anwendung für die Authentifizierung verwendet.
Integration mit einer API
JWT wird zur Authentifizierung von API-Aufrufen in einer Backend-Anwendung verwendet.
Verwendung in Microservices
JWT wird verwendet, um sicherzustellen, dass die Dienste ordnungsgemäß miteinander kommunizieren.
Implementierungsschritte
Erstellen Sie einen geheimen Schlüssel.
Implementieren Sie Token-Generierungslogik.
Validieren Sie die erhaltenen Tokens.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Authentifizierungsmethoden.
- Schlechte Token-Management-Praxis.
- Unzureichende Dokumentation.
Bekannte Engpässe
Beispiele für Missbrauch
- Unzureichende Sicherheit des geheimen Schlüssels.
- Token im Frontend persistent speichern.
- Fehlende Token-Validierung.
Typische Fallen
- Komplexität kann zu fehlerhaften Implementierungen führen.
- Übermäßige Verwendung führt zu Sicherheitsproblemen.
- Angemessene Schulung des Teams vernachlässigen.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Muss sicher in der Anwendung verwaltet werden.
- • Erfordert Unterstützung durch alle beteiligten Systeme.
- • Abhängigkeit von der Infrastruktur zur Schlüsselverteilung.