Utiliser OAuth (Automotive)

Pour autoriser vos requêtes à annotatePaths, vous devez disposer d'un compte de service figurant 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. L'adresse e-mail du compte de service a le format général 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.

Ajoutez 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 Cloud Console. Consultez la section 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 accorder 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 suivantes sont une vue abrégée de ces instructions.

  1. Connectez-vous à gcloud:

    gcloud auth login
    

    gcloud ouvre une fenêtre de navigateur et vous demande l'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 dans 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 désormais 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, en personnalisant OAUTH_TOKEN. (Collez-le dans votre barre d'adresse.)

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

La réponse doit inclure le champ d'application 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 du protocole OAuth dans un environnement de production, consultez la page 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.