Las bibliotecas cliente facilitan el acceso a Google Cloud APIs mediante un lenguaje compatible. Puedes usar las APIs directamente con solicitudes sin procesar al servidor, pero las bibliotecas cliente proporcionan simplificaciones que reducen de manera significativa la cantidad de código que debes escribir. Google Cloud 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
Rita
Usa claves de API con bibliotecas cliente
Solo puedes usar claves de API con bibliotecas cliente para APIs que acepten claves de API. Además, la clave de API no debe tener una restricción de API 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.
Rita
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 comandos de gcloud CLI o con la Google Cloud consola. Por ejemplo, puedes usar gcloud CLI para generar un archivo ADC local o un archivo de configuración de acceso. Del mismo modo, puedes usar la Google Cloud consola para crear y descargar una clave de cuenta de servicio.
Sin embargo, para algunos casos de uso, una entidad externa te proporciona las configuraciones de credenciales. Estas configuraciones de credenciales están diseñadas para usarse para autenticarse en las APIs de Google.
Algunos tipos de configuraciones de credenciales incluyen extremos y rutas de acceso de 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 poner en riesgo tus sistemas y datos.
Valida las configuraciones 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 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 para el tipo analiza solo los campos presentes para las claves de cuenta de servicio, que no exponen ninguna vulnerabilidad.
C#
var saCredential = CredentialFactory.FromStream<ServiceAccountCredential>(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)
Rita
creds = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_stream)
Si no puedes usar un cargador de credenciales específico para el tipo, valida la credencial. Para ello, confirma que el valor del campo type sea service_account. Si el valor del campo type es cualquier otro valor, no uses la clave de 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. Algunos ejemplos de otros tipos de configuraciones de credenciales incluyen archivos de credenciales de ADC, archivos de credenciales de federación de identidades para cargas de trabajo, o archivos de configuración de acceso de 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 para 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 que 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
token_url extremo.
|
Es la ruta de acceso de un archivo que contiene un token externo. Debes reconocer esta ruta de acceso. |
credential_source.url |
Es un extremo que muestra un token externo. Las bibliotecas de autenticación
envían una solicitud a esta URL y envían la respuesta al
token_url extremo.
|
Uno de los siguientes elementos:
|
credential_source.executable.command |
Si la variable de entorno GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
se establece en 1, las bibliotecas de autenticación
ejecutan este comando o archivo ejecutable.
|
Un archivo ejecutable o un comando que muestra 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 emiten una solicitud a esta URL para recuperar la región activa de AWS. |
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.