OAuth 2.0: i token di aggiornamento sono ancora utili quando tutti i client sono pubblici?

1

Sto progettando una nuova API REST per un servizio di app per dispositivi mobili, che è qualcosa che non ho ancora dovuto fare da zero. Ho deciso di utilizzare OAuth 2.0 con la concessione delle credenziali di password del proprietario di risorse.

Idealmente, gli utenti devono effettuare il login una volta e rimanere autenticati per sempre, finché non si disconnettono o l'accesso viene revocato. Ho letto che dovrei usare token di accesso di breve durata e un token di aggiornamento a lungo termine, con il vantaggio che anche se il token di aggiornamento viene rubato, è necessario il client secret per richiedere un nuovo token di accesso, che potrebbe essere revocato.

Ma le app mobili sono considerate client pubblici, che non dovrebbero utilizzare i segreti dei clienti, quindi c'è davvero qualche vantaggio nell'utilizzare i token di aggiornamento in questa situazione, piuttosto che usare solo token di accesso di lunga durata?

    
posta soren121 14.06.2017 - 09:21
fonte

1 risposta

1

Hai capito bene: non c'è alcun beneficio effettivo. Un segreto client all'interno di un file eseguibile pubblico può essere facilmente trovato. O tramite l'analisi del binario o del traffico di rete. Puoi renderlo molto difficile ma non impossibile.

Tuttavia, raccomando vivamente contro i token di accesso di lunga durata. Se uno di questi viene rubato non puoi revocarlo. È là fuori e vale probabilmente per anni. Tuttavia, se si utilizzano token di aggiornamento e token di accesso che vivono per ore al massimo, è possibile impedire a un utente malintenzionato di ottenere un nuovo token di accesso anche se riescono a sottrarre il token di aggiornamento.

    
risposta data 14.06.2017 - 09:55
fonte

Leggi altre domande sui tag