Question API OAuth2 et Google: Temps d’expiration des jetons d’accès?


Nous avons une application Java autonome (voir «Application installée»: https://developers.google.com/accounts/docs/OAuth2) qui fonctionne périodiquement et utilise google API (met à jour certaines informations des bases de données clients / ldap / ...).

Pour accéder aux API Google, nous stockons le nom d'utilisateur et le mot de passe dans le fichier de configuration, ce qui constitue un risque de sécurité et le client n'aime pas cela. Nous aimerions donc utiliser à la place le jeton d’accès longue durée OAuth2.

Quel est le délai d'expiration par défaut pour les jetons d'accès Google OAuth2? 

Comme nous n’aurons que des jetons d’accès dans l’application, l’application elle-même ne pourra pas l’actualiser lorsque le jeton d’accès expire ...

Personnellement, je pense que l'implémentation d'OAuth2 dans ce cas n'apportera aucun avantage majeur, mais concentrons-nous sur la question principale: les délais d'expiration par défaut. 


44
2017-12-13 00:37


origine


Réponses:


Vous ne devez pas concevoir votre application en fonction de la durée de vie spécifique des jetons d'accès. Supposons juste qu'ils sont (très) de courte durée.

Toutefois, une fois le flux d’application installé OAuth2 terminé, vous récupérerez un jeton de rafraîchissement. Ce jeton d'actualisation n'expire jamais et vous pouvez l'utiliser pour l'échanger contre un jeton d'accès si nécessaire. Enregistrez les jetons d'actualisation et utilisez-les pour obtenir des jetons d'accès à la demande (qui doivent ensuite être utilisés immédiatement pour accéder aux données utilisateur).

EDIT: Nonobstant mes commentaires ci-dessus, il existe deux moyens simples pour obtenir le délai d'expiration du jeton d'accès:

  1. C'est un paramètre dans la réponse (expires_in) lorsque vous échangez votre jeton d'actualisation (à l'aide du point d'extrémité / o / oauth2 / token). Plus de détails.
  2. Il existe également une API qui renvoie la durée de vie restante de access_token:

    https://www.googleapis.com/oauth2/v1/tokeninfo?access_token={jeton d'accès}

    Cela retournera un tableau json qui contiendra un expires_in paramètre, qui est le nombre de secondes restantes dans la durée de vie du jeton.


79
2017-12-13 02:00



La valeur par défaut expiry_date du jeton d'accès google oauth2 est 1 heure. La date de péremption est dans l’époque Unix en millisecondes. Si vous voulez lire ceci dans un format lisible, vous pouvez simplement le vérifier ici.Horodatage Unix à l'heure lisible par l'homme


2
2017-08-27 11:53



Voici une autre observation à la question de l'expiration du jeton d'accès Google. J'ai un serveur qui utilise Google Oauth2 et utilise le point de terminaison https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN faire un premier niveau d'authentification. Ce que j'ai trouvé est celui utilisé de cette façon, le jeton d'accès a une durée de vie beaucoup plus longue que 60 minutes. Je ne suis pas certain qu'il expire lorsqu'il n'est utilisé que de cette manière.

Quelqu'un at-il vu la documentation de la durée d’expiration des jetons d’accès utilisés uniquement de cette manière?


-1
2018-03-18 19:20