Mam system składający się z mikroserwisów które są niedostępne z zewnątrz. Dostęp do systemu odbywa się za pomocą "backend for frontend", czyli Web API mający dostęp do wewnętrznych mikroserwisów, hostujący aplikację webową (SPA napisane w React) oraz dostarczający odpowiednich endpointów w celu weryfikacji i pchania requestów do wewnętrznych systemów. Ten serwis ma zabezpieczenia takie jak polityka CORS, anti-forgery tokens itp. Prawdopodobnie do tego systemu dojdą klienci w postaci aplikacji mobilnych (natywne). Będzie więc trzeba jakoś zapewnić dostęp do wewnętrznego systemu (mikroserwisów), ale ze względów bezpieczeństwa jak i separacji odpowiedzialności bezpośredni dostęp nie jest opcją. Siłą rzeczy rozwiązaniem będzie jakieś API gateway/kolejny serwis "backend for frontend".
Moje pytanie jest takie- czy są jakieś sprawdzone albo rekomendowane sposoby na zabezpieczenie API tak aby można było dopuścić komunikację tylko ze strony tych aplikacji mobilnych? Dodam że aplikacje nie będą wymagać zalogowania, więc uwierzytelnianie użytkownika nie wchodzi w grę. Czy w ogóle Waszym zdaniem próba zabezpieczenia tego i ograniczania dostępu tylko klientom mobilnym ma tutaj sens? Jedno co mi przychodzi do głowy to jakiś API key załączony z aplikacją na telefonie. Tylko że na nic się to zda jeśli ktoś naprawdę będzie chciał wysyłać requesty bezpośrednio, bo zrobi reverse engineering i sprawdzi co jest wysyłane w requestach.