Utiliser OAuth (Automotive)

Pour autoriser vos requêtes à annotatePaths, vous devez disposer d'un compte de service sur la liste d'autorisation pour le projet Google Cloud associé. Vous pouvez ensuite emprunter l'identité du compte de service et générer un jeton OAuth, qui est transmis en tant qu'en-tête dans les requêtes.

Configurer un compte de service

Étant donné que seuls les comptes de service de la liste d'autorisation sont autorisés à appeler annotatePaths, vous devez agir en tant que compte de service via l'emprunt d'identité de compte de service.

  1. Suivez les instructions de la section Créer un compte de service. Le format général de l'adresse e-mail du compte de service est le suivant:

    SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  2. Envoyez l'e-mail du compte de service à votre représentant Google. Votre représentant ajoute ce compte de service à une liste d'autorisation autorisée à appeler annotatePaths.

Ajouter des utilisateurs pouvant emprunter l'identité du compte de service

Ajoutez un utilisateur autorisé à emprunter l'identité du compte de service:

gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT \
    --member=user:USER_EMAIL \
    --role=roles/iam.serviceAccountTokenCreator \
    --project=PROJECT_ID

Vous pouvez également ajouter des utilisateurs autorisés à emprunter l'identité du compte de service via la console Cloud. Consultez Créer un compte de service.

Résoudre les problèmes en cas d'échec de la commande

Si cette commande échoue, demandez à un propriétaire du projet d'exécuter la commande à votre place ou de vous attribuer le rôle roles/iam.serviceAccountAdmin sur le compte de service en exécutant la commande suivante:

gcloud iam service-accounts add-iam-policy-binding \
   SERVICE_ACCOUNT \
    --member=USER_EMAIL \
    --role=roles/iam.serviceAccountAdmin \
    --project=PROJECT_ID

Générer un jeton OAuth de courte durée

Si vous souhaitez configurer annotatePaths à l'aide d'un jeton OAuth, mais que vous n'avez pas configuré d'environnement pour générer des jetons, suivez la procédure décrite dans cette section pour obtenir un jeton OAuth de courte durée à l'aide de la gcloud CLI. (Le jeton expire au bout d'une heure.) Pour en savoir plus, consultez la section Créer des identifiants éphémères pour un compte de service. Les étapes ci-dessous sont une version abrégée de ces instructions.

  1. Connectez-vous à gcloud:

    gcloud auth login
    

    gcloud ouvre une fenêtre de navigateur et vous invite à donner votre autorisation.

  2. Définissez votre projet:

    gcloud config set project PROJECT_ID
    
  3. Obtenez un jeton d'accès de courte durée à l'aide de print-access-token:

    gcloud auth print-access-token
    

    Cette commande renvoie un jeton. Copiez le jeton et insérez-le dans YOUR_ACCESS_TOKEN à la commande suivante:

    curl -X POST \
    https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT:generateAccessToken \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d '{"scope": ["https://www.googleapis.com/auth/cloud-platform"],"lifetime": "3600s"}'
    

    La CLI renvoie le jeton d'accès OAuth de courte durée que vous pouvez maintenant utiliser pour envoyer des requêtes à annotatePaths.

(Facultatif) Vérifier les autorisations du jeton OAuth

Si vous rencontrez des problèmes d'autorisation, vous pouvez vérifier les autorisations de votre jeton OAuth en insérant le jeton dans l'URL suivante et en personnalisant OAUTH_TOKEN. (Collez-le dans la barre d'adresse.)

https://oauth2.googleapis.com/tokeninfo?access_token=OAUTH_TOKEN

La réponse doit inclure un champ d'application de https://www.googleapis.com/auth/cloud-platform. Si ce n'est pas le cas, assurez-vous de définir correctement le champ d'application, comme indiqué dans la section précédente.

Utiliser OAuth dans les environnements de production

Pour obtenir des instructions sur l'utilisation d'OAuth dans un environnement de production, consultez Authentification chez Google.

Dépannage

Si votre requête renvoie un message d'erreur indiquant que les identifiants de l'utilisateur final ne sont pas compatibles avec cette API, consultez la section Les identifiants de l'utilisateur ne fonctionnent pas.