A ta cała architektura to jaki problem ma rozwiązać?
Bo jak na razie, to ja w ogóle nie widzę tam miejsca ani na żadne przesyłanie adresów IP ani na "serwer główny".
Mam stronę www (SPA), która łączy się z moim serwerem głównym na którym jest baza danych z użytkownikami oraz jakieś dodatkowe rzeczy, które są tworzone bezpośrednio na tej stronie. To są "moje" dane - tj. takie, które zostały utworzone bezpośrednio na mojej stronie. Użytkownik się loguje -> dostaje JWT podpisany moim kluczem -> ma dostęp do wybranych rzeczy.
Ale na stronie chcę również umożliwić wyświetlanie użytkownikom informacje, które są zapisane w bazie danych innego użytkownika, który je udostępnił. Głównie chodzi o dane księgowe z programu księgowego tego użytkownika. Nie chcę ich przesyłać i zapisywać na swoim serwerze - chcę je tylko wyświetlać na stronie.
Czyli mamy np. biuro rachunkowe, które ma na swoim serwerze program księgowy z bazą danych i chce (to biuro rachunkowe chce) udostępnić te dane swoim klientom. Baza danych jest zainstalowana lokalnie a nie w chmurze etc. Dodatkowo biuro może mieć zmienny adres IP.
Klienci tego biura mają mieć dostęp do danych z każdego miejsca.
W tym celu biuro rachunkowe instaluje moją aplikację (WebApi) na swoim serwerze (na którym jest baza danych programu księgowego). WebApi dostaje ode mnie klucz (jakiś losowy ciąg znaków), który jednocześnie jest kluczem dla drugiego JWT w celu łączenia się z tym WebApi. Na serwerze głównym przechowuję ten klucz i przy logowaniu się użytkownik dostaje drugi JWT z dostępem do tej firmy - dzięki temu może wysyłać żądania na serwer biura rachunkowego.
Czy teraz ma to sens?
@_13th_Dragon przepraszam, ale nie jestem pewny czy dobrze rozumiem.
Jeżeli jak twierdzisz, to nie jest oprogramowanie szpiegowskie to kontrola nad wysyłką powinna leżeć po stronie klienta.
No i tak właśnie będzie. Aplikacja zainstalowana po stronie klienta (WebApi) będzie zabezpieczone JWT bez którego nie udostępni danych użytkownikowi.
Jeżeli użytkownik nie uzyskał dostępu to nie wygeneruje mu się również JWT do tego serwera.
Więc to mikro serwis powinien sam zgłaszać do serwera dane które klient udostępnił po każdej zmianie udostępnionych danych.
Czym według Ciebie jest mikro serwis? Mowa o aplikacji zainstalowanej na serwerze klienta (biura rachunkowego), moją stronę www?
Z tym że czy ty nie próbujesz wymyślić bardziej okrągłe koło niż dotychczas istniejące?
Bo to o czym piszesz to chmura.
Nie, bo nie chodzi o udostępnienie plików etc. tylko samych danych z programu księgowego np. informacji jakie dokumenty zostały już zaksięgowane, jaki jest wynik finansowy, jakie są nieobecności pracowników etc. Taki pulpit managera. Dlatego, że program księgowy jest poza firmą a często trzeba mieć dostęp do danych to chcę umożliwić wyświetlanie tych danych.