Sto cercando di implementare un meccanismo di autenticazione senza cookie per un'API Web che è stateless sul server (non memorizza i token di sessione) e può essere bilanciato su più server.
Ho implementato un JWT che viene restituito a un client (client mobile PhoneGap) che viene archiviato in sessionStorage e aggiunto all'intestazione delle richieste di post-autenticazione. Mentre questo funziona perfettamente su un singolo server, voglio sempre avere un server di standby in grado di gestire le richieste che sono state inizialmente autenticate su un server diverso. Per questo, presumo che dovrò condividere le chiavi tra i diversi server.
Non capisco le implicazioni sulla sicurezza dello spostamento di chiavi pubbliche o private tra i server. È assolutamente sconsigliabile? In tal caso, come posso soddisfare i miei requisiti? In caso contrario, esistono metodi standard per la condivisione delle chiavi? Ad esempio, un servizio di configurazione distribuito come etcd? Trasferimenti ssh manuali? È più consigliabile disporre di un singolo server che gestisce l'autenticazione e quindi condividere le chiavi pubbliche tra i server per decifrare il token per le chiamate al resto dell'API?