security login - OAuth2 e Google API:tempo di scadenza del token di accesso?




with youtube (4)

Abbiamo un'applicazione Java standalone (vedi "Applicazione installata": https://developers.google.com/accounts/docs/OAuth2 ) che viene eseguita periodicamente e utilizza l'API di google (aggiorna alcune informazioni dai database dei clienti / ldap / ...) .

Per accedere alle API di Google, memorizziamo nome utente e password nel file di configurazione, che è un rischio per la sicurezza e al cliente non piace. Quindi vorremmo utilizzare il token di accesso long life OAuth2.

qual è il tempo di scadenza predefinito per i token di accesso di Google OAuth2?

Dato che avremo solo token di accesso nell'applicazione, l'app stessa non può aggiornarla quando il token di accesso scade ...

Personalmente penso che l'implementazione di OAuth2 in questo caso non porterà grandi benefici, ma concentriamoci sulla domanda principale - i tempi di scadenza predefiniti.


Answers

Ecco un'ulteriore osservazione alla domanda di scadenza del token di accesso di Google. Ho un server che utilizza Google Oauth2 e utilizza l'endpoint https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN per eseguire un primo livello di autenticazione. Quello che ho trovato è che usato in questo modo, il token di accesso ha una durata della vita molto più lunga di 60 minuti. Non sono sicuro che scada quando viene usato solo in questo modo.

Qualcuno ha visto la documentazione della durata della scadenza dei token di accesso utilizzata solo in questo modo?


La data di scadenza predefinita per il token di accesso google oauth2 è di 1 ora. Il expiry_date è nel tempo dell'epoca Unix in millisecondi. Se vuoi leggere questo in formato leggibile dall'uomo, puoi semplicemente controllarlo qui. Timestamp Unix al tempo leggibile dall'uomo


Non dovresti progettare la tua applicazione in base alla durata specifica dei token di accesso. Supponiamo che siano (molto) di breve durata.

Tuttavia, dopo aver completato con successo il flusso dell'applicazione installato da OAuth2, si riceverà un token di aggiornamento. Questo token di aggiornamento non scade mai e puoi usarlo per scambiarlo per un token di accesso, se necessario. Salva i token di aggiornamento e usali per ottenere token di accesso su richiesta (che dovrebbero quindi essere utilizzati immediatamente per ottenere l'accesso ai dati dell'utente).

EDIT: nonostante i miei commenti precedenti, ci sono due semplici modi per ottenere il tempo di scadenza del token di accesso:

  1. È un parametro nella risposta ( expires_in ) quando si scambia il token di aggiornamento (utilizzando / o / oauth2 / endpoint token). Più dettagli.
  2. Esiste anche un'API che restituisce la durata residua del token di accesso:

    https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {accessToken}

    Ciò restituirà un array JSON che conterrà un parametro expires_in , che è il numero di secondi rimasti nella vita del token.


Gli algoritmi di crittografia e hash funzionano in modo simile. In ogni caso, è necessario creare confusione e diffusione tra i bit. Ridotto, la confusione sta creando una relazione complessa tra la chiave e il testo cifrato, e la diffusione sta diffondendo le informazioni di ogni bit in giro.

Molte funzioni di hash utilizzano in realtà algoritmi di crittografia (o primitive degli algoritmi di crittografia), ad esempio, il candidato SHA-3 Skein utilizza Threefish come metodo sottostante per elaborare ogni blocco, ma invece di mantenere ogni blocco di testo cifrato, sono distruttivi, deterministicamente uniti insieme a una lunghezza fissa





security google-api oauth-2.0 google-api-java-client google-oauth