2013-01-14 11 views
11

abbiamo assicurato il nostro server REST con OAuth2 e attuato la credenziali del client tipo di sovvenzione per diverse applicazioni client che controlliamo. Ora ci troviamo di fronte alla decisione di rendere i token longevo (vale a dire che scadono "mai") ​​o di avere i client reautentati molto spesso (a seconda della scadenza del token di aggiornamento). Il primo significa che un token catturato può essere usato da una parte malintenzionata, il secondo significa esponendo il client secret molto spesso, che a sua volta può essere utilizzato per ottenere token.OAuth2 - vissuto a lungo Gettoni vs Reauthentication in credenziali client a flusso

Quale è più sicuro in un server-risorsa per l'autenticazione client-server? Sia il token che il client secret possono essere invalidati se sospettiamo un furto. Ovviamente tutte le comunicazioni vengono effettuate tramite https ..

Attualmente stiamo pensando che il segreto del client sia più potente del token e quindi un token longevo dovrebbe essere migliore per questo scenario a due gambe. (Per qualsiasi tipo di concessione a tre vie che implementeremo presto preferiremmo un token di breve durata che agisca come sessione utente).

Grazie per i vostri pensieri!

risposta

10

Secondo the specification, le credenziali del client flusso è consentito solo per i clienti che non eseguono il rischio di avere la sua cliente segreto rubati:

Le credenziali del client garantiscono tipo deve essere utilizzato solo da clienti confidenziali.

Quindi, se si utilizza questo flusso in combinazione con un'applicazione su una piattaforma non attendibile, si dovrebbe assolutamente riconsiderare questa decisione.

Con il presupposto che la vostra piattaforma è affidabile, non è necessario preoccuparsi di un furto del client . La tua decisione viene quindi esaminata in base al tempo in cui un utente malintenzionato può giocare con un token di accesso rubato rispetto al sovraccarico aggiuntivo per la reautenticazione (solo one call, ma comunque un piccolo ritardo). Il passaggio di nuova autenticazione non è un problema relativo all'esposizione del segreto del cliente, quando entrambi i partecipanti sono affidabili e si sta utilizzando una buona protezione del livello di trasporto contro gli attacchi MITM.

Si noti inoltre, che si tratta di not recommended (e anche inutile) per utilizzare aggiornamento gettoni con le credenziali del client flusso:

Un token di aggiornamento non devono essere inclusi.

+0

Grazie per la risposta. Probabilmente andremo con il token longevo, aggiungendo un livello di Persistenza, in modo da poter invalidare il token di volta in volta. Ma ci sono altre due domande che la tua risposta ha sollevato. Per la leggibilità li aggiungerò al mio post. Apprezzerei i tuoi pensieri su quelli. – Pete

+0

non importa, ho appena risposto alle mie domande io stesso;;) – Pete

Problemi correlati