S'authentifier pour utiliser les bibliothèques clientes
Cette page explique comment utiliser les bibliothèques clientes pour accéder aux API Google.
Les bibliothèques clientes facilitent l'accès aux Trusted Cloud by S3NS API à l'aide d'un langage compatible. Vous pouvez utiliser directement les API Trusted Cloud by S3NS en envoyant des requêtes brutes au serveur, mais les bibliothèques clientes fournissent des simplifications qui réduisent considérablement la quantité de code à écrire. Cela est particulièrement vrai pour l'authentification, car les bibliothèques clientes sont compatibles avec le service Identifiants par défaut de l'application (ADC, Application Default Credentials).
Utiliser les identifiants par défaut de l'application avec les bibliothèques clientes
Pour authentifier votre application à l'aide du service d'identifiants par défaut de l'application (ADC), vous devez d'abord configurer ADC pour l'environnement dans lequel votre application s'exécute. Lorsque vous utilisez la bibliothèque cliente pour créer un client, celle-ci recherche et utilise automatiquement les identifiants que vous avez fournis au service ADC pour s'authentifier auprès des API utilisées par votre code. Votre application n'a pas besoin de s'authentifier explicitement ou de gérer les jetons. Ces points sont gérés automatiquement par les bibliothèques d'authentification.
Les exemples de code suivants créent un client pour le service Cloud Storage.
Votre code va probablement nécessiter différents clients. Ces exemples visent simplement à montrer comment vous pouvez créer un client et l'utiliser sans code pour vous authentifier explicitement.
Avant de pouvoir exécuter les exemples suivants, vous devez effectuer les étapes ci-après :
Définir la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr
Go
import("context""fmt""io""cloud.google.com/go/storage""google.golang.org/api/iterator")// authenticateImplicitWithAdc uses Application Default Credentials// to automatically find credentials and authenticate.funcauthenticateImplicitWithAdc(wio.Writer,projectIdstring)error{// projectId := "your_project_id"ctx:=context.Background()// NOTE: Replace the client created below with the client required for your application.// Note that the credentials are not specified when constructing the client.// The client library finds your credentials using ADC.client,err:=storage.NewClient(ctx)iferr!=nil{returnfmt.Errorf("NewClient: %w",err)}deferclient.Close()it:=client.Buckets(ctx,projectId)for{bucketAttrs,err:=it.Next()iferr==iterator.Done{break}iferr!=nil{returnerr}fmt.Fprintf(w,"Bucket: %v\n",bucketAttrs.Name)}fmt.Fprintf(w,"Listed all storage buckets.\n")returnnil}
Java
importcom.google.api.gax.paging.Page;importcom.google.cloud.storage.Bucket;importcom.google.cloud.storage.Storage;importcom.google.cloud.storage.StorageOptions;importjava.io.IOException;publicclassAuthenticateImplicitWithAdc{publicstaticvoidmain(String[]args)throwsIOException{// TODO(Developer):// 1. Before running this sample,// set up Application Default Credentials as described in// https://cloud.google.com/docs/authentication/external/set-up-adc// 2. Replace the project variable below.// 3. Make sure you have the necessary permission to list storage buckets// "storage.buckets.list"StringprojectId="your-google-cloud-project-id";authenticateImplicitWithAdc(projectId);}// When interacting with Google Cloud Client libraries, the library can auto-detect the// credentials to use.publicstaticvoidauthenticateImplicitWithAdc(Stringproject)throwsIOException{// *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.Storagestorage=StorageOptions.newBuilder().setProjectId(project).build().getService();System.out.println("Buckets:");Page<Bucket>buckets=storage.list();for(Bucketbucket:buckets.iterateAll()){System.out.println(bucket.toString());}System.out.println("Listed all storage buckets.");}}
Node.js
/** * TODO(developer): * 1. Uncomment and replace these variables before running the sample. * 2. Set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc * 3. Make sure you have the necessary permission to list storage buckets "storage.buckets.list" * (https://cloud.google.com/storage/docs/access-control/iam-permissions#bucket_permissions) */// const projectId = 'YOUR_PROJECT_ID';const{Storage}=require('@google-cloud/storage');asyncfunctionauthenticateImplicitWithAdc(){// 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.// The client library finds your credentials using ADC.conststorage=newStorage({projectId,});const[buckets]=awaitstorage.getBuckets();console.log('Buckets:');for(constbucketofbuckets){console.log(`- ${bucket.name}`);}console.log('Listed all storage buckets.');}authenticateImplicitWithAdc();
PHP
// Imports the Cloud Storage client library.use Google\Cloud\Storage\StorageClient;/** * Authenticate to a cloud client library using a service account implicitly. * * @param string $projectId The Google project ID. */function auth_cloud_implicit($projectId){ $config = [ 'projectId' => $projectId, ]; # If you don't specify credentials when constructing the client, the # client library will look for credentials in the environment. $storage = new StorageClient($config); # Make an authenticated API request (listing storage buckets) foreach ($storage->buckets() as $bucket) { printf('Bucket: %s' . PHP_EOL, $bucket->name()); }}
Python
fromgoogle.cloudimportstoragedefauthenticate_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:")forbucketinbuckets:print(bucket.name)print("Listed all storage buckets.")
Ruby
defauthenticate_implicit_with_adcproject_id:# The ID of your Google Cloud project# 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".###require"google/cloud/storage"# This sample 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=Google::Cloud::Storage.newproject_id:project_idbuckets=storage.bucketsputs"Buckets: "buckets.eachdo|bucket|putsbucket.nameendputs"Plaintext: Listed all storage buckets."end
Utiliser des clés API avec des bibliothèques clientes
Vous ne pouvez utiliser une clé API qu'avec des bibliothèques clientes pour les API qui acceptent les clés API. De plus, la clé API ne doit pas comporter de restriction d'API qui l'empêche d'être utilisée pour l'API.
Lorsque vous utilisez des clés API dans vos applications, assurez-vous qu'elles sont protégées lors du stockage et de la transmission. L'exposition publique de vos clés API peut entraîner des frais inattendus. Pour en savoir plus, consultez la section Bonnes pratiques pour gérer les clés API.
Exigences de sécurité lorsque vous utilisez des configurations d'identifiants provenant d'une source externe
En règle générale, vous générez des configurations d'identifiants à l'aide des commandes gcloud CLI ou de la console Trusted Cloud . Par exemple, vous pouvez utiliser la gcloud CLI pour générer un fichier ADC local ou un fichier de configuration de connexion. De même, vous pouvez utiliser la console Trusted Cloud pour créer et télécharger une clé de compte de service.
Toutefois, pour certains cas d'utilisation, des configurations d'identifiants vous sont fournies par une entité externe. Elles sont destinées à l'authentification auprès des API Google.
Certains types de configurations d'identifiants incluent des points de terminaison et des chemins d'accès aux fichiers, que les bibliothèques d'authentification utilisent pour obtenir un jeton. Lorsque vous acceptez des configurations d'identifiants provenant d'une source externe, vous devez les valider avant de les utiliser. Si vous ne validez pas la configuration, un acteur malveillant peut utiliser les identifiants pour compromettre vos systèmes et vos données.
Valider les configurations d'identifiants à partir de sources externes
La façon dont vous devez valider vos identifiants externes dépend des types d'identifiants acceptés par votre application.
Valider les clés de compte de service
Si votre application n'accepte que les clés de compte de service, utilisez un chargeur d'identifiants spécifique aux clés de compte de service, comme illustré dans les exemples suivants. Le chargeur d'identifiants spécifiques au type n'analyse que les champs présents pour les clés de compte de service, qui n'exposent aucune faille.
Si vous ne pouvez pas utiliser de chargeur d'identifiants spécifique à un type, validez l'identifiant en vérifiant que la valeur du champ type est service_account. Si la valeur du champ type est différente, n'utilisez pas la clé du compte de service.
Le tableau suivant liste les champs que vous devez valider, s'ils sont présents dans vos identifiants. Tous ces champs ne sont pas présents pour toutes les configurations d'identifiants.
Champ
Objectif
Valeur attendue
service_account_impersonation_url
Les bibliothèques d'authentification utilisent ce champ pour accéder à un point de terminaison afin de générer un jeton d'accès pour le compte de service dont l'identité est empruntée.
Les bibliothèques d'authentification envoient un jeton externe à ce point de terminaison pour l'échanger contre un jeton d'accès fédéré.
https://sts.s3nsapis.fr/v1/token
credential_source.file
Les bibliothèques d'authentification lisent un jeton externe à partir du fichier à l'emplacement spécifié par ce champ et l'envoient au point de terminaison token_url.
Chemin d'accès à un fichier contenant un jeton externe. Vous devriez reconnaître ce chemin d'accès.
credential_source.url
Point de terminaison qui renvoie un jeton externe. Les bibliothèques d'authentification envoient une requête à cette URL et envoient la réponse au point de terminaison token_url.
L'un des éléments suivants :
Point de terminaison connu fourni par votre fournisseur de services cloud.
Point de terminaison que vous avez explicitement configuré pour fournir des jetons.
credential_source.executable.command
Si la variable d'environnement GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES est définie sur 1, les bibliothèques d'authentification exécutent cette commande ou ce fichier exécutable.
Fichier ou commande exécutable qui renvoie un jeton externe.
Vous devez reconnaître cette commande et vérifier qu'elle est sûre.
credential_source.aws.url
Les bibliothèques d'authentification envoient une requête à cette URL pour récupérer un jeton de sécurité AWS.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/23 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/23 (UTC)."],[],[],null,[]]