2016-04-16 22 views
1

Ich baue sowohl eine mobile und Single-Seite App und haben Auth Techniken wurde die Bewertung, die für den sofortigen Zugriff/Token Widerruf erlauben . Ich sehe, dass Aut0 und Stormpath sowohl Zugriffs- als auch Aktualisierungstoken verwenden, um Tokens zu widerrufen.Warum nicht einfach ein langes TTL-Referenz-Token als Ersatz für JWT-Token verwenden?

Was ist der Sinn eines Aktualisierungs-Token und kurze TTL Zugriffstoken, wenn Sie eine Liste der gültigen Tokens und Prüfung gegen diese bei Erreichen Anforderung auf dem Ressource-Server empfangen sind beibehalten? Warum nicht eine Referenz-Token mit dem gleichen TTL gleich nachdem Sie die Aktualisierungs-Token und jetzt eingestellt würden Sie müssen sich keine Sorgen über das Zugriffstoken erfrischend (rechts bevor es zu verfallen) und haben ein weniger Token zu befürchten?

Antwort

1

Entziehen Refresh-Token ist in der Regel eine etwas Ressourceneigentümer tut, wenn er/sie denkt, kann das Token kompromittiert wurden (Telefon/Laptop zum Beispiel verloren).

Durch das Ausstellen eines Aktualisierungstokens und das Erzwingen der Aktualisierung des kurzlebigen Zugriffstokens durch den Client kann der Autorisierungsserver regelmäßig überprüfen, ob der Betreff (angemeldeter Benutzer) noch gültig ist.

Wenn Sie Zugriffstoken ausgeben, die lange gelebt werden, verlieren Sie die Möglichkeit, den Zugriff für Benutzer zu widerrufen, die die Organisation verlassen.

Wenn jemand eine Organisation verläßt, die admin will ihr Konto aus den Identity-Provider löschen und sicher sein, dass sie nicht mehr auf alle Ressourcen zugreifen können. Langlebige Zugriffstoken würden einen Administrator zwingen, auch auf mehrere Autorisierungsserver zu gehen und die Zugriffstoken für diesen Benutzer zu löschen.

+0

Überprüfung, dass das Thema nach wie vor gültig ist, ist etwas, das ich brauche sofort und nicht in regelmäßigen Abständen durchgeführt werden, weshalb ich verwirre über die Notwendigkeit der Aktualisierungs-Token bin. Wenn ein böswilliger Mitarbeiter sein Konto gekündigt hat, müssen wir seinen Zugriff sofort widerrufen. Wenn sich ein Benutzer abmeldet, muss dieser Token sofort ungültig sein. Gleiches, wenn wir feststellen, dass das Token eines Benutzers kompromittiert wurde. Um dies zu erreichen, haben mehrere vorgeschlagen, eine Blacklist oder Whitelist von Token zu pflegen. Es gibt nur einen Autorisierungsserver. Und alle Token würden auf eine Benutzer-ID verweisen. – Bradford

+0

Nun, ich kann Ihre speziellen Anforderungen nicht kommentieren. Diese sollten von Ihrer Bedrohungsanalyse ausgehen. Aber in den meisten Situationen ist kurzlebige Tokens (etwa TTL = 15 min) nahe genug an die sofortige Widerrufung. Wenn Sie einen einzigen Autorisierungsserver haben, mit dem jeder Ressourcenserver für jede Anforderung sprechen muss, entsteht in Ihrer Architektur ein Skalierbarkeitsengpass und ein einzelner Fehlerpunkt. Für die meisten Organisationen ist das schwerer, als 15 Minuten warten zu müssen, um ausgestellte Tokens ungültig zu machen. – MvdD

+0

Entschuldigung, wenn ich es nicht klar gemacht habe, aber die Anforderungen waren für die Fähigkeit, ein Token sofort zu widerrufen. Und dazu müssen Sie eine Liste von Token verwalten. Und wenn Sie bereits eine Liste von Token verwalten und diese überprüfen, bin ich nicht sicher, warum Sie ein Aktualisierungstoken und Zugriffstoken benötigen. – Bradford