Autenticar un servicio de las API de Cloud

Si quieres permitir que el código de aplicación use una API de Cloud, deberás configurar las credenciales adecuadas para que la aplicación autentique su identidad en el servicio y obtenga autorización para realizar tareas. (Estos mecanismos relacionados con credenciales se conocen como esquemas de autenticación).

El esquema de autenticación más simple es el de una clave de API, sin embargo, una clave de API no permite autorizar el servicio, por lo que solo se puede usar en datos públicos o datos que pasan directamente a la API RPC. Por el contrario, la cuenta de servicio es el esquema de autenticación más útil, ya que se puede usar para acceder a una API de Cloud al configurar el código para enviar las credenciales de la cuenta de servicio al servicio.

Al acceder a una API de Google Cloud Platform, recomendamos configurar una clave de API para fines de pruebas y configurar una cuenta de servicio para el uso de producción.

Configurar una clave de API

El mecanismo de autenticación más simple implica pasar una clave API directamente al servicio. Debido a que este esquema está limitado tanto en alcance como en seguridad, te recomendamos que solo uses claves de API para realizar pruebas.

Existen dos flujos de la consola de Google Cloud Platform que se pueden usar para obtener una clave de API y acceder a una API de Google Cloud Platform:

  1. Configurar el proyecto
  2. Usar el administrador de APIs → Credenciales

Configurar el proyecto

Después de habilitar una API de Cloud (como parte de Configurar el proyecto), verás un mensaje que te pedirá que obtengas las credenciales.

Haz clic en "Ir a las credenciales" para abrir la página Agregar credenciales.

Haz clic en "Clave de API". Aparece el cuadro de diálogo Crear una nueva clave.

Selecciona "Tecla del navegador". Aparece la página Crear clave de API del navegador.

Escribe un nombre para esta tecla (arriba se muestra "Curl Test Key", pero puedes elegir el nombre que quieras). Puedes dejar el campo de referencia en blanco, ya que esta clave del navegador solo se utiliza para fines de prueba. Sin embargo, si pretendes desplegar una clave de navegador en producción, debes definir este campo como un dominio apropiado.

Haz clic en "Crear". La página Clave de la API del navegador muestra la clave recién creada.

Es posible que quieras copiar la clave y mantenerla segura (también puedes recuperarla desde la página Administrador de APIs → Credenciales).

Usar el administrador de APIs → Credenciales

Puedes crear una clave de API (y otras credenciales) al seleccionar Administrador de APIs → Credenciales desde la Consola de GCP.

Selecciona "Crear credenciales → clave de API" y luego cree una clave de navegador, como se explica en Configurar el proyecto.

Configurar una cuenta de servicio

La autenticación y autorización de la API de Google Cloud Platform (comúnmente agrupadas juntas como "auth") generalmente se realiza mediante una cuenta de servicio. Una cuenta de servicio permite que el código envíe credenciales de la aplicación directamente a la API de Cloud. Una cuenta de servicio, por ejemplo, una cuenta de usuario, está representada por una dirección de correo electrónico. Sin embargo, a diferencia de una cuenta de usuario, una cuenta de servicio pertenece solo a una aplicación, y solo se puede usar para acceder a la API para la que fue creada. A modo de ejemplo, mostraremos cómo crear credenciales de cuenta de servicio mediante la consola de Google Cloud Platform.

Usar la consola de GCP

Desde la página Administrador de APIs → Credenciales de la consola de GCP, selecciona "Crear credenciales → Clave de cuenta de servicio".

A continuación, selecciona "Nueva cuenta de servicio" en el menú desplegable "Cuenta de servicio".

Escribe un "Nombre" para esta cuenta de servicio. Este nombre se usará como nombre predeterminado para el "ID de cuenta de servicio" (a la izquierda de "@" en la dirección de la ID de cuenta de servicio generada), pero puedes cambiar el nombre de ID de esta cuenta de servicio si lo deseas. Estos nombres pueden ser arbitrarios, solo es importante que los recuerdes. En "Tipo de clave", recomendamos dejar este valor como "JSON". Haz clic en "Crear" y la Consola de GCP generará una clave JSON (como un archivo de texto .json), te pedirá que descargues el archivo en el ordenador y mostrará un cuadro de diálogo Cuenta de servicio creada.

La clave JSON generada será similar a la siguiente clave JSON de muestra:

{
  "type": "service_account",
  "project_id": "project-id",
  "private_key_id": "some_number",
  "private_key": "-----BEGIN PRIVATE KEY-----\n....
  =\n-----END PRIVATE KEY-----\n",
  "client_email": "<api-name>api@project-id.iam.gserviceaccount.com",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/...<api-name>api%40project-id.iam.gserviceaccount.com"
}

Guarda este archivo JSON de forma segura, ya que contiene la clave privada (y este archivo es la única copia de esa clave). Deberás consultar este archivo de clave de cuenta de servicio dentro del código cuando quieras enviar credenciales a la API de Google Cloud Platform.

Realizar autenticaciones con credenciales de aplicación predeterminadas

La forma más sencilla de autenticar las aplicaciones en un servicio de API de Google Cloud Platform consiste en utilizar credenciales de aplicación predeterminadas (ADC). Los servicios que usan ADC primero buscan credenciales dentro de una variable de entorno GOOGLE_APPLICATION_CREDENTIALS. A menos que quieras específicamente que ADC use otras credenciales (por ejemplo, credenciales de usuario), te recomendamos configurar esta variable de entorno para que apunte al archivo de clave de cuenta de servicio (el archivo .json descargado al crear una clave de cuenta de servicio, como se explica en Configurar una cuenta de servicio).

$ export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Cloud Video Intelligence API Documentation