Deutsch

Entwicklertools · JWT Decoder

ID-Token vs. Zugriffstoken: Warum ein OpenID Connect JWT kein API-Schlüssel ist

· Hintergrund

jwt oauth Authentifizierung

ID und Zugriffstokens werden an verschiedene Verbraucher weitergeleitet
Original-ToolAcre-Vektorillustration

Bei beiden handelt es sich möglicherweise um JWTs desselben Anbieters, sie beantworten jedoch unterschiedliche Fragen. In diesem Beitrag wird erklärt, was ein ID-Token und ein Zugriffstoken jeweils enthalten, wer sie nutzen sollte und wie man sie durch Dekodierung unterscheiden kann.

Die API lehnt ein Token ab, das vollkommen gültig aussieht – weil es nie für die API bestimmt war

Eine API kann ein wohlgeformtes, korrekt signiertes Token ablehnen, weil diese Anmeldeinformationen für einen anderen Verbraucher und Zweck ausgestellt wurden. „Es ist ein JWT“ beschreibt ein mögliches Format, nicht die Erlaubnis, es überall hin zu senden. ID-Tokens und Zugriffstoken beantworten unterschiedliche Fragen in einem Identitätsfluss.

ToolAcre kann Header- und Payload-Muster offenlegen, die das Debuggen unterstützen, aber es kann das Token nicht authentifizieren oder ein OpenID Connect-Profil validieren. Die endgültige Klassifizierung muss sich aus dem Anbietervertrag, dem Ausstellungsablauf und dem Ergebnis der vertrauenswürdigen Überprüfung ergeben und nicht aus einer visuellen Inspektion.

ID-Token-Ansprüche deuten möglicherweise auf eine Identitätsnutzung hin; Dieser generische Decoder validiert kein OpenID Connect-Profil

Ein ID-Token übermittelt Authentifizierungsinformationen an den Client, der die Anmeldung angefordert hat. Abhängig vom Profil können sichtbare Ansprüche eine Nonce, eine Authentifizierungszeit, Authentifizierungsmethoden oder einen Hash im Zusammenhang mit einem anderen Token umfassen. Bei diesen Feldern handelt es sich nicht um generische API-Autorisierungsgewährungen.

Der Decoder behandelt `auth_time` als zeitförmiges Feld und zeigt andere Namen als anwendungsspezifisch an, sofern sie nicht zu den sieben Kernnamen gehören. Nonce, `at_hash`, `amr` oder die Semantik der Client-Zielgruppe werden nicht validiert. Eine lesbare Identitätsnutzlast bleibt nicht vertrauenswürdig, bis der Client sie korrekt validiert.

Zugriffstoken können JWTs oder undurchsichtig sein; Für diesen Decoder passen nur dreiteilige JWTs

Ein Zugriffstoken autorisiert Aufrufe an einen Ressourcenserver unter einem Autorisierungssystem. Es kann sich um eine JWT oder eine undurchsichtige Zeichenfolge handeln. Nur die dreiteilige signierte Form passt zur Route von ToolAcre; Ein undurchsichtiger Token hat keine allgemeine clientseitige Struktur zum Dekodieren und sollte nicht durch dieses Tool erzwungen werden.

Ein JWT-Zugriffstoken kann Zielgruppen- und Bereichsinformationen enthalten, aber diese Werte erfordern eine authentifizierte Überprüfung und Ressourcenrichtlinie. Das Browser-Panel implementiert keinen Ressourcenserver und kann nicht erkennen, ob ein Bereich einen bestimmten Vorgang zulässt.

Aktualisierungstoken – normalerweise undurchsichtig, niemals dazu gedacht, dekodiert zu werden und niemals an eine API gesendet zu werden

Ein Aktualisierungstoken unterstützt den Erhalt von Ersatz-Zugangsdaten gemäß Anbieterregeln. Es ist im Allgemeinen undurchsichtig und nicht für Ressourcen-APIs gedacht. Da es sich außerdem um einen hochwertigen Ausweis handelt, birgt das Einfügen in einen Decoder ein Risiko ohne zuverlässigen diagnostischen Nutzen.

Daraus lässt sich nicht schließen, dass jeder tokenförmige Wert dekodiert werden sollte. Nutzen Sie Anbietertools und kontrollierte Protokolle für Aktualisierungsfehler. Die ausdrückliche Warnung von ToolAcre vor Produktionstokens trifft hier besonders zu und sein Drei-Segment-Parser bietet keinen Aktualisierungsvorgang.

Zielgruppen unterscheiden sich – die Client-ID in einem ID-Token gegenüber der Ressource in einem Zugriffstoken

Die Zielgruppe ist ein starker Hinweis, da der beabsichtigte Verbraucher unterschiedlich ist. Ein ID-Token zielt häufig auf den Client ab, während ein Zugriffstoken auf eine Ressource abzielt. Genaue Bezeichner und Darstellungen hängen vom Anbieter und Profil ab, daher wird in diesem Artikel kein universelles Zeichenfolgenmuster erfunden.

Ein Header `typ` kann auch eine explizite Bezeichnung bereitstellen, bleibt aber bis zur Überprüfung tokengesteuerte Daten. ToolAcre warnt nur, wenn eine Zeichenfolge `typ` von `JWT` abweicht; Es erkennt nicht jedes Profillabel und wandelt es nicht in eine Autorisierungsentscheidung um.

Arbeitsbeispiel: Sichtbare Felder vergleichen, ohne sie als Beweis für den Tokentyp zu behandeln

Dekodieren Sie zwei synthetische Beispiele: eines mit clientorientierten Authentifizierungsansprüchen und eines mit einer Ressourcenzielgruppe und einem Ressourcenbereich. Notieren Sie die Unterschiede in `aud`, `typ` und Nutzlastnamen. In der Übung erfahren Sie, was Sie den Emittenten fragen sollten, und nicht, wie Sie die Identität eines der Beispiele nachweisen können.

Ein fabrizierter Token kann dieselben Bezeichnungen kopieren und ein echter Token kann anbieterspezifische Konventionen verwenden. Bestätigen Sie den Typ anhand der Ausstellungsantwort und der Dokumentation und validieren Sie ihn dann beim beabsichtigten Verbraucher. Die Ausgabe des Decoders ist ein unterstützender Beweis, niemals die Entscheidungsinstanz.

Was dies nicht abdeckt – die OAuth-Flows, die diese Token ausstellen, die ein separates Thema sind

Dieser Vergleich erklärt nicht den Autorisierungscode, das Gerät oder andere Abläufe, die Tokens ausgeben. Außerdem werden anbieterspezifische Validierungsschritte, undurchsichtige Zugriffstoken-Introspektion oder Aktualisierungsrotation nicht behandelt. Diese Themen hängen vom ausgewählten Ökosystem und der Bereitstellung ab.

Halten Sie die unmittelbare Debugging-Frage eng: Welche Anmeldeinformationen hat der Client erhalten, wer ist sein beabsichtigter Verbraucher und welche vertrauenswürdige Komponente validiert sie? Die Beantwortung dieser drei Fragen verhindert, dass eine generische JWT-Form Protokollrollen löscht.

Takeaway: Schauen Sie sich aud und typ an, bevor Sie senden – mit dem ToolAcre JWT-Decoder können Sie überprüfen, welche Art von Token Sie besitzen

Sehen Sie sich die Zielgruppe und den Typ an, bevor Sie ein Token senden, aber vertrauen Sie keinem der Felder, bis die Überprüfung erfolgreich ist. Ein ID-Token gehört zu seiner Client-Validierungsgrenze; Ein Zugriffstoken gehört zu seinem Ressourcenserver. Ein Aktualisierungstoken gehört zum Aktualisierungsprozess des Anbieters und nicht zu einer API.

ToolAcre hilft beim Lesen sicherer dreiteiliger Beispiele und erhebt keinen Anspruch auf deren Klassifizierung oder Validierung. Verwenden Sie es, um wahrscheinliche Fehler zu erkennen, und lassen Sie dann den dokumentierten Ablauf und den unabhängig konfigurierten Prüfer den wahren Zweck der Anmeldeinformationen ermitteln.