Come generare e archiviare in modo sicuro una password dai dati utente di Google OAuth (per un'altra API REST)

1

Ho un'app Web, in cui gli utenti eseguono l'accesso con Google (OAuth 2.0). Questa app Web utilizza un'API REST (figo.io) in background, quindi devo creare un utente API con credenziali.

Ora ho il seguente problema: devo generare un nome utente e una password dal nulla. Il nome utente è banale, ma la password ...

Poiché i miei utenti si collegano a Google, non conosco la loro password e non voglio chiedere loro una password aggiuntiva per il meglio di una UX. L'unica cosa che ho sono i dati del profilo Google+.

Quindi, come posso generare questa password dell'API REST e memorizzarla in modo sicuro? Nei loro documenti , gli sviluppatori API dichiarano:

ONE FIGO USER PER APPLICATION USER
[...]
In this scenario it is recommend to create the figo users with a username directly mappable from your application user IDs, e.g. using [your user ID]@figo.[you application domain]. That way you do not have to save any additional information and still do not block email address of your user for explicit figo usage. Some similar, but more secure, mapping is recommended for the users password.

Non riesco a pensare a un modo sicuro per ottenere questo ultimo bit sulla password.

Finora, la soluzione migliore che ho trovato è utilizzare l'UUID dei miei utenti (un hash) e l'ID di Google (dal loro profilo, è un int) e cancellare questi due valori in una password.

Ma se un utente malintenzionato hackerasse il mio database, conoscerebbe l'id di Google e l'uuid ...

Qualcuno di voi ha una grande idea? O "hacking il mio database" non è un problema di cui dovrei preoccuparmi? Devo dire che l'API di figo è utilizzata per l'online banking, quindi voglio davvero che i dati degli utenti siano sicuri.

P.S .: Solo FYI, io uso un server node / express in questa web app. Io uso il passaporto per Google OAuth.

    
posta Eric Lambrecht 07.11.2016 - 15:11
fonte

0 risposte

Leggi altre domande sui tag