Usar OAuth (Automotive)

Para autorizar tus solicitudes a annotatePaths, se requiere una cuenta de servicio en la lista de entidades permitidas del proyecto de Google Cloud asociado. Luego, puedes usar la identidad de la cuenta de servicio y generar un token de OAuth, que se pasa como encabezado en las solicitudes.

Configurar una cuenta de servicio

Debido a que solo las cuentas de servicio de la lista de entidades permitidas pueden llamar a annotatePaths, debes actuar como una cuenta de servicio mediante el robo de identidad de cuentas de servicio.

  1. Sigue las instrucciones en Crea una cuenta de servicio. El correo electrónico de la cuenta de servicio tiene el siguiente formato general:

    SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  2. Envía el correo electrónico de la cuenta de servicio a tu representante comercial de Google. Tu representante agrega esta cuenta de servicio a una lista de entidades permitidas con autorización para llamar a annotatePaths.

Agrega usuarios que pueden actuar en nombre de la cuenta de servicio

Agrega un usuario autorizado para suplantar la identidad de la cuenta de servicio:

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

También puedes agregar usuarios autorizados para actuar en nombre de la cuenta de servicio a través de Cloud Console. Consulta Crea una cuenta de servicio.

Soluciona problemas si falla el comando

Si este comando falla, pídele al propietario del proyecto que ejecute el comando por ti o que te otorgue la función roles/iam.serviceAccountAdmin en la cuenta de servicio mediante la ejecución de lo siguiente:

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

Genera un token de OAuth de corta duración

Si quieres configurar annotatePaths con un token de OAuth, pero no tienes un entorno configurado para generar tokens, usa el procedimiento de esta sección a fin de obtener un token de OAuth de corta duración con la CLI de gcloud. (El token vence en una hora). Si quieres obtener más detalles, consulta Crea credenciales de corta duración para una cuenta de servicio. Los siguientes pasos son una vista abreviada de estas instrucciones.

  1. Accede a gcloud:

    gcloud auth login
    

    gcloud abre una ventana del navegador y te solicita permiso.

  2. Configura tu proyecto:

    gcloud config set project PROJECT_ID
    
  3. Obtén un token de acceso de corta duración con print-access-token:

    gcloud auth print-access-token
    

    Este comando muestra un token. Copia el token y, luego, insértalo en YOUR_ACCESS_TOKEN en el siguiente comando:

    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 muestra el token de acceso OAuth de corta duración que ahora puedes usar para realizar solicitudes a annotatePaths.

Verifica los permisos del token de OAuth (opcional)

Si tienes problemas de autorización, puedes verificar los permisos del token OAuth. Para ello, inserta el token en la siguiente URL y personaliza OAUTH_TOKEN. (Pégalo en la barra de direcciones).

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

La respuesta debe incluir un alcance de https://www.googleapis.com/auth/cloud-platform. De lo contrario, asegúrate de configurar el alcance de forma correcta, como se muestra en la sección anterior.

Usa OAuth en entornos de producción

Si necesitas instrucciones para usar OAuth en un entorno de producción, consulta Autenticación en Google.

Solución de problemas

Si tu solicitud muestra un mensaje de error que indica que las credenciales de usuario final no son compatibles con esta API, consulta Las credenciales de usuario no funcionan.