Vorrei capire quale sarebbe la migliore strategia per l'autenticazione tra due applicazioni eseguite in luoghi diversi. Il mio client applicativo deve chiamare l'API Rest di un server e ci sono solo pochi client che si connettono a questo server, ma il numero di richieste fatte dai client è enorme. Il client si trova nello stack java e le comunicazioni avvengono su TLS 1.2.
Ho preso in considerazione le seguenti opzioni
- Autenticazione reciproca basata su certificato: - Qui sia server che client fornire il loro certificato per convalidare, tuttavia, trovo che questo approccio sia complicato, anche se questo sembra il migliore.
- Autenticazione di base: - Trovo che sia meno sicuro e non consigliato.
- OAuth: - Non voglio utilizzare nessun altro provider di autenticazione per i token.
- Chiave segreta pre-condivisa: una chiave è crittografata con timestamp e parametri e viene trasmessa come token per la convalida.
Ci sono altri approcci che sono adatti e quale sarebbe l'approccio migliore da usare.