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 con un lenguaje compatible. Puedes usar las Google Cloud APIs directamente haciendo 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
Solo puedes usar claves de API con bibliotecas cliente para las APIs que aceptan claves de API. Además, la clave de API no debe tener una restricción que impida su uso 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, las configuraciones de credenciales se generan con comandos de gcloud CLI o con la consola de Google Cloud . Por ejemplo, puedes usar gcloud CLI para generar un archivo de ADC local o un archivo de configuración de acceso. De manera similar, puedes usar la consola de Google Cloud para crear y descargar una clave de cuenta de servicio.
Sin embargo, para algunos casos de uso, una entidad externa te proporciona configuraciones de credenciales, que están diseñadas para autenticarte en las APIs de Google.
Algunos tipos de configuraciones de credenciales incluyen endpoints y rutas de acceso a archivos, que las bibliotecas de autenticación usan para adquirir un token. Cuando aceptes configuraciones de credenciales de una fuente externa, debes validarlas antes de usarlas. Si no validas la configuración, un agente malicioso podría usar la credencial para comprometer 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 acepte tu aplicación.
Valida las claves de la cuenta de servicio
Si tu aplicación acepta solo claves de cuentas de servicio, usa un cargador de credenciales específico para las claves de cuentas 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 cuentas de servicio, que no exponen ninguna vulnerabilidad.
C#
var saCredential = ServiceAccountCredential.FromServiceAccountData(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromStream(credentialsStream);
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, valida la credencial confirmando que el valor del campo type
sea service_account
. 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 otros ejemplos de 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 cuya identidad se suplanta. | https://iamcredentials.googleapis.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/v1/token |
credential_source.file |
Las bibliotecas de autenticación leen un token externo del archivo en la ubicación especificada por este campo y lo envían al extremo token_url .
|
Es la ruta de acceso a un archivo que contiene un token externo. Deberías reconocer esta ruta. |
credential_source.url |
Es un extremo que devuelve un token externo. Las bibliotecas de autenticación envían una solicitud a esta URL y envían 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.
|
Es 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. |
Cualquiera 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. |
Cualquiera 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. |
Cualquiera 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.