This page describes how you can use client libraries to access Google APIs.
Client libraries make it easier to access Cloud de Confiance by S3NS APIs
using a supported language. You can use Cloud de Confiance by S3NS APIs directly by
making raw requests to the server, but client libraries provide simplifications
that significantly reduce the amount of code you need to write. This is
especially true for authentication, because the client libraries support
Application Default Credentials (ADC).
Use Application Default Credentials with client libraries
To use Application Default Credentials to authenticate your application, you
must first set up ADC for the
environment where your application is running. When you use the client
library to create a client, the client library automatically checks for and
uses the credentials you have provided to ADC to authenticate to the APIs
your code uses. Your application does not need to explicitly authenticate
or manage tokens; these requirements are managed automatically by the
authentication libraries.
The following code samples create a client for the Cloud Storage service.
Your code is likely to need different clients; these samples are meant only to
show how you can create a client and use it without any code to explicitly
authenticate.
Before you can run the following samples, you must complete the following steps:
You can use an API keys only with client libraries for APIs that accept API
keys. In addition, the API key must not have an API restriction that prevents it
from being used for the API.
When you use API keys in your applications, ensure that they are kept secure
during both storage and transmission. Publicly exposing your API keys can
lead to unexpected charges on your account. For more information, see
Best practices for managing API keys.
Security requirements when using credential configurations from an external source
Typically, you generate credential configurations by using gcloud CLI
commands or by using the Cloud de Confiance console. For example, you can use the
gcloud CLI to generate a local ADC file or a login configuration
file. Similarly, you can use the Cloud de Confiance console to create and download
a service account key.
For some use cases, however, credential configurations are provided to you by an
external entity; these credential configurations are intended to be used to
authenticate to Google APIs.
Some types of credential configurations include endpoints and file paths, which
the authentication libraries use to acquire a token. When you accept credential
configurations from an external source, you must validate the configuration
before using it. If you don't validate the configuration, a malicious actor
could use the credential to compromise your systems and data.
Validate credential configurations from external sources
How you need to validate your external credentials depends on what types of
credential your application accepts.
Validate service account keys
If your application accepts only service account keys, use a credential
loader specific to service account keys, as shown in the following examples. The
type-specific credential loader parses only the fields present for service
account keys, which don't expose any vulnerabilities.
If you can't use a type-specific credential loader, validate the credential by
confirming that the value for the type field is service_account. If the
value for the type field is any other value, don't use the service account
key.
The following table lists the fields you need to validate, if they are present
in your credentials. Not all of these fields are present for all credential
configurations.
Field
Purpose
Expected value
service_account_impersonation_url
The authentication libraries use this field to access an endpoint to
generate an access token for the service account being impersonated.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-05-08 UTC."],[],[]]