Estoy intentando implementar un mecanismo de autenticación sin cookies para una API web que no tiene estado en el servidor (no almacena tokens de sesión) y se puede equilibrar la carga en varios servidores.
He implementado un JWT que se devuelve a un cliente (cliente de phonegap móvil) que se almacena en sessionStorage, y se agrega al encabezado de las solicitudes posteriores a la autenticación. Si bien esto funciona perfectamente bien en un solo servidor, siempre quiero tener un servidor en espera que pueda manejar las solicitudes que inicialmente se autenticaron en un servidor diferente. Para esto, asumo que tendré que compartir claves entre los diferentes servidores.
No entiendo las implicaciones de seguridad de mover claves públicas o privadas entre servidores. ¿Es completamente desaconsejable? Si es así, ¿cómo puedo cumplir mis requisitos? Si no, ¿hay métodos estándar para compartir claves? Por ejemplo, un servicio de configuración distribuido como etcd? ¿Transferencias manuales de ssh? ¿Es más recomendable tener un único servidor que maneje la autenticación y luego compartir las claves públicas entre los servidores para descifrar el token de las llamadas al resto de la API?