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 un 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 cuenta de servicio mediante suplantación de identidad.

  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 al representante de tu empresa de Google. Tu representante agrega esta cuenta de servicio a una lista de entidades permitidas autorizada para llamar a annotatePaths.

Agrega usuarios que pueden usar la identidad 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 la consola de Cloud. Consulta Crea una cuenta de servicio.

Soluciona problemas si falla el comando

Si este comando falla, pídele a un 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 del siguiente comando:

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

Genera un token OAuth de corta duración

Si deseas configurar annotatePaths con un token de OAuth, pero no tienes un entorno configurado para generar tokens, usa el procedimiento de esta sección para obtener un token de OAuth de corta duración con gcloud CLI. (El token vence en una hora). Si deseas obtener más detalles, consulta Crea credenciales de corta duración para una cuenta de servicio. En los siguientes pasos, se proporciona 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 mediante print-access-token:

    gcloud auth print-access-token
    

    Este comando devuelve 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 de 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 de 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 deseas obtener 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.