Devo inviare il segreto con il token di aggiornamento in OAuth 2.0

1

Sto lavorando per implementare un server OAuth 2.0 e durante la lettura della specifica RFC6749 mi sono reso conto che sezione 6 su Pagina 47 riguardante "Aggiornamento di un token di accesso". Spiega che dobbiamo semplicemente usare il Token di aggiornamento per ottenere un nuovo token.

Ad esempio, oltre al token di aggiornamento, Google richiede l'ID utente e il segreto per farlo.

Questo mi confonde, perché da un lato abbiamo Google che elabora un volume elevato di richieste ogni giorno, e abbiamo una specifica scritta probabilmente con un obiettivo più piccolo in mente.

È bello inviare il Segreto ogni ora con il Token di aggiornamento?

Personalmente non credo: perché l'ID utente e il segreto dovrebbero essere utilizzati solo per esaminare l'intero processo di OAuth 2.0.

Sostanzialmente

  1. Usi il token su ogni richiesta per dimostrare che sei quello che sei.
  2. Il token di aggiornamento viene utilizzato solo una volta all'ora (e potenzialmente modificato ad ogni aggiornamento)
  3. L'ID segreto e dell'utente si collegano a Internet il più raramente possibile. Solo quando le opzioni 1 e 2 vengono compromesse.

Personalmente ritengo che l'invio del segreto con il token di aggiornamento sia meno sicuro. Ma forse mi manca qualcosa.

Se hai un altro punto di vista, per favore condividi:)

    
posta David Gatti 07.11.2016 - 12:50
fonte

1 risposta

1

In realtà, se leggi, dice anche

The authorization server MUST:

o require client authentication for confidential clients or for any client that was issued client credentials (or with other authentication requirements),

o authenticate the client if client authentication is included and ensure that the refresh token was issued to the authenticated client, and

o validate the refresh token.

Il che significa proprio questo: passa l'ID cliente e il segreto con la richiesta di aggiornamento del token.

La specifica non è molto esplicita in merito, ma dice che hai dimostrato chi sei (o quale applicazione sei) per poter fare un aggiornamento. Si noti che è indicato come "client riservati", il che significa che ciò è principalmente inteso per il lato server.

Quindi, oltre al semplice passaggio del token di aggiornamento, devi anche passare l'autenticazione del client all'endpoint del token, il che significa che un utente malintenzionato deve impadronirsi di più valori per poter utilizzare un token di aggiornamento che ha ottenuto mani su. Ciò implica che dovresti eventualmente archiviare queste cose in luoghi separati e solo assemblare i dati necessari quando è necessario aggiornare il token.

    
risposta data 01.12.2016 - 16:48
fonte

Leggi altre domande sui tag