Cześć, mam pytanie do speców od security.
Załóżmy, że mamy sobie backend wystawiający endpointy dla swojego frontendu. Autoryzacja odbywa się standardowo poprzez oauth2 i JWT.
Potem doszły wymagania, że mają być jakieś usługi dla zewnętrznych serwisów.
Powstał taki sposób autoryzacji zewnętrznych serwisów, że backend definiuje sobie secret key do odkodowania JWT dla każdego z zainteresowanych zewnętrznych serwisów i każdy z tych serwisów ten secret key musi znać. Zewnętrzny serwis tworzy sobie JWT na podstawie tego secret key, idzie request, backend przyjmuej token, odkodowuje tym secret key i jeśli dodatkowo zgadza się IP to puszczamy ten zewnętrzny serwis.
System ten był dawno temu projektowany i teraz architektom się nie podoba już.
Jakie są lepsze sposoby autoryzacji zewnętrznych serwisów? Generalnie architekci chcą się pozbyć tego, żeby trzeba było zewnętrznym serwisom przekazywać jakiś klucz. Coś wspominali o jakiś certyfikatach, kluczach prywatnych i publicznych itd.
Jakieś pomysły?