Chce napisać aplikacje z modułem logowania ale nie wiem jak to ugryźć

0

Chce napisać aplikacje z modułem logowania na 1 stronie i przejścia automatycznie do modułu: admin, klient, pracownik i teraz od strony architektury nie wiem jak to ugryźć żeby było bezpiecznie i w ogóle. Myślałem o mikroserwisach, ale nie wiem czy to ma sens. Czyli powiedzmy moduł main wystawia Endpoint login i uderza do main modułu admina, klienta lub pracownika. I o ile moduł admin i pracownika może być monolitem to liczba klientów może się zwiększac to dobrze by było to ugryźć za pomocą mikroserwisy. Nie wiem czy dobrze rozumuje? Tak Sam moduł main logowania też chyba powinien być mikro?

2

A tworzysz coś wielkości allegro? jak nie to odpuść mikroserwisy, to nie jest temat dla małego zespołu tylko dużego korpo.

0

Nie, to będzie tak 1/100 funkcjonalności allegro.

2

Można zrobić sobie osobną usługę do logowania, można skorzystać z gotowej usługi, można mieć monolit, który robi biznes i obsługuje logowanie, można mieć mikroserwisy i autoryzację na apigateway'u, albo mieć mikroserwisy i autoryzację (lub jej część) na poziomie mikroswerwisu. Każde z tych podejść w jakimś zakresie przypadków jest dobre, albo chociaż nie jest złe. Ja lubię mieć osobną usługę do uwierzytelniania, najlepiej zewnętrzną @mr_jaro lubi wpakować wszystko w monolit. Oba podejścia są dobre, tylko z tego co kojarzę pracujemy w kompletnie innych projektach, gdzie realizujemy różne wymagania biznesowe. Inaczej się robi system mający się skalować pod dowolną liczbę użytkowników, inaczej np. stronkę jakiejś promocji, która ma ładnie wyglądać i pozwolić zapisać się do newslettera.
Co do mikroserwisów - jeżeli masz potrzebę je robić, to musisz mieć zespół, który to ogarnia i nastawić się na sporo pracy przy zbudowaniu całego CI/CD. Tzn. nie musisz ale wtedy...
screenshot-20211002211159.png

Poczytaj o OAuth i JWT - sporo się wyjaśni.

1

Głębokość pytania sugeruje, ze to jakieś zaliczenie / projekt studencki.

"moduł logowania" to tylko widoczna część czegoś o kilka pięter głębszego, i szerszego - choć te rzeczy nie są widoczne

4

Od modułu logowania do mikroserwisów... that escalated quickly ;)

  1. Co takiego mikroserwisy mają że miałyby rozwiązać problem zapewnienia logowania w Twojej aplikacji?
  2. Dla czego moduł logowania nie mógłby istnieć w ramach monolitu?
  3. Jeśli nie może, to dla czego mikroserwisy a nie po prostu moduł logowania jako oddzielny serwis dla monolitu (SOA)?
  4. Skąd pewność że ilość użytkowników faktycznie będzie stanowić wyzwanie?
  5. Dla czego nie zacząć od modularnego monolitu, i wydzielać poszczególne moduły do odrębnych serwisów w ramach potrzeb?

Dla odpowiedniego balansu dodam tylko że nie zgadzam się z @mr_jaro. Jest to wielokrotnie powtarzane błędne przeświadczenie. Nie trzeba mieć systemu wymagającego setek albo tysięcy mikroserwisów żeby architektura oparta o mikroserwisy miała sens. Mniejsze systemy oparte o mikroserwisy również mają swoje miejsce, tam gdzie ma to sens (patrz pytania powyżej). Ludzie słyszą o artykule "you are not Google" i chyba myślą że to wystarczający argument żeby wszedzie odradzać jakąkolwiek skalowalność czy wszędzie pchać monolity. A to tak samo błędne podejście jak wszędzie chcieć stosować mikroserwisy.

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