Autentícate en servicios de Cloud con bibliotecas cliente

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se describe cómo puedes usar las bibliotecas cliente y las credenciales predeterminadas de la aplicación para acceder a las APIs de Google.

Las bibliotecas cliente facilitan el acceso a las APIs de Google 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).

Tipos de bibliotecas cliente

Hay dos tipos de bibliotecas cliente disponibles: las bibliotecas cliente de Cloud y las bibliotecas cliente de la API de Google. Ambos tipos son compatibles con las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Explicación de las bibliotecas cliente.

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 credenciales predeterminadas de la aplicación 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.

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 configurar ADC y, luego, instalar la biblioteca cliente de Cloud Storage.

Java


import com.google.cloud.compute.v1.Instance;
import com.google.cloud.compute.v1.InstancesClient;
import java.io.IOException;

public class AuthenticateImplicitWithAdc {

  public static void main(String[] args) throws IOException {
    // TODO(Developer):
    //  1. Before running this sample,
    //  set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc
    //  2. Replace the project variable below.
    //  3. Make sure that the user account or service account that you are using
    //  has the required permissions. For this sample, you must have "compute.instances.list".
    String projectId = "your-google-cloud-project-id";
    authenticateImplicitWithAdc(projectId);
  }

  // When interacting with Google Cloud Client libraries, the library can auto-detect the
  // credentials to use.
  public static void authenticateImplicitWithAdc(String project) throws IOException {

    String zone = "us-central1-a";
    // This snippet demonstrates how to list instances.
    // *NOTE*: Replace the client created below with the client required for your application.
    // Note that the credentials are not specified when constructing the client.
    // Hence, the client library will look for credentials using ADC.
    //
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `instancesClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (InstancesClient instancesClient = InstancesClient.create()) {
      // Set the project and zone to retrieve instances present in the zone.
      System.out.printf("Listing instances from %s in %s:", project, zone);
      for (Instance zoneInstance : instancesClient.list(project, zone).iterateAll()) {
        System.out.println(zoneInstance.getName());
      }
      System.out.println("####### Listing instances complete #######");
    }
  }
}

Python


from google.cloud import storage

def authenticate_implicit_with_adc(project_id="your-google-cloud-project-id"):
    """
    When interacting with Google Cloud Client libraries, the library can auto-detect the
    credentials to use.

    // TODO(Developer):
    //  1. Before running this sample,
    //  set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc
    //  2. Replace the project variable.
    //  3. Make sure that the user account or service account that you are using
    //  has the required permissions. For this sample, you must have "storage.buckets.list".
    Args:
        project_id: The project id of your Google Cloud project.
    """

    # This snippet demonstrates how to list buckets.
    # *NOTE*: Replace the client created below with the client required for your application.
    # Note that the credentials are not specified when constructing the client.
    # Hence, the client library will look for credentials using ADC.
    storage_client = storage.Client(project=project_id)
    buckets = storage_client.list_buckets()
    print("Buckets:")
    for bucket in buckets:
        print(bucket.name)
    print("Listed all storage buckets.")

¿Qué sigue?