Traduzione OAuth Token (Opaque to JWT)

3

Ho visto un paio di discorsi che suggerivano l'uso della traduzione di token OAuth al gateway API dal token opaco al token JWT. Quali sono i vantaggi e gli svantaggi di questo approccio, chi dovrebbe usarlo?

Se utilizziamo HTTPS, non penso che ciò faccia alcuna differenza in termini di perdita di gettoni. Due svantaggi sarebbero ora i clienti non possono dedurre cosa possono fare o se il loro token è ancora attivo, e dobbiamo mettere tutte le nostre API dietro un gateway *.

*: Voglio dire che potremmo anche metterli dietro n gateway, purché parlino con un singolo server di autorizzazione, ma questo mette n volte il carico per l'AS.

Ecco un esempio di talk link

    
posta EralpB 25.04.2017 - 10:02
fonte

1 risposta

3

Un'osservazione su questo:

now clients can't deduce what they can do or if their token still active

Il modo più sicuro per archiviare il JWT è probabilmente in un cookie sicuro link (per impedire XSS) (+ prendere misure contro XSRF). Se lo fai, il codice lato client non può comunque controllare direttamente il JWT.

Per quanto riguarda la tua domanda iniziale, immagino possa aiutare a dare più controllo sulla scadenza di revoca / sessione. Se si consegna il JWT all'utente finale, si è impotenti fino al raggiungimento di "exp" (e questo parametro è stato deciso dall'emittente, che potrebbe non essere allineato con le proprie politiche). Con l'identificativo opaco, si mantiene il controllo e si può revocare l'accesso in qualsiasi momento. In un certo senso, mantieni la gestione delle sessioni obsolete sfruttando ancora JWT per l'autenticazione delegata.

link

Unlike sessions - which can be invalidated by the server whenever it feels like it - individual stateless JWT tokens cannot be invalidated. By design, they will be valid until they expire, no matter what happens.

link

For a stateful service, you hand out a new short-lived, single-use token for each service - which is then exchanged on the service itself, for a session on that specific service. You never use the token itself as the session.

    
risposta data 29.07.2017 - 07:22
fonte

Leggi altre domande sui tag