Me gustaría saber cuál sería la mejor estrategia para la autenticación entre dos aplicaciones que se ejecutan en diferentes lugares. Mi cliente de aplicaciones necesita llamar a la API Rest de un servidor, y solo hay unos pocos clientes que se conectan a este servidor, pero la cantidad de solicitudes realizadas por los clientes es enorme. El cliente está en la pila java y la comunicación se produce a través de TLS 1.2.
He considerado las siguientes opciones
- Autenticación mutua basada en certificado: - Aquí tanto el servidor como el cliente proporcionar su certificado para validar, sin embargo, encuentro que este enfoque es complicado, aunque esto parece lo mejor.
- Autenticación básica: me parece que es menos seguro y no recomendado.
- OAuth: - No quiero usar ningún otro proveedor de autenticación para tokens.
- Clave secreta previamente compartida: una clave se cifra con marca de tiempo y parámetros, y se pasa como un token para validar.
¿Hay otros enfoques que sean adecuados y cuál sería el mejor enfoque?