Come gestire la scadenza del token utente su lavori asincroni eseguiti da lungo tempo?

2

Desidero conoscere l'approccio consigliato per fare in modo che i servizi back-end asincroni protetti tramite token bearer si chiamino a vicenda?

Ho un'applicazione web interattiva che chiama un servizio di back-end che passa un token di accesso nell'intestazione Authorization . Questo servizio di back-end avvia un lavoro asincrono che chiama un altro servizio di back-end, passando lo stesso token di accesso. Il problema sorge quando il token di accesso è scaduto mentre il primo job è stato elaborato.

Sembra che un approccio relativamente semplice sia il front-end che passa un token di aggiornamento al back-end, che può utilizzare per ottenere un nuovo token di accesso.

Ci sono approcci migliori?

    
posta raghav 10.11.2016 - 07:43
fonte

1 risposta

1

Come sempre, hai più di un'opzione e quella giusta dipende dallo scenario esatto, ma per esempio potresti:

  1. Supporta la concessione delle credenziali del client OAuth 2.0 nel server di autorizzazione in modo che i servizi di back-end possano richiedere i token per proprio conto senza coinvolgere l'utente (fonte: Concessione di credenziali client )

  2. Supporta un meccanismo di scambio di token che consentirebbe un servizio back-end per scambiare il token di accesso ricevuto con un altro che potrebbe consentire di chiamare altri servizi utilizzando la rappresentazione o la delega dell'utente.

Nello scenario 1, dato che i servizi potevano richiedere un token ogni volta che richiesto, la scadenza sarebbe un non-problema.

Per lo scenario 2, poiché i token venivano emessi per servizi back-end di cui ci si fida e non abbandonerebbero mai il limite lato server, la durata del token ottenuto potrebbe essere molto maggiore di quella utilizzata nel token di accesso disponibile per l'applicazione web che risolve anche il tuo problema di scadenza.

Ricorda inoltre che lo scenario 1 richiederebbe che i tuoi servizi abbiano la possibilità di essere richiamati con un token associato all'utente o con un token associato al servizio, quindi potrebbe richiedere una logica aggiuntiva.

In relazione all'approccio del token di aggiornamento, i token di aggiornamento non vengono di solito rilasciati per le applicazioni basate su browser a causa dei maggiori rischi di perdite.

    
risposta data 18.11.2016 - 16:19
fonte

Leggi altre domande sui tag