Come proteggere il refresh token OAuth 2.0 sul client in un'app REST?
#1
Sto lavorando a un piccolo progetto personale e mi sono bloccato su una cosa che probabilmente è semplice. Devo far comunicare la mia app web con un servizio di terze parti per recuperare alcuni dati, e ho deciso di usare REST perché sembrava l'approccio più diretto. Il problema è che il servizio richiede un'autenticazione con OAuth 2.0, e non riesco a capire come gestire in modo sicuro il refresh token lato client senza esporlo. Qualcuno si è trovato in una situazione simile? Mi sento come se stessi cercando di reinventare la ruota e forse mi sto perdendo in un bicchiere d'acqua.
Cita messaggio
#2
Capisco la frustrazione. OAuth 2.0 e i refresh token non sono fatti per stare in mano sul client. Sui SPA è preferibile non conservare un refresh token sul front-end; PKCE aiuta, ma la soluzione più sicura è un backend che gestisca i token e rilasci solo un access token a breve scadenza al client.
Cita messaggio
#3
Analizzando l’architettura, ti proporrei Authorization Code Flow con PKCE per applicazioni pubbliche, accompagnato da un backend che custodisce i refresh token. Memorizzali in HttpOnly cookie o usane la rotazione. Così il client non gestisce segreti e la gestione sensibile resta sul server.
Cita messaggio
#4
Forse stai pensando a una soluzione puramente front-end. Il vero problema dei refresh token è proprio questo: se sei nel browser, non c'è modo sicuro di conservarli. Metti tutto nel server e fai da proxy per le chiamate al servizio.
Cita messaggio
#5
Non so se vale la pena complicarsi: a volte una chiave di accesso a breve vita e un controllo periodico fanno, oppure usa API key se l’endpoint è semplice. OAuth 2.0 è potente ma può essere overkill per un progetto piccolo.
Cita messaggio
#6
Potrebbe essere utile riformulare: non si tratta solo di token, ma di ruoli tra front-end e back-end. Considera pattern come Backend for Frontend o API gateway che esponano solo ciò che serve al client senza esporre token sensibili.
Cita messaggio
#7
Un concetto utile da tenere a mente è la rotazione del refresh token: se supportata, il refresh token cambia al primo uso. è un dettaglio che fa la differenza ma non è necessario capire tutto subito.
Cita messaggio


Risposta rapida
Messaggio
Scrivi qui il tuo messaggio.

Verifica Immagine
Per favore inserisci il testo contenuto nell'immagine nella casella di testo sotto ad essa. Questa operazione è necessaria per prevenire gli spam bot automatici.
Verifica Immagine
(maiuscole indifferenti)

Vai al forum: