En esta página, se describe cómo puedes usar las bibliotecas cliente para acceder a las APIs de Google.
Las bibliotecas cliente facilitan el acceso a las APIs deGoogle Cloud mediante un lenguaje compatible. Puedes usar las APIs de Google Cloud directamente mediante solicitudes sin procesar al servidor, pero las bibliotecas cliente proporcionan simplificaciones que reducen de manera significativa la cantidad de código que debes escribir. Esto se aplica en particular a la autenticación, ya que las bibliotecas cliente son compatibles con las credenciales predeterminadas de la aplicación (ADC).
Si aceptas configuraciones de credenciales (JSON, archivos o transmisiones) de una fuente externa (por ejemplo, un cliente), revisa los requisitos de seguridad cuando uses configuraciones de credenciales de una fuente externa.
Usa las credenciales predeterminadas de la aplicación con bibliotecas cliente
Para usar las credenciales predeterminadas de la aplicación a fin de autenticar tu aplicación, primero debes configurar las ADC para el entorno en el que se ejecuta tu aplicación. Cuando usas la biblioteca cliente para crear un cliente, esta busca y usa de forma automática las credenciales que proporcionaste a ADC para autenticarte en las APIs que usa tu código. Tu aplicación no necesita autenticar ni administrar tokens de forma explícita. Las bibliotecas de autenticación administran estos requisitos de forma automática.
Para un entorno de desarrollo local, puedes configurar ADC con tus credenciales de usuario o con identidad temporal como cuenta de servicio mediante gcloud CLI. Para los entornos de producción, debes configurar las ADC mediante la conexión de una cuenta de servicio.
Ejemplo de creación de cliente
Las siguientes muestras de código crean un cliente para el servicio de Cloud Storage. Es probable que tu código necesite diferentes clientes. El propósito de estos ejemplos es solo mostrar cómo puedes crear un cliente y usarlo sin ningún código para autenticarte de forma explícita.
Antes de ejecutar las siguientes muestras, debes completar los siguientes pasos:
Go
Java
Node.js
PHP
Python
Ruby
Usa claves de API con bibliotecas cliente
Puedes usar una clave de API solo con bibliotecas cliente para las APIs que acepten claves de API. Además, la clave de API no debe tener una restricción que impida que se use para la API.
Para obtener más información sobre las claves de API creadas en el modo exprés, consulta las Preguntas frecuentes sobre el modo exprés de Google Cloud.
En este ejemplo, se usa la API de Cloud Natural Language, que acepta claves de API, para demostrar cómo se proporciona una clave de API a la biblioteca.
C#
Para ejecutar esta muestra, debes instalar la biblioteca cliente de Natural Language.
C++
Para ejecutar esta muestra, debes instalar la biblioteca cliente de Natural Language.
Go
Para ejecutar esta muestra, debes instalar la biblioteca cliente de Natural Language.
Node.js
Para ejecutar esta muestra, debes instalar la biblioteca cliente de Natural Language.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de Natural Language.
Cuando uses claves de API en tus aplicaciones, asegúrate de que se mantengan seguras durante el almacenamiento y la transmisión. Si expones tus claves de API de forma pública, puedes generar cargos inesperados en tu cuenta. Para obtener más información, consulta Prácticas recomendadas para administrar las claves de API.
Requisitos de seguridad cuando se usan configuraciones de credenciales de una fuente externa
Por lo general, generas configuraciones de credenciales con los comandos de la CLI de gcloud o con la consola de Google Cloud. Por ejemplo, puedes usar la CLI de gcloud para generar un archivo ADC local o un archivo de configuración de acceso. Del mismo modo, puedes usar la consola de Google Cloud para crear y descargar una clave de cuenta de servicio.
Sin embargo, en algunos casos de uso, una entidad externa te proporciona la configuración de credenciales, que se usará para autenticar en las APIs de Google.
Algunos tipos de configuraciones de credenciales incluyen extremos y rutas de acceso a archivos, que las bibliotecas de autenticación usan para adquirir un token. Cuando aceptas configuraciones de credenciales de una fuente externa, debes validar la configuración antes de usarla. Si no validas la configuración, un agente malicioso podría usar la credencial para vulnerar tus sistemas y datos.
Valida la configuración de credenciales de fuentes externas
La forma en que debes validar tus credenciales externas depende de los tipos de credenciales que acepta tu aplicación.
Valida las claves de la cuenta de servicio
Si tu aplicación acepta solo claves de cuenta de servicio, usa un cargador de credenciales específico para las claves de cuenta de servicio, como se muestra en los siguientes ejemplos. El cargador de credenciales específico del tipo solo analiza los campos presentes para las claves de cuenta de servicio, que no exponen ninguna vulnerabilidad.
C#
var saCredential = ServiceAccountCredential.FromServiceAccountData(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromJson(json, new HttpTransportFactory());
Node.js
const keys = JSON.parse(json_input)
const authClient = JWT.fromJSON(keys);
PHP
cred = new Google\Auth\Credentials\ServiceAccountCredentials($scope, $jsonKey);
Python
cred = service_account.Credentials.from_service_account_info(json_data)
Ruby
creds = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_stream)
Si no puedes usar un cargador de credenciales específico del tipo, confirma que el valor del campo type
sea service_account
para validar la credencial. Si el valor del campo type
es cualquier otro valor, no uses la clave de la cuenta de servicio.
Valida otras configuraciones de credenciales
Si tu aplicación acepta cualquier tipo de credencial además de una clave de cuenta de servicio, debes realizar una verificación adicional. Entre los ejemplos de otros tipos de configuraciones de credenciales, se incluyen los archivos de credenciales de ADC, los archivos de credenciales de la federación de Workload Identity o los archivos de configuración de acceso de la federación de identidades de personal.
En la siguiente tabla, se enumeran los campos que debes validar, si están presentes en tus credenciales. No todos estos campos están presentes en todas las configuraciones de credenciales.
Campo | Objetivo | Valor esperado |
---|---|---|
service_account_impersonation_url |
Las bibliotecas de autenticación usan este campo para acceder a un extremo y generar un token de acceso para la cuenta de servicio de la que se suplanta la identidad. | https://iamcredentials.googleapis.com.com/v1/projects/-/serviceAccounts/service account email:generateAccessToken |
token_url |
Las bibliotecas de autenticación envían un token externo a este extremo para intercambiarlo por un token de acceso federado. | https://sts.googleapis.com.com/v1/token |
credential_source.file |
Las bibliotecas de autenticación leen un token externo del archivo en la ubicación que especifica este campo y lo envían al extremo token_url .
|
Es la ruta de acceso de un archivo que contiene un token externo. Deberías reconocer esta ruta. |
credential_source.url |
Un extremo que muestra un token externo. Las bibliotecas de autenticación envían una solicitud a esta URL y la respuesta al extremo token_url .
|
Uno de los siguientes elementos:
|
credential_source.executable.command |
Si la variable de entorno GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES está configurada como 1 , las bibliotecas de autenticación ejecutan este comando o archivo ejecutable.
|
Un archivo o comando ejecutable que devuelve un token externo. Debes reconocer este comando y validar que sea seguro. |
credential_source.aws.url |
Las bibliotecas de autenticación emiten una solicitud a esta URL para recuperar un token de seguridad de AWS. |
Uno de estos valores exactos:
|
credential_source.aws.region_url |
Las bibliotecas de autenticación envían una solicitud a esta URL para recuperar la región de AWS activa. |
Uno de estos valores exactos:
|
credential_source.aws.imdsv2_session_token_url |
Las bibliotecas de autenticación emiten una solicitud a esta URL para recuperar el token de sesión de AWS. |
Uno de estos valores exactos:
|
¿Qué sigue?
- Obtén más información sobre las credenciales predeterminadas de la aplicación.
- Obtén más información sobre las claves de API.
- Consulta una descripción general de los métodos de autenticación.