Comment puis-je vérifier un jeton d'accès d'authentification Google ?
J'ai besoin d'interroger Google et de demander : Le [jeton d'accès donné] est-il valable pour le compte Google [example@example.com] ?
Version courte
Il est clair qu'un jeton d'accès fourni par l'intermédiaire de l'application Google Authentication Api : : Authentification OAuth pour les applications Web peut être utilisé pour demander des données à un ensemble de services Google. La manière de vérifier si un jeton d'accès donné est valide pour un compte Google donné n'est pas claire. J'aimerais savoir comment.
Version longue
Je développe une API qui utilise l'authentification par jeton. Un jeton sera renvoyé sur présentation d'un nom d'utilisateur et d'un mot de passe valides ou sur présentation d'un jeton d'une tierce partie provenant de l'une des catégories suivantes N des services vérifiables.
L'un des services tiers sera Google, ce qui permettra à un utilisateur de s'authentifier auprès de mon service à l'aide de son compte Google. Ce service sera ensuite étendu aux comptes Yahoo, aux fournisseurs OpenID de confiance, etc.
Exemple schématique d'un accès basé sur Google :
L'entité "API" est sous mon contrôle total. L'entité "interface publique" est toute application basée sur le web ou le bureau. Certaines interfaces publiques sont sous mon contrôle, d'autres ne le seront pas et d'autres encore ne seront peut-être même jamais connues.
Je ne peux donc pas faire confiance au jeton fourni à l'API à l'étape 3. Ce jeton sera fourni avec l'adresse électronique du compte Google correspondant.
Il faut que j'interroge Google d'une manière ou d'une autre et que je demande : Ce jeton d'accès est-il valable pour example@example.com ? ?
Dans ce cas, example@example.com est l'identifiant unique du compte Google, c'est-à-dire l'adresse électronique utilisée par une personne pour se connecter à son compte Google. On ne peut pas supposer qu'il s'agit d'une adresse Gmail, car une personne peut avoir un compte Google sans avoir de compte Gmail.
La documentation de Google indique clairement comment, avec un jeton d'accès, les données peuvent être récupérées à partir d'un certain nombre de services Google. Rien ne semble indiquer comment vérifier si un jeton d'accès donné est valide en premier lieu.
Mise à jour Le jeton est valable pour tous les services Google. Je ne peux pas comparer un jeton à un service Google pour le vérifier, car je ne sais pas quel sous-ensemble de services Google un utilisateur donné utilise réellement.
En outre, je n'utiliserai jamais le jeton d'accès d'authentification de Google pour accéder aux services de Google, mais seulement pour vérifier qu'un utilisateur supposé de Google est bien celui qu'il prétend être. S'il existe un autre moyen d'y parvenir, je serai heureux d'essayer.