JSON Web Token-Ablauf
Meisten JWT (JSON Web Token) - Lernprogramm (e.g: diese und diese) sagen, einmal validiert, können Sie die eingehenden token zu erhalten, Informationen, die der Kunde ohne Prüfung von der DB.
Meine Frage ist, wie ungültige Benutzer-situation gepflegt ist dann? Was ich meine ist, sagen wir, dass ein client gerade ein JWT token, der verfällt in einer Woche. Aber für einen ganz bestimmten Grund sagen wir, dass wir beschlossen, erlischt die user, und nicht wollen, dass die Benutzer, um Zugriff auf unsere API. Aber immer noch, dass Benutzer ein token gültig ist und der Benutzer Zugriff auf die API.
Natürlich, wenn wir eine Rundfahrt machen, um die DB für jede Anfrage, dann können wir überprüfen, ob das Konto gültig oder ungültig ist. Meine Frage ist, was ist der beste Weg, um Pflege dieser Art von situation für langlebige Token.
Vielen Dank im Voraus.
InformationsquelleAutor Jahid Shohel | 2017-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist schwierig zu widerrufen JWT-based access Token, wenn nicht unmöglich.
Wie sollte ein Zugriffstoken dargestellt werden? Es gibt zwei wichtige Wege.
Wahl zwischen diesen Möglichkeiten führen zu daraus folgenden Unterschiede in der folgenden Tabelle beschrieben.
Sehen "7. Access Token" in "Full-Scratch-Implementierung von OAuth und OpenID Connect Gespräche Über Erkenntnisse," für die vor-und Nachteile der Möglichkeiten des access-token-Repräsentation.
Wenn Ihr access Token JWT-basiert, system hat zu (1) denken Sie daran, widerrufen access Token, bis Sie ablaufen. Ein weiterer Kompromiss ist die (2) stellen Sie die Lebensdauer von access tokens kurz genug und aufgeben, aufheben Sie.
Persönlich, nach Prüfung, die ich nicht wählen JWT als access-token-Repräsentation, wenn ich implementiert eine Autorisierungs-server ( Authlete ), denn es ist schwierig/unmöglich zu widerrufen und update-JWT-based access Token, sobald Sie ausgegeben werden.
InformationsquelleAutor Takahiko Kawasaki
RFC-7009 gibt OAuth 2.0-Token Widerruf. Grundsätzlich haben Sie einen Endpunkt, wo Sie kann widerrufen werden, access_tokens.
InformationsquelleAutor moritzg
Es ist nicht klar, welche OAuth-flow Sie sind mit Ihrer Frage, oder ob Sie beziehen sich auf OpenID Connect statt Oauth.
Betrachten Sie mit refresh-Token und haben eine viel kürzere Ablauf auf Ihrer access-token - z.B. 30 Minuten.
In diesem Szenario wird der Benutzer (
resource owner
) nicht haben, zu halten, zu authentifizieren, und Ihre API (Resource Server
) nicht haben, um die Benutzer zu überprüfen ist immer noch gültig, auf jede einzelne Anfrage.Einmal das access-token abläuft, Ihre
client
(Anwendung aufrufen der API) sollten sich an Ihr DB (Authorisation Server
) und exchange die refresh-token für einen neuen access - token und in der Regel ein neues refresh token - Bereitstellung für die Nutzer noch eine gültige Benutzer auf die DB und der user hat nicht widerrufen Zugang für die client-Anwendung, um seine/Ihre Daten an die API.Konnte man auch mit token Widerrufsrecht wie vorgeschlagen, in eine andere Antwort, wenn Sie Ihre Autorisierungs-Server erlaubt es, aber ich würde versuchen, die refresh-Token und kurzlebige access Token, da es viel einfacher zu implementieren ist und nicht belasten Sie Ihren API, mit der Benutzer-Authentifizierung/Autorisierung betrifft - dieser job wird am besten durch ein Auth-Server.
InformationsquelleAutor iandayman
Das ist das Hauptproblem bei der Verwendung von JWT. Also im Grunde die beste Herangehensweise in diesem Fall ist die Erstellung blacklist auf Ihrem gateway. Es ist nicht die beste Lösung für die Sicherheit Sicht, aber dies ist nur eine gute Lösung, wenn Sie mit JWT.
InformationsquelleAutor Łukasz Woźniczka