Entwicklertools · JWT Decoder
Die sieben registrierten JWT Ansprüche: iss, sub, aud, exp, nbf, iat und jti
· Hintergrund
jwt Datenformate Authentifizierung
RFC 7519 reserviert sieben Anspruchsnamen mit definierten Bedeutungen und Typen. In diesem Beitrag werden die einzelnen Typen, die dahinter stehenden StringOrURI- und NumericDate-Typen sowie die Koexistenz registrierter, öffentlicher und privater Ansprüche erläutert.
Welche Anspruchsnamen sollte ich verwenden? – die Designfrage, die das Register beantwortet
Die Wahl der Anspruchsnamen ist teilweise eine Interoperabilitätsentscheidung. Durch die Wiederverwendung eines registrierten Namens erhalten Leser und Bibliotheken eine etablierte Bedeutung, während anwendungsspezifische Namen eine lokale Dokumentation erfordern. ToolAcre erkennt in seiner Beschreibungstabelle sieben Kernnamen und lässt andere Ansprüche sichtbar, ohne Semantik zuzuweisen.
Ein bekannter Name ist nicht automatisch vertrauenswürdig. Der Decoder liest jedes Objekt, das das Token enthält, und überprüft niemals seine Signatur. Registriertes Vokabular hilft Menschen bei der Klassifizierung von Daten; Nur ein vertrauenswürdiger Prüfer kann feststellen, dass ein Aussteller den geschützten Wert bereitgestellt hat.
iss und sub werden als Zeichenfolgen angezeigt; Diese Implementierung erzwingt keine StringOrURI-Syntax
`iss` gibt an, von wem das Token ausgegeben wurde, und `sub` gibt an, um wen oder worum es geht. ToolAcre beschreibt beide und zeigt ihre Werte an, aber seine Implementierung validiert keine StringOrURI-Grammatik und vergleicht keines der Felder mit der Dienstkonfiguration.
Ein Prüfer sollte den erwarteten Aussteller an vertrauenswürdiges Schlüsselmaterial binden und den Betreff unter dem Namensraum dieses Ausstellers interpretieren. Durch das Kopieren einer bekannten Emittentenzeichenfolge in eine fabrizierte Nutzlast sieht der Decoder überzeugend aus, ohne dass die Herkunft festgestellt werden muss. Verwenden Sie diese Felder erst nach der kryptografischen Überprüfung.
aud – die vorgesehenen Empfänger, als String oder Array
`aud` beschreibt beabsichtigte Empfänger und kann gemäß den geltenden Tokenregeln als ein Wert oder als Liste dargestellt werden. Die generische Anspruchstabelle von ToolAcre behält Arrays als JSON-Text bei, entscheidet jedoch nicht, ob der aktuelle Dienst darin erscheint.
Zielgruppe ist kontextbezogen. Das gleiche authentifizierte Token kann für eine API geeignet und für eine andere falsch sein. Ein Ressourcenserver benötigt eine erwartete Kennung in einer vertrauenswürdigen Konfiguration und muss eine Nichtübereinstimmung zurückweisen, anstatt das Token definieren zu lassen, wo es akzeptiert werden soll.
exp, nbf und iat – die drei NumericDate-Ansprüche, die einen Token zeitlich binden
`exp`, `nbf` und `iat` sind NumericDate-Ansprüche. ToolAcre behandelt endliche Zahlen als Sekunden seit der Epoche, multipliziert sie mit 1,000 für die Datumsanzeige und beschriftet Ablauf oder nicht vorher relativ zur Browseruhr. Es definiert keinen Spielraum und erzwingt keine Serverakzeptanz.
Ein Ablauf markiert eine beanspruchte Endgrenze und ist kein Beweis dafür, dass der Token jemals gültig war. „Not-before“ markiert eine beanspruchte Startgrenze und „issued-at“ zeichnet eine beanspruchte Erstellungszeit auf. Jedes kann in einer Nutzlast gefälscht werden, daher muss die Zeitberechnung der Signaturüberprüfung in einem vertrauenswürdigen Ablauf folgen.
jti – eine eindeutige Kennung für die Wiedergabeerkennung und Sperrlisten
`jti` ist eine Token-ID. Systeme können eine authentifizierte, entsprechend generierte Kennung für die Wiedergabeverfolgung oder den Sperrstatus verwenden, aber der Anspruch allein stellt keine der beiden Eigenschaften bereit. ToolAcre beschreibt es als Token-ID zur Wiedergabeerkennung und zeigt seinen genauen Wert an.
Eindeutigkeit, Speicherung und Suchverhalten gehören zur Aussteller- und Verifiziererarchitektur. Ein Decoder kann nicht feststellen, ob ein anderer Token die Kennung wiederverwendet hat oder ob sie in einer Sperrliste enthalten ist. Behandeln Sie ihn als möglichen Korrelationswert, bis das umgebende vertrauenswürdige System Beweise liefert.
Registrierte Beschreibungen und anwendungsspezifische Ansprüche in der ToolAcre-Anzeige
Die Implementierung unterscheidet registrierte Namen nur durch erklärenden Text. Jede Payload-Eigenschaft wird weiterhin von `listClaims` zurückgegeben; Unbekannte Namen erhalten eine Nullbeschreibung und werden von der Benutzeroberfläche als anwendungsspezifisch gekennzeichnet. Es konsultiert kein öffentliches Register und verhindert auch keine Kollisionen mit privaten Namen.
Diese Grenze verhindert, dass mehr behauptet wird, als die Quelle beweist. Teams sollten ihre privaten Ansprüche dokumentieren und kollisionssichere Namen wählen, wenn es auf Interoperabilität ankommt. Das Fehlen einer Beschreibung durch den Decoder bedeutet „nicht in dieser lokalen Tabelle mit sieben Namen“, nicht „ungültig“ oder „sicher zu ignorieren“.
Ausgearbeitetes Beispiel – Lesen einer realistischen Nutzlast und Klassifizierung jedes Anspruchs
Betrachten Sie `{"iss":"https://issuer.example","sub":"user-7","aud":["orders"],"exp":1717246800,"nbf":1717243100,"iat":1717243200,"jti":"demo-9","tenant":"north"}`. ToolAcre beschreibt die sieben registrierten Felder und beschriftet `tenant` anwendungsspezifisch und formatiert dabei die drei numerischen Zeiten.
Diese Klassifizierung hilft bei der Überprüfung des Nutzlastdesigns. URL, Betreff, Zielgruppe, Daten, Kennung oder Mandant werden nicht authentifiziert. Ein gefälschter Token kann das Objekt exakt reproduzieren. Geben Sie nur verifizierte Ansprüche in die Autorisierungslogik ein und wenden Sie dann die erwarteten Werte des nutzenden Dienstes an.
Takeaway: Verwenden Sie die registrierten Namen, wenn sie passen – der ToolAcre JWT-Decoder zeigt die Nutzlast an, sodass Sie sehen können, welche Ansprüche ein echter Emittent stellt
Verwenden Sie registrierte Namen, wenn ihre definierte Bedeutung passt, da erkennbares Vokabular unnötige Übersetzungen reduziert. Halten Sie private Felder dokumentiert und minimal. Überladen Sie `sub`, `aud` oder einen Zeitanspruch nicht mit einer anderen lokalen Bedeutung, nur weil der Downstream-Code diesen Schlüssel bereits analysiert.
ToolAcre kann anzeigen, welche Namen ein sicheres Token trägt und wie seine numerischen Ansprüche dargestellt werden. Es kann kein Wert nachgewiesen werden. Das nützliche Ergebnis der Dekodierung ist eine Bestandsaufnahme zur Überprüfung; Das nützliche Ergebnis von Überprüfung und Richtlinie ist eine Entscheidung, und diese bleiben getrennt.