Ciao,
Nelle applicazioni MVC5 utilizziamo Asp.Net identity, con autenticazione basata su cookie; non credo però che il cookie sia la miglior soluzione per applicazioni basate su WebApi.
Il cookie non è la migliore soluzione quando hai dei client non-browser che consumano la tua webapi da altro tipo di applicazioni (es. console, desktop, dispositivo IoT, ecc...). In questi casi il cookie è scomodo da usare perché il client deve comprenderne la struttura: il server infatti non invia solo il contenuto del cookie, ma anche alcune informazioni accessorie sul suo utilizzo (es. la scandeza, per quale percorso è stato emesso, se è HttpOnly, e così via). Queste informazioni devono essere rimosse in modo che il client reinvii al server solo il contenuto del cookie nella successiva richiesta.
Tuttavia, se la tua WebAPI è ad unico uso e consumo di un frontend Angular, allora puoi anche usare un cookie perché tutto il lavoro di interpretazione e mantenimento del cookie lo fa il browser automaticamente. Nulla ti vieterebbe di aggiungere un secondo meccanismo di autenticazione in seguito.
Stavo allora pensando ad OAuth2 con bearer token
Come mai OAuth2? Hai detto che l'autenticazione la fai su ASP.NET Identity, probabilmente con utenti locali alla stessa applicazione WebAPI. Dato che non hai un authorization server esterno all'applicazione WebAPI, potresti usare dei JWT Token.
Al login dell'utente, crea un JWT Token in cui inserisci la sua ClaimsIdentity che poi verrà cifrata da ASP.NET e inviata al client. Lato client, puoi raccogliere il JWT Token dalla risposta della login e salvarne il contenuto nel local storage o, se il browser non lo supporta, in un cookie.
Reinvia il JWT Token ad ogni richiesta, nell'instazione Authorization: Bearer ....
Qui c'è un esempio su come configurare ASP.NET Web API per usare token JWT.
http://blogs.quovantis.com/json-web-token-jwt-with-web-api/Qui c'è una mia demo
https://github.com/BrightSoul/DemoLoginWebAPIQuesto è per ASP.NET Core e ASP.NET Identity
https://blogs.msdn.microsoft.com/webdev/2017/04/06/jwt-validation-and-authorization-in-asp-net-core/ciao,
Moreno