Sto cercando di configurare l'autenticazione tra due servizi applicativi. Il servizio A chiamerà il servizio B e desidero che il servizio B accetti solo le chiamate (http) dal servizio A, da nessun'altra parte.
So come funziona l'autenticazione JWT e potrei implementarla. Se capisco correttamente (penso di sì, ma correggimi se sbaglio), funziona così:
- il servizio A richiede una JWT dal servizio B (o un server di identità, ma assumiamo point-to-point)
- il servizio B risponde con il JWT, firmato con il segreto del servizio B Il servizio
- effettua la chiamata al servizio B e include il JWT
- il servizio B ispeziona il JWT e può sapere se è stato effettivamente il servizio A a effettuare la chiamata, senza alterare il JWT
Ma la prima chiamata è effettivamente necessaria? Non potrei fare questo:
- servizio A firma ogni richiesta con la chiave privata del servizio A Il servizio
- B decrittografa la richiesta con la chiave pubblica del servizio A Il servizio
- B ora sa se la richiesta è in realtà dal servizio A
Lavorerò su https e non avrò bisogno di reclami. Tutto quello che devo sapere è se la richiesta è originata dal servizio A. Perché solo il servizio A è autorizzato a chiamare il servizio B, ma quando lo fa, ha accesso a tutti gli endpoint API (quindi non sono necessarie dichiarazioni).
Sembra più semplice utilizzare la crittografia asimmetrica al posto di JWT, ma mi chiedo se sia altrettanto sicuro, corretto e standard.