Esta página descreve como pode usar bibliotecas cliente para aceder às APIs Google.
As bibliotecas cliente facilitam o acesso às Google Cloud APIs através de uma linguagem suportada. Pode usar as Google Cloud APIs diretamente fazendo pedidos não processados ao servidor, mas as bibliotecas cliente oferecem simplificações que reduzem significativamente a quantidade de código que tem de escrever. Isto é especialmente verdade para a autenticação, uma vez que as bibliotecas cliente suportam as Credenciais padrão da aplicação (ADC).
Se aceitar configurações de credenciais (JSON, ficheiros ou streams) de uma fonte externa (por exemplo, um cliente), reveja os requisitos de segurança quando usar configurações de credenciais de uma fonte externa.
Use as Credenciais padrão da aplicação com bibliotecas de cliente
Para usar as credenciais padrão da aplicação para autenticar a sua aplicação, tem de configurar as ADC para o ambiente onde a sua aplicação está a ser executada. Quando usa a biblioteca cliente para criar um cliente, a biblioteca cliente verifica automaticamente e usa as credenciais que forneceu ao ADC para fazer a autenticação nas APIs que o seu código usa. A sua aplicação não precisa de autenticar explicitamente nem gerir tokens. Estes requisitos são geridos automaticamente pelas bibliotecas de autenticação.
Para um ambiente de desenvolvimento local, pode configurar o ADC com as suas credenciais de utilizador ou com a representação da conta de serviço através da CLI gcloud. Para ambientes de produção, configure o ADC associando uma conta de serviço.
Exemplo de criação de cliente
Os seguintes exemplos de código criam um cliente para o serviço Cloud Storage. É provável que o seu código precise de clientes diferentes. Estes exemplos destinam-se apenas a mostrar como pode criar um cliente e usá-lo sem código para autenticar explicitamente.
Antes de poder executar os seguintes exemplos, tem de concluir os seguintes passos:
Ir
Java
Node.js
PHP
Python
Ruby
Use chaves da API com bibliotecas cliente
Pode usar chaves de API apenas com bibliotecas cliente para APIs que aceitem chaves de API. Além disso, a chave da API não pode ter uma restrição da API que impeça a sua utilização para a API.
Para mais informações sobre as chaves da API criadas no modo expresso, consulte as Perguntas frequentes sobre o modo expresso do Google Cloud.
Este exemplo usa a API Cloud Natural Language, que aceita chaves da API, para demonstrar como forneceria uma chave da API à biblioteca.
C#
Para executar este exemplo, tem de instalar a biblioteca cliente de linguagem natural.
C++
Para executar este exemplo, tem de instalar a biblioteca cliente de linguagem natural.
Ir
Para executar este exemplo, tem de instalar a biblioteca cliente de linguagem natural.
Node.js
Para executar este exemplo, tem de instalar a biblioteca cliente de linguagem natural.
Python
Para executar este exemplo, tem de instalar a biblioteca cliente de linguagem natural.
Ruby
Para executar este exemplo, tem de instalar a biblioteca cliente de linguagem natural.
Quando usar chaves de API nas suas aplicações, certifique-se de que as mantém seguras durante o armazenamento e a transmissão. A exposição pública das chaves da API pode resultar em cobranças inesperadas na sua conta. Para mais informações, consulte o artigo Práticas recomendadas para gerir chaves da API.
Requisitos de segurança ao usar configurações de credenciais de uma origem externa
Normalmente, gera configurações de credenciais através de comandos da CLI gcloud ou através da Google Cloud consola. Por exemplo, pode usar a CLI gcloud para gerar um ficheiro ADC local ou um ficheiro de configuração de início de sessão. Da mesma forma, pode usar a consola Google Cloud para criar e transferir uma chave de conta de serviço.
No entanto, para alguns exemplos de utilização, as configurações de credenciais são-lhe fornecidas por uma entidade externa. Estas configurações de credenciais destinam-se a ser usadas para autenticar nas APIs Google.
Alguns tipos de configurações de credenciais incluem pontos finais e caminhos de ficheiros, que as bibliotecas de autenticação usam para adquirir um token. Quando aceita configurações de credenciais de uma origem externa, tem de validar a configuração antes de a usar. Se não validar a configuração, um agente malicioso pode usar a credencial para comprometer os seus sistemas e dados.
Valide as configurações de credenciais de origens externas
A forma como tem de validar as suas credenciais externas depende dos tipos de credenciais que a sua aplicação aceita.
Valide as chaves de contas de serviço
Se a sua aplicação aceitar apenas chaves de contas de serviço, use um carregador de credenciais específico das chaves de contas de serviço, conforme mostrado nos exemplos seguintes. O carregador de credenciais específico do tipo analisa apenas os campos presentes para as chaves de conta de serviço, que não expõem vulnerabilidades.
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)
Se não puder usar um carregador de credenciais específico do tipo, valide a credencial
confirmando que o valor do campo type
é service_account
. Se o valor do campo type
for qualquer outro valor, não use a chave da conta de serviço.
Valide outras configurações de credenciais
Se a sua aplicação aceitar qualquer tipo de credencial além de uma chave de conta de serviço, tem de efetuar uma validação adicional. Exemplos de outros tipos de configurações de credenciais incluem ficheiros de credenciais da ADC, ficheiros de credenciais da federação de identidades da carga de trabalho ou ficheiros de configuração de início de sessão da federação de identidades da força de trabalho.
A tabela seguinte apresenta os campos que tem de validar, se estiverem presentes nas suas credenciais. Nem todos estes campos estão presentes em todas as configurações de credenciais.
Campo | Finalidade | Valor esperado |
---|---|---|
service_account_impersonation_url |
As bibliotecas de autenticação usam este campo para aceder a um ponto final para gerar um token de acesso para a conta de serviço cuja identidade está a ser roubada. | https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/service account email:generateAccessToken |
token_url |
As bibliotecas de autenticação enviam um token externo para este ponto final para o trocar por um token de acesso federado. | https://sts.googleapis.com/v1/token |
credential_source.file |
As bibliotecas de autenticação leem um token externo do ficheiro na localização especificada por este campo e enviam-no para o ponto final token_url .
|
O caminho de um ficheiro que contém um token externo. Deve reconhecer este caminho. |
credential_source.url |
Um ponto final que devolve um token externo. As bibliotecas de autenticação
enviam um pedido para este URL e enviam a resposta para o ponto final
token_url .
|
Um dos seguintes itens:
|
credential_source.executable.command |
Se a variável de ambiente GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
estiver definida como 1 , as bibliotecas de autenticação
executam este comando ou ficheiro executável.
|
Um ficheiro executável ou um comando que devolve um token externo. Deve reconhecer este comando e validar que é seguro. |
credential_source.aws.url |
As bibliotecas de autenticação enviam um pedido para este URL para obter um token de segurança da AWS. |
Qualquer um destes valores exatos:
|
credential_source.aws.region_url |
As bibliotecas de autenticação enviam um pedido para este URL para obter a região da AWS ativa. |
Qualquer um destes valores exatos:
|
credential_source.aws.imdsv2_session_token_url |
As bibliotecas de autenticação enviam um pedido para este URL para obter o token de sessão da AWS. |
Qualquer um destes valores exatos:
|
O que se segue?
- Saiba mais acerca das Credenciais padrão da aplicação.
- Saiba mais acerca das chaves de API.
- Veja uma vista geral dos métodos de autenticação.