Applicazione Web che effettua una chiamata a un'API REST quando è già autenticata

2

Sono nuovo di ASP.NET Core e OpenID connect / AzureAD, quindi cerco qualche convalida (o meno) del mio approccio. Una lettura approfondita / googling durante le ultime due settimane mentre stavo imparando questo non ha trovato una risposta esatta (anche se molti quasi mancati)

Ho un'app Web basata su browser che deve essere protetta con AzureAD, quindi, come previsto, utilizza un'autenticazione basata su cookie. Tutto funziona bene.

Espongo anche un'API all'interno della stessa applicazione. Non voglio utilizzare l'autenticazione basata su cookie a causa delle preoccupazioni di CSRF e la necessità che l'API supporti un'app mobile in un secondo momento. Ho configurato l'API per utilizzare l'autenticazione basata su JWT Bearer. Funziona anche bene (ad es. Chiamando da Postman)

Una delle pagine nell'applicazione Web deve effettuare una chiamata AJAX all'API e non voglio / devo trasformare l'applicazione in una SPA. Quindi l'approccio che sto attualmente cercando è questo:

Quando accedo all'applicazione, memorizzo nella cache (sul lato server) i token che ho ricevuto da AzureAD. Quando viene visitata la pagina con la chiamata AJAX, sto scrivendo il "id_token" in un campo nascosto e quando ho bisogno di effettuare la chiamata AJAX, sto leggendo id_token in javascript e aggiungendolo come "autorizzazione" intestazione.

Tutto funziona come un sogno, quindi ho cercato e spronandolo per motivi di preoccupazione - Non riesco a vedere alcun problema CSRF, poiché la chiamata AJAX non è più abilitata ai cookie. Anche se sto scrivendo un id_token sulla pagina, l'utente deve essere autenticato (cookie) per vedere quella pagina in primo luogo.

C'è qualcosa che sto trascurando qui?

    
posta Paul Nearney 14.06.2018 - 23:49
fonte

0 risposte

Leggi altre domande sui tag