Este documento ajuda a compreender alguns métodos e conceitos de autenticação importantes, e onde obter ajuda com a implementação ou a resolução de problemas de autenticação. A documentação de autenticação foca-se principalmente nos Google Cloud serviços, mas a lista de exemplos de utilização de autenticação e o material introdutório nesta página também incluem exemplos de utilização para outros produtos Google.
Introdução
A autenticação é o processo através do qual a sua identidade é confirmada através da utilização de algum tipo de credencial. A autenticação consiste em provar que é quem diz ser.
A Google fornece muitas APIs e serviços que requerem autenticação para aceder. A Google também fornece vários serviços que alojam aplicações escritas pelos nossos clientes. Estas aplicações também têm de determinar a identidade dos respetivos utilizadores.
As APIs Google implementam e expandem a estrutura do OAuth 2.0.
Como receber ajuda com a autenticação
Pretendo... | Informações |
---|---|
Autentique-se no Vertex AI no modo expresso (Pré-visualização). | Use a chave de API criada para si durante o processo de início de sessão para se autenticar no Vertex AI. Para mais informações, consulte a Vista geral da Vertex AI no modo expresso. |
Autenticar um serviço a partir da minha aplicação usando uma linguagem de programação de alto nível. Google Cloud | Configure as Credenciais padrão da aplicação, e, em seguida, use uma das bibliotecas de cliente do Google Cloud. |
Autentique-se numa aplicação que requer um token de ID. | Obtenha um token de ID do OpenID Connect (OIDC) e forneça-o com o seu pedido. |
Implemente a autenticação do utilizador para uma aplicação que aceda aos serviços e recursos da Google ou da Google Cloud . | Consulte o artigo Autentique utilizadores da aplicação para ver uma comparação das opções. |
Experimentar alguns comandos gcloud no meu ambiente de desenvolvimento local.
|
Inicialize a CLI gcloud. |
Experimentar alguns pedidos da Google Cloud API REST no meu ambiente de desenvolvimento local. |
Use uma ferramenta de linha de comandos, como curl , para chamar a API REST.
|
Experimentar um fragmento do código incluído na documentação do meu produto. | Configure o ADC para um ambiente de desenvolvimento local, e instale a biblioteca cliente do seu produto no ambiente local. A biblioteca de cliente encontra automaticamente as suas credenciais. |
Receba ajuda com outro exemplo de utilização da autenticação. | Consulte a página Exemplos de utilização da autenticação. |
Veja uma lista dos produtos que a Google fornece no espaço de gestão de identidade e acesso. | Consulte a página Produtos de gestão de identidade e de acesso da Google. |
Escolha o método de autenticação certo para o seu exemplo de utilização
Quando acede aos Google Cloud serviços através da CLI Google Cloud, das bibliotecas de cliente da nuvem, das ferramentas que suportam as credenciais predefinidas da aplicação (ADC) como o Terraform ou os pedidos REST, use o diagrama seguinte para ajudar a escolher um método de autenticação:
Este diagrama orienta-o através das seguintes perguntas:
-
Está a executar código num ambiente de desenvolvimento de utilizador único, como a sua própria estação de trabalho, o Cloud Shell ou uma interface de computador virtual?
- Em caso afirmativo, avance para a pergunta 4.
- Caso contrário, avance para a pergunta 2.
- Está a executar código no Google Cloud?
- Em caso afirmativo, avance para a pergunta 3.
- Caso contrário, avance para a pergunta 5.
- Está a executar contentores no Google Kubernetes Engine?
- Em caso afirmativo, use a federação de identidades da carga de trabalho para o GKE para anexar contas de serviço a pods do Kubernetes.
- Se não, anexe uma conta de serviço ao recurso.
-
O seu exemplo de utilização requer uma conta de serviço?
Por exemplo, quer configurar a autenticação e a autorização de forma consistente para a sua aplicação em todos os ambientes.
-
A sua carga de trabalho autentica-se com um fornecedor de identidade externo que suporta a
federação de identidade da carga de trabalho?
- Se sim, configure a federação de identidades da carga de trabalho para permitir que as aplicações executadas no local ou noutros fornecedores de nuvem usem uma conta de serviço.
- Se não, crie uma chave de conta de serviço.
Métodos de autorização para serviços Google Cloud
A autorização para Google Cloud é processada principalmente pela gestão de identidade e de acesso (IAM). A IAM oferece um controlo detalhado por principal e por recurso.
Pode aplicar outra camada de autorização com âmbitos do
OAuth 2.0. Quando se autentica num serviço, pode usar um âmbito global que autoriza o acesso a todos os serviços (https://www.googleapis.com/auth/cloud-platform
) ou, se um serviço o suportar, pode restringir o acesso com um âmbito mais limitado. Google Cloud Google Cloud Os âmbitos limitados podem ajudar a reduzir o risco se o seu código estiver a ser executado em ambientes onde os tokens comprometidos possam ser um problema, como apps para dispositivos móveis.
Os âmbitos de autorização aceites por um método de API estão listados na documentação de referência da API para cada Google Cloud serviço.
Credenciais padrão da aplicação
Application Default Credentials (ADC) é uma estratégia usada pelas bibliotecas de autenticação para encontrar automaticamente credenciais com base no ambiente da aplicação. As bibliotecas de autenticação disponibilizam essas credenciais às bibliotecas cliente da Cloud e bibliotecas cliente de APIs Google. Quando usa o ADC, o seu código pode ser executado num ambiente de desenvolvimento ou de produção sem alterar a forma como a sua aplicação se autentica nos Google Cloud serviços e APIs.
A ADC pode simplificar o processo de desenvolvimento, uma vez que lhe permite usar o mesmo código de autenticação em vários ambientes. No entanto, se estiver a usar um serviço no modo expresso, não precisa de usar o ADC.
Antes de poder usar o ADC, tem de fornecer as suas credenciais ao ADC, com base na localização onde quer executar o código. O ADC localiza automaticamente as credenciais e recebe um token em segundo plano, o que permite que o seu código de autenticação seja executado em diferentes ambientes sem modificações. Por exemplo, a mesma versão do seu código pode ser autenticada com as APIs quando executada numa estação de trabalho de desenvolvimento ou no Compute Engine.Google Cloud
As suas credenciais do gcloud não são as mesmas que as credenciais que fornece ao ADC através da CLI gcloud. Para mais informações, consulte o artigo Configuração de autenticação da CLI gcloud e configuração do ADC.
Terminologia
Os seguintes termos são importantes para compreender quando se discute a autenticação e a autorização.
Autenticação
A autenticação é o processo de determinar a identidade do principal que está a tentar aceder a um recurso.
Autorização
A autorização é o processo de determinar se o principal ou a aplicação que tenta aceder a um recurso foi autorizado para esse nível de acesso.
Credenciais
Quando este documento usa o termo conta de utilizador, refere-se a uma Conta Google ou a uma conta de utilizador gerida pelo seu fornecedor de identidade e federada com a Federação de identidades da força de trabalho.
Para a autenticação, as credenciais são um objeto digital que comprovam a identidade. As palavras-passe, os PINs e os dados biométricos podem ser usados como credenciais, dependendo dos requisitos da aplicação. Por exemplo, quando inicia sessão na sua conta de utilizador, faculta a sua palavra-passe e cumpre todos os requisitos de autenticação de dois fatores como prova de que a conta lhe pertence e que não está a ser alvo de roubo de identidade por parte de um ator malicioso.
Os tokens não são credenciais. São um objeto digital que prova que o autor da chamada forneceu as credenciais adequadas.
O tipo de credencial que tem de facultar depende do que está a autenticar.
Pode criar os seguintes tipos de credenciais na Google Cloud consola:
Chaves da API
Pode usar chaves da API com APIs que as aceitem para aceder à API. As chaves da API que não estão associadas a uma conta de serviço fornecem um projeto que é usado para fins de faturação e quota. Se a chave da API estiver associada a uma conta de serviço, a chave da API também fornece a identidade e a autorização da conta de serviço (pré-visualização).
Para mais informações sobre chaves da API, consulte o artigo Chaves da API. Para mais informações sobre as chaves da API associadas a uma conta de serviço, consulte as Perguntas frequentes sobre o modo expresso do Google Cloud.
IDs de cliente OAuth
Os IDs de cliente OAuth são usados para identificar uma aplicação para Google Cloud. Isto é necessário quando quer aceder a recursos pertencentes aos seus utilizadores finais, também denominado OAuth de três passos (3LO). Para mais informações sobre como obter e usar um ID de cliente OAuth, consulte Configurar o OAuth 2.0.
Chaves de contas de serviço
As chaves de contas de serviço identificam um principal (a conta de serviço) e o projeto associado à conta de serviço.
Também pode criar credenciais através da CLI gcloud. Estas credenciais incluem os seguintes tipos:
- Ficheiros ADC locais
- Configurações de credenciais usadas pela federação de identidades da carga de trabalho
- Configurações de credenciais usadas pela federação de identidade da força de trabalho
Principal
Um principal é uma identidade à qual pode ser concedido acesso a um recurso. Para a autenticação, as APIs Google suportam dois tipos de principais: contas de utilizador e contas de serviço.
A utilização de uma conta de utilizador ou de uma conta de serviço para autenticação depende do seu exemplo de utilização. Pode usar ambas, cada uma em diferentes fases do seu projeto ou em diferentes ambientes de desenvolvimento.
Contas de utilizador
As contas de utilizador representam um programador, um administrador ou qualquer outra pessoa que interage com as APIs e os serviços Google.
As contas de utilizador são geridas como Contas Google, com o Google Workspace ou o Cloud ID. Também podem ser contas de utilizador geridas por um fornecedor de identidade de terceiros e federadas com a Federação de identidades da força de trabalho.
Com uma conta de utilizador, pode autenticar-se nas APIs e nos serviços Google das seguintes formas:
- Use a CLI gcloud para configurar as Credenciais padrão da aplicação (ADC).
- Use as suas credenciais de utilizador para iniciar sessão na CLI Google Cloud e, em seguida, use a ferramenta para aceder Google Cloud aos serviços.
- Use as suas credenciais de utilizador para usar a identidade de uma conta de serviço.
- Use as suas credenciais de utilizador para iniciar sessão na CLI Google Cloud e, em seguida, use a ferramenta para gerar tokens de acesso.
Para uma vista geral das formas de configurar identidades para utilizadores no Google Cloud, consulte Identidades para utilizadores.
Contas de serviço
As contas de serviço são contas que não representam um utilizador humano. Fornecem uma forma de gerir a autenticação e a autorização quando não existe envolvimento humano direto, como quando uma aplicação precisa de aceder a recursos Google Cloud . As contas de serviço são geridas pela IAM.
A lista seguinte apresenta alguns métodos para usar uma conta de serviço para autenticar em APIs e serviços Google, por ordem do mais seguro para o menos seguro. Para mais informações, consulte o artigo Escolha o método de autenticação adequado para o seu exemplo de utilização nesta página.
Anexe uma conta de serviço gerida pelo utilizador ao recurso e use o ADC para autenticar.
Esta é a forma recomendada de autenticar o código de produção em execução em Google Cloud.
Usar uma conta de serviço para se fazer passar por outra conta de serviço.
A simulação de identidade de contas de serviço permite-lhe conceder temporariamente mais privilégios a uma conta de serviço. A concessão de privilégios adicionais de forma temporária permite que a conta de serviço execute o acesso necessário sem ter de adquirir mais privilégios de forma permanente.
Use a federação de identidades da carga de trabalho para autenticar cargas de trabalho executadas no local ou num fornecedor de nuvem diferente.
Usar a conta de serviço predefinida.
A utilização da conta de serviço predefinida não é recomendada porque, por predefinição, a conta de serviço predefinida tem muitos privilégios, o que viola o princípio do menor privilégio.
Para uma vista geral das formas de configurar identidades de cargas de trabalho, incluindo contas de serviço, para o Google Cloud, consulte o artigo Identidades para cargas de trabalho. Para ver as práticas recomendadas, consulte o artigo Práticas recomendadas para usar contas de serviço.
Símbolo
Para autenticação e autorização, um token é um objeto digital que mostra que um autor da chamada forneceu credenciais adequadas que foram trocadas por esse token. O token contém informações sobre a identidade do principal que está a fazer o pedido e o tipo de acesso que está autorizado a fazer.
Pode pensar nos tokens como chaves de hotel. Quando faz o check-in num hotel e apresenta a documentação adequada na receção do hotel, recebe uma chave que lhe dá acesso a recursos específicos do hotel. Por exemplo, a chave pode dar-lhe acesso ao seu quarto e ao elevador de hóspedes, mas não lhe dá acesso a nenhum outro quarto nem ao elevador de serviço.
Com exceção das chaves da API, as APIs Google não suportam credenciais diretamente. A sua aplicação tem de adquirir ou gerar um token e fornecê-lo à API. Existem vários tipos de tokens diferentes. Para mais informações, consulte o artigo Vista geral dos tokens.
Carga de trabalho e força de trabalho
Google Cloud Os produtos de identidade e acesso permitem o acesso a Google Cloud serviços e recursos para acesso programático e utilizadores humanos. Google Cloud usa os termos carga de trabalho para acesso programático e força de trabalho para acesso do utilizador.
A federação de identidades da carga de trabalho permite-lhe conceder acesso a cargas de trabalho no local ou em várias nuvens sem ter de criar nem gerir chaves de contas de serviço.
A federação de identidades da força de trabalho permite-lhe usar um fornecedor de identidade externo para autenticar e autorizar uma força de trabalho, um grupo de utilizadores, como funcionários, parceiros e contratados, através do IAM, para que os utilizadores possam aceder aos Google Cloud serviços.
O que se segue?
- Saiba mais sobre como os Google Cloud serviços usam o IAM para controlar o acesso aos Google Cloud recursos.
- Compreenda como funcionam as Credenciais predefinidas da aplicação e como as pode configurar para vários ambientes de desenvolvimento.