Ambito
Attualmente stiamo sviluppando un'API REST back-end che viene utilizzata da una manciata di applicazioni MVC. In questo caso stiamo parlando solo di comunicazione server-server e l'API non verrà utilizzata direttamente da nessun utente. L'ambiente è puramente su Windows Server e bisogna ricordare che al momento non ci sono piani per utilizzare la directory attiva.
Qual è il modo migliore per autenticare un'applicazione server (MVC) con l'API di back-end?
Considerando che tutto è fatto su https, al momento stiamo valutando entrambi certificato del cliente o autenticazione basata su token (tramite Basic / Bearer).
Con entrambi questi approcci emergono molti pro e contro e lo farei davvero come il tuo aiuto per verificare, correggere e magari completarli.
Autenticazione basata su token
- Si adatta bene nel caso in cui decidessimo di usarlo anche per altre parti
- Nessun certificato client (installazione, rinnovo)
Autenticazione certificato client
- Ampia diffusione nell'ambiente aziendale
- Ben affermato
- Quantità gestibile di clienti
- Considerato da molti come una delle opzioni più sicure
- Nessun singolo punto di errore (server di identità ospitato autonomamente)
Conclusione
Sono abbastanza sicuro di aver dimenticato alcuni aspetti importanti e apprezzo ogni tipo di input.
Inoltre, dato l'ambito sopra il quale opterebbe?