Métodos de autenticação no Google

Neste documento, você vai aprender sobre alguns conceitos e métodos de autenticação importantes e onde conseguir ajuda para implementar ou resolver problemas de autenticação. O foco principal da documentação de autenticação são os serviços do Google Cloud, mas a lista de casos de uso de autenticação e o material introdutório nesta página incluem casos de uso para outros produtos do Google.

Introdução

A autenticação é o processo de confirmação da identidade por meio de algum tipo de credencial. A autenticação consiste em provar que você é quem diz ser.

O Google fornece muitas APIs e serviços, que exigem autenticação para a liberação do acesso. O Google também fornece vários serviços que hospedam aplicativos criados por nossos clientes. Esses aplicativos também precisam determinar a identidade dos usuários.

As APIs do Google implementam e ampliam o framework do OAuth 2.0.

O que você quer fazer? Informações
Autenticar-se na Vertex AI no modo expresso (pré-lançamento). Use a chave de API criada para você durante o processo de login para autenticar-se na Vertex AI. Para mais informações, consulte Visão geral do modo rápido da Vertex AI.
Autenticar-se em um serviço do Google Cloud no próprio aplicativo usando uma linguagem de programação de alto nível. Configure o Application Default Credentials e use uma das bibliotecas de cliente do Cloud.
Autentique-se em um aplicativo que exija um token de ID. Receba um token de ID do OpenID Connect (OIDC) e forneça-o com sua solicitação.
Implementar a autenticação do usuário para um aplicativo que acessa os serviços e recursos do Google ou do Google Cloud . Consulte Autenticar usuários de aplicativos para conferir uma comparação de opções.
Testar alguns comandos gcloud no ambiente de desenvolvimento local. Inicialize a gcloud CLI.
Testar algumas solicitações da API REST do Google Cloud no ambiente de desenvolvimento local. Use uma ferramenta de linha de comando, como curl, para chamar a API REST.
Testar um snippet de código incluído na documentação do produto. Configure o ADC para um ambiente de desenvolvimento local e instale a biblioteca de cliente do produto nesse ambiente. A biblioteca de cliente encontra suas credenciais automaticamente.
Receber ajuda com outro caso de uso de autenticação. Consulte a página Casos de uso de autenticação.
Confira uma lista dos produtos oferecidos pelo Google no espaço do gerenciamento de identidade e acesso. Consulte a página Produtos de gerenciamento de identidade e acesso do Google.

Escolher o método de autenticação ideal para seu caso de uso

Ao acessar os serviços do Google Cloud usando a CLI do Google Cloud, as bibliotecas de cliente do Cloud, ferramentas que aceitam o Application Default Credentials (ADC), como o Terraform, ou solicitações REST, use o diagrama abaixo para escolher um método de autenticação:

Árvore de decisão para escolher o método de autenticação com base no caso de uso

Esse diagrama oferece orientações para as seguintes perguntas:

  1. Você está executando códigos em um ambiente de desenvolvimento de usuário único, como sua própria estação de trabalho, o Cloud Shell ou uma interface de área de trabalho virtual?
    1. Se sim, prossiga para a pergunta 4.
    2. Caso contrário, prossiga para a pergunta 2.
  2. Você está executando códigos no Google Cloud?
    1. Se sim, prossiga para a pergunta 3.
    2. Caso contrário, prossiga para a pergunta 5.
  3. Você está executando contêineres no Google Kubernetes Engine?
    1. Se sim, use a Federação de Identidade da Carga de Trabalho para GKE para anexar contas de serviço aos pods do Kubernetes.
    2. Caso contrário, anexe uma conta de serviço ao recurso.
  4. Seu caso de uso requer uma conta de serviço?

    Por exemplo, você quer configurar a autenticação e a autorização de maneira consistente para seu aplicativo em todos os ambientes.

    1. Se não for o caso, faça a autenticação com credenciais de usuário.
    2. Se for o caso, represente uma conta de serviço com credenciais de usuário.
  5. Sua carga de trabalho é autenticada em um provedor de identidade externo que aceita a federação de identidade da carga de trabalho?
    1. Se sim, configure a federação de identidade da carga de trabalho para permitir que os aplicativos em execução no local ou em outros provedores de nuvem usem uma conta de serviço.
    2. Caso contrário, crie uma chave de conta de serviço.

Métodos de autorização para serviços do Google Cloud

A autorização para o Google Cloud é realizada principalmente pelo Identity and Access Management (IAM). O IAM oferece controle granular, por principal e por recurso.

Você pode aplicar outra camada de autorização com escopos do OAuth 2.0. Ao autenticar-se em um serviço do Google Cloud , você pode usar um escopo global que autoriza o acesso a todos os serviços do Google Cloud (https://www.googleapis.com/auth/cloud-platform). No entanto, quando aceito pelo serviço, é possível restringir o acesso com um escopo mais limitado. Escopos limitados podem ajudar a reduzir o risco se o código estiver sendo executado em ambientes em que tokens comprometidos podem ser uma preocupação, como apps para dispositivos móveis.

Os escopos de autorização aceitos por um método de API estão listados na documentação de referência da API para cada serviço do Google Cloud .

Application Default Credentials

OApplication Default Credentials (ADC) é uma estratégia usada pelas bibliotecas de autenticação para encontrar credenciais automaticamente com base no ambiente do aplicativo. As bibliotecas de autenticação disponibilizam essas credenciais para as bibliotecas de cliente do Cloud e as bibliotecas de cliente da API do Google. Ao usar o ADC, o código pode ser executado em um ambiente de desenvolvimento ou de produção, sem mudar a forma como o aplicativo é autenticado nos serviços e nas APIs do Google Cloud .

O ADC pode simplificar o processo de desenvolvimento, porque permite o uso do mesmo código de autenticação em diversos ambientes. No entanto, ao usar um serviço no modo expresso, não é necessário usar o ADC.

Antes de usar o ADC, forneça suas credenciais a ele com base no local em que você quer que o código seja executado. O ADC localiza automaticamente as credenciais e recebe um token em segundo plano, o que permite que o código de autenticação seja executado em diferentes ambientes sem modificação. Por exemplo, a mesma versão do código pode ser autenticada com APIs doGoogle Cloud quando executada em uma estação de trabalho de desenvolvimento ou no Compute Engine.

As credenciais da gcloud não são iguais às fornecidas ao ADC pela gcloud CLI. Para mais informações, consulte Configuração de autenticação da gcloud CLI e configuração do ADC.

Terminologia

É importante entender os termos a seguir ao tratar da autenticação e da autorização.

Autenticação

A autenticação é o processo de determinar a identidade do principal que está tentando acessar um recurso.

Autorização

A autorização é o processo de determinar se o principal ou o aplicativo que está tentando acessar um recurso foi autorizado para esse nível de acesso.

Credenciais

Quando este documento usa o termo conta de usuário, ele se refere a uma Conta do Google ou a uma conta de usuário gerenciada pelo provedor de identidade e federada com a federação de identidade de colaboradores.

Para autenticação, as credenciais são um objeto digital que oferece prova de identidade. Senhas, PINs e dados biométricos podem ser usados como credenciais, dependendo dos requisitos do aplicativo. Por exemplo, ao fazer login na sua conta de usuário, você informa a senha e cumpre todos os requisitos da autenticação de dois fatores como prova de que a conta realmente pertence a você e não está sendo falsificada por um usuário mal-intencionado.

Tokens não são credenciais. Eles são um objeto digital que prova que o autor da chamada forneceu as credenciais adequadas.

O tipo de credencial que você precisa fornecer depende do local em que você está se autenticando.

Os seguintes tipos de credenciais podem ser criados no console doGoogle Cloud :

  • Chaves de API

    Se uma API aceitar chaves de API, você poderá usá-las para acessá-la. As chaves de API que não estão vinculadas a uma conta de serviço fornecem um projeto, que é usado para fins de faturamento e cota. Se a chave de API estiver vinculada a uma conta de serviço, ela também vai fornecer a identidade e a autorização da conta (pré-lançamento).

    Para mais informações sobre as chaves de API, consulte Chaves de API. Para mais informações sobre chaves de API vinculadas 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 um aplicativo para o Google Cloud. Isso é necessário quando você quer acessar recursos que pertencem a usuários finais, um processo que também é chamado de OAuth de três etapas (3LO). Para saber como receber e usar um ID de cliente OAuth, consulte Como configurar o OAuth 2.0.

  • Chaves de conta de serviço

    As chaves de conta de serviço identificam um principal (a conta de serviço) e o projeto associado a ele.

Também é possível criar credenciais usando a gcloud CLI. Confira alguns tipos de credenciais:

Principal

Um principal é uma identidade que pode receber acesso a um recurso. Para a autenticação, as APIs do Google aceitam dois tipos de principais: contas de usuário e contas de serviço.

O uso de uma conta de usuário ou de serviço para a autenticação depende do caso de uso. Você pode usar ambas as contas, cada uma em um estágio diferente do projeto ou em diferentes ambientes de desenvolvimento.

Contas de usuário

As contas de usuário representam um desenvolvedor, administrador ou outra pessoa que interaja com as APIs e os serviços do Google.

As contas de usuário são gerenciadas como Contas do Google, com o Google Workspace ou o Cloud Identity. Elas também podem ser gerenciadas por um provedor de identidade de terceiros e federadas com a federação de identidade de colaboradores.

Com uma conta de usuário, você pode se autenticar nas APIs e nos serviços do Google das seguintes maneiras:

Para uma visão geral sobre como configurar identidades para usuários no Google Cloud, consulte Identidades para usuários.

Contas de serviço

Contas de serviço são contas que não representam um usuário humano. Elas permitem gerenciar a autenticação e a autorização quando uma pessoa não está envolvida diretamente, como quando um aplicativo precisa acessar recursos do Google Cloud . As contas de serviço são gerenciadas pelo IAM.

A lista a seguir fornece alguns métodos para usar uma conta de serviço para a autenticação em APIs e serviços do Google, do mais seguro para o menos seguro. Para mais informações, consulte Escolher o método de autenticação ideal para seu caso de uso nesta página.

Para uma visão geral sobre como configurar identidades de carga de trabalho para o Google Cloud, incluindo contas de serviço, consulte Identidades de cargas de trabalho. Para mais informações, consulte Práticas recomendadas para o uso de contas de serviço.

Token

Para autenticação e autorização, um token é um objeto digital que mostra que o autor de uma chamada forneceu as credenciais adequadas, que foram trocadas por esse token. O token contém informações sobre a identidade do principal que está fazendo a solicitação e o tipo de acesso autorizado.

Os tokens funcionam como as chaves de um hotel. Quando você faz check-in em um hotel e apresenta a documentação adequada na recepção, recebe uma chave que concede acesso a recursos específicos do hotel. Por exemplo, a chave pode conceder acesso ao seu quarto e ao elevador de convidados, mas não fornece acesso a outros quartos ou ao elevador de serviço.

Com exceção das chaves de API, as APIs do Google não aceitam diretamente credenciais. Seu aplicativo precisa adquirir ou gerar um token e fornecê-lo à API. Há vários tipos diferentes de tokens. Para mais informações, consulte Visão geral dos tokens.

Carga de trabalho e força de trabalho

Os produtos de identidade e acesso doGoogle Cloud permitem o acesso programático e o acesso de usuários humanos aos serviços e recursos doGoogle Cloud . O Google Cloud usa os termos carga de trabalho para acesso programático e força de trabalho para acesso de usuários.

Com a federação de identidade da carga de trabalho, é possível fornecer acesso a cargas de trabalho locais ou em ambientes multicloud, sem a necessidade de criar e gerenciar chaves de conta de serviço.

Com a federação de identidade de colaboradores, é possível usar um provedor de identidade externo para autenticar e autorizar uma força de trabalho que usa o IAM, como funcionários, parceiros e prestadores de serviços. Assim, os usuários podem acessar os serviços doGoogle Cloud .

A seguir