Ich versuche herauszufinden, wie ich Sitzungen mit JSON-Web-Token in einer Microservice-Architektur verwalten werde.Session-Management mit JSON-Web-Token in Microservices
Mit Blick auf das Design in diesem article was ich derzeit im Auge habe ist, dass der Client eine Anfrage senden wird, die zuerst durch eine Firewall geht. Diese Anfrage enthält ein Opak-/Referenz-Token, das die Firewall an einen Autorisierungsserver sendet. Der Autorisierungsserver antwortet mit einem Wert-Token, das alle Sitzungsinformationen für den Benutzer enthält. Die Firewall übergibt die Anforderung dann zusammen mit dem Wert-Token an die API, und das Wert-Token wird dann an alle verschiedenen Microservices weitergegeben, die zur Erfüllung der Anforderung erforderlich sind.
Ich habe 2 Fragen:
- Wie Aktualisierungen der Sitzungsinformationen im Wert Token behandelt werden sollte? Wenn die Sitzungsinformationen in einem Token aktualisiert werden, müssen diese auf dem Autorisierungsserver aktualisiert werden. Sollte jeder Dienst, der das Token ändert, mit dem Autorisierungsserver sprechen?
- Sollten alle Microservices dieses einzelne Token verwenden, um ihre Sitzungsinformationen zu speichern? Oder wäre es für jeden Dienst besser, ein personalisiertes Token zu haben? Wenn es das letztere ist, erklären Sie bitte, wie man das Design justiert.
Ihre Erklärung hilft wirklich und macht Sinn. Ich möchte nur etwas klären. Um diese "Toto-Boards" zu implementieren, würde ich wahrscheinlich separate "Toto-Board" -Dienste machen, die im Wesentlichen die Wahrheitsquellen für die anderen Dienste enthalten, die abgefragt werden müssen. Und von da an muss ich mich nur darum kümmern, ob ich Konsistenz oder Verfügbarkeit will. Klingt das gut zu dir? Mit diesem Design scheint es jedoch nicht den Vorteil zu haben, den gesamten Sitzungsstatus für einen Client in einem Token zu übergeben:/ – Kacy
Nein, ich denke nicht, dass Sie einen TOTBOARD-Dienst implementieren könnten, da Aktualisierungen erforderlich sind atomar sein. Microservice-Architekturen können ehrlich gesagt sehr problematisch sein, wenn sich die Dinge * ändern, weil z.B. zwei Anfragen konnten ungefähr zur gleichen Zeit gestartet werden, sogar auf verschiedenen Servern, konnten mit unterschiedlichen Raten laufen und konnten auf ziemlich unvorhersehbare Weise "rasen". –