Come si può gestire rendendo invalida una lista di JWT?

0

Ho progettato una nuova API Rest per un progetto personale e sto cercando di implementare il meccanismo di autenticazione e autorizzazione come progetto separato, quindi ho finito con un paio di problemi che sto cercando di risolvere

Il primo è legato alla validità di JWT. Quando l'utente accede all'applicazione, l'app genera un aggiornamento e un token di accesso per poter essere utilizzato dall'utente. Come per la documentazione JWT, è possibile codificare la data di scadenza all'interno del token, in modo da poter sapere quando il token è valido o meno.

Ma cosa succede se si desidera invalidare un elenco di JWT? Nel caso in cui desideri invalidare tutte le JWT, puoi aggiornare il tuo segreto se ho capito bene.

    
posta pik4 14.11.2018 - 15:48
fonte

1 risposta

2

Il punto di JWT è che possono essere verificati in modo decentralizzato, semplicemente controllando la firma. Un JWT è quindi irrevocabile. Questa limitazione è di progettazione.

Se crei un servizio di autenticazione che contiene un elenco di token revocati, i consumatori del JWT devono prima controllare il servizio di autenticazione. Ciò elimina tutti i vantaggi dell'approccio decentralizzato.

Si potrebbe anche memorizzare tutti i dati in quel servizio di autenticazione e fornire solo gli ID di sessione. Qualsiasi utente può cercare i dati dal servizio auth o ricevere un errore se utilizza un ID sessione non valido.

Si noti che la revoca su un sistema distribuito è un problema difficile in generale. Per esempio. i certificati di dominio possono essere revocati in teoria, ma molti software client non riescono a controllare lo stato di revoca (ad esempio utilizzando OCSP). Tuttavia, le durate di validità dei certificati più brevi possono compensare parte di tale rischio. L'equivalente per te sarebbe cambiare frequentemente le chiavi e far scadere rapidamente i token.

    
risposta data 14.11.2018 - 19:01
fonte

Leggi altre domande sui tag