Mikroserwis i API gateway

0

Witam.

Chciałbym stworzyć aplikacje o podanej niżej architekturze.

Klient wysyła request restowy np. /product/1, request przechodzi przez API GATEWAY który sprawdza
czy klient jest upoważniony do wyciągnięcia tych danych, a następnie API GATEWAY prosi Mikroserwis o te dane,
mikroserwis zwraca je do API Gateway, a API GATEWAY zwraca je do klienta.

W jaki sposób mogę zabezpieczyć mikroserwis, żeby zwracał dane tylko do API Gateway, jednak chciałbym
pominąć oauth i zaimplementować swój własny system autoryzacji.

Głównie chodzi o to, aby ktoś nie pobrał sobie danych, z pominieciem api gateway.

0

a kto ci każe robić oauth? Piszesz system po swojemu i tyle może to być sesja oparta o cookie lub token.

0

Dziękuje za odpowiedz.
Mam tylko dylemat co taki token powinien zawierac i jak się nim posługiwać..

Cały czas badam temat, jeśli jednak znalazłaby się dobra dusza by mi wyjaśnić
jak to w prostym przykładzie powinno wyglądać, to byłbym wdzięczny.

pozdrawiam

1

mozesz zainteresowac sie JSON Web Token: https://jwt.io/

0

Dziękuje, właśnie o tym czytałem.

Nie rozumiem nadal jednej kwesti - Mikroserwis otrzyma token ( np. JWT ) - Na jakiej podstawie i jak
będzie on wiedział że to prawidłowy token, a nie jakiś.. fake?

W jaki sposób on to weryfikuje, bo nie rozumiem tego...

0

przy logowaniu dostajesz token i przesyłasz go zawsze headerze, nie masz możliwości wykrycia czy ktoś się pod to nie podszył. Ogólnie w środku jest zakodowany id usera + odpowiednia sól wszystko szyfrowane kluczem prywatnym trzymanym na serwerze..

0

Spotkalem się tez z rozwiązaniem ze serwisy mają parę kluczy: prywatne i publiczne. Prywatne trzymaja u siebie a publiczne wymieniają z innymi mikroserwisami. Dzieki temu jak serwis wygeneruje token (i zaszyfruje go swoim kluczem prywatnym) to inne mikroserwisy na podstawie klucza publicznego są w stanie stwierdzic czy token jest wygenerowany przez oryginalny serwis i czy np ktos po drodze nie podmienil np id usera

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