Ich habe eine multiple Microservices-Architektur, in der ich Sicherheit anwenden möchte.
Mein Blick auf die Sicherheit Design: Die Authentifizierung mit einem LDAP passieren wird und wenn der Benutzer ein JSON Web Token (JWT) authentifiziert wird, wird einen „geheimen Schlüssel“ und das Token die Rollen mußten erhalten erzeugt mit, Verfallszeit usw. Bei jedem Aufruf an einen Microservice wird dieser Token zur Autorisierung im Header übergeben. Aus meiner Sicht habe ich nur einen einzigen Authentifizierungsserver, der den Benutzer authentifiziert und das JWT generiert.SpringCloud Microservices JSON Web Token (JWT) Sicherheit
Mein Zweifel:
Wenn nun ein Micro einen Anruf (mit der JWT in Header) erhalten wird es trifft immer den Auth-Server das Token überprüft werden?
Wenn ja, wird es nicht zu mehreren Aufrufen an den Auth-Server führen und somit eine schlechte Praxis?
Wenn nein, wie überprüft der Client das Token und was ist der Umfang des Authentifizierungsservers?
Danke, diese Antworten die meisten davon. Wenn wir also einen öffentlichen Schlüssel haben, der allen Microservices gemein ist, was ist der beste Weg, den öffentlichen Schlüssel zu verteilen? über einen DB oder über den Config Server bei Microservices? –
Wenn Sie bereits einen laufenden Konfigurationsserver haben und die PKI-Version verwenden, gibt es keine Probleme, den öffentlichen Schlüssel auf diese Weise zu verteilen. Bitte beachten Sie, dass diese Kommunikation sicher sein muss. Ein anderer Ansatz besteht darin, den Schlüssel von einer zentralisierten Schlüsselregistrierung abzurufen. Es gibt eine spezielle Eigenschaft 'kid', die den Namen auflistet. Weitere Details finden Sie im Anhang zu jws: https://tools.ietf.org/html/rfc7515#appendix-D –