Kilka mikroserwisów zabezpieczonych ouath2, jak to wykonać?

2

Powiedzmy mam serwis login-service, który loguje użytkownika z endpointem /login. Użytkownik loguje się dostaje tokena i przekierowuje do np.
employer-service, ktory zostaje uderzony np. w endpoint /start tego serwisu, ktory powinien byc zabezpieczony sprawdzeniem tokena. Jak to ugryzc, to sa dwa odddzielne mikroserwisy, jeden i drugi wystawia na zewnatrz endpoint. Przed praktycznie kazdym endpointem musze miec sprawdzenie tokena czy poprawny, czy nie wygasl. Czy wystawienie API gateway podobnie do tego: link jest dobrym rozwiazaniem?

2

Generalnie tak , wydaje mi się że gateway w przypadku mikro serwisów jest aktualnie po prostu standardem.
Aczkolwiek z tego co wiem aktualnie Zuul już jest maintenance co oznacza że nie będzie już rozwijany , teraz aktualnie zainteresował bym się Spring Cloud Gateway + tworzenie własnych auth serwisów jest też aktualnie deprecated , w tym wypadku zainteresował bym się zewnętrznym rozwiązaniem np. Keycloak albo projektem Spring Authorization Server z tego co widziałem to już wyszła produkcyjna wersja.

1

Moja opinia, mogę nie być expertem:

API Gateway spoko. Ogólnie pytanie też, w jaki sposób sprawdzać to, czy dany token jest "valid". Można to robić ręcznie (jjwt dependencja), a można w Spring Boocie skonfigurować sobie zewnętrznego providera (np Keycloak). Najwięcej do przemyślenia też wydaje mi się że będzie wymagało obsłużenie wylogowania (ze wszystkich mikroserwisów), blacklistowanie tokena, refreshowanie go (vs wystawianie nowego od nowa), trzymanie go na frontendzie w dobry sposób

0

Przed praktycznie kazdym endpointem musze miec sprawdzenie tokena czy poprawny, czy nie wygasl

Jeśli używasz Springa to sprowadza się to do napisania 3 linijek:

http.oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt)
spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:12345/pubkey

Więc jakoś strasznie bym tego nie demonizował.

1 użytkowników online, w tym zalogowanych: 0, gości: 1