Autenticação no Google

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Neste documento, você verá alguns conceitos importantes de autenticação e onde conseguir ajuda para implementar ou resolver problemas de autenticação. O foco principal da documentação de autenticação é para 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 acesso. O Google também fornece vários serviços que hospedam aplicativos escritos pelos nossos clientes. também precisam determinar a identidade dos usuários.

O que você quer fazer? Informações
Autenticar para um serviço do Google Cloud a partir do meu 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 em execução no Cloud Run ou no Cloud Functions. Receba um token de ID do OpenID Connect (OIDC) e forneça-o com sua solicitação.
Implemente 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 do aplicativo para ver uma comparação de opções.
Teste alguns comandos gcloud ou chamadas da API REST do Google Cloud no meu ambiente de desenvolvimento local. Configure o Application Default Credentials com suas credenciais de login. Em seguida, é possível usar uma ferramenta de linha de comando, como curl, para chamar a API REST.
Receba ajuda com outro caso de uso de autenticação. Consulte a página Casos de uso de autenticação.
Veja uma lista dos produtos oferecidos pelo Google no espaço de gerenciamento de identidade e acesso. Consulte a página Produtos de gerenciamento de identidade e acesso do Google.

Tipos de autenticação

A autenticação é necessária para acessar a maioria dos recursos e aplicativos. Esta documentação oferece suporte a profissionais técnicos que criam o código do aplicativo com uma das seguintes metas:

OAuth 2.0

As APIs do Google implementam e ampliam o framework do OAuth 2.0. O framework do OAuth 2.0 descreve vários "fluxos" ou abordagens de autenticação. Geralmente, o aplicativo apresenta credenciais, que representam um principal (de um usuário ou uma conta de serviço), a um módulo intermediário chamado servidor de autorização. O servidor de autorização responde com um token que pode ser usado pelo aplicativo para autenticar com o serviço e acessar recursos. O token inclui um ou mais escopos, que refletem o acesso que o aplicativo está autorizado a fazer. O aplicativo apresenta o token ao servidor de recursos para ter acesso aos recursos.

Autorização para serviços do Google Cloud

Os serviços do Google Cloud usam o Identity and Access Management (IAM) para autenticação. O IAM oferece controle granular, por principal e por recurso. Ao autenticar nos serviços do Google Cloud, você geralmente usa um escopo que inclui todos os serviços do Google Cloud (https://www.googleapis.com/auth/cloud-platform).

Os escopos do OAuth 2.0 podem fornecer uma segunda camada de proteção, o que é útil se o código estiver sendo executado em um ambiente em que a segurança do token é uma preocupação, como um app para dispositivos móveis. Nesse cenário, é possível usar escopos mais refinados para reduzir o risco no caso de um token comprometido. Os escopos do OAuth 2.0 também são usados para autorizar o acesso aos dados do usuário.

Application Default Credentials (ADC)

O ADC é uma estratégia usada pelas Bibliotecas de cliente do Cloud e bibliotecas de cliente da API do Google para encontrar automaticamente credenciais com base no ambiente do aplicativo e usá-las para autenticação nas APIs do Google Cloud. Quando você configura o ADC e usa uma biblioteca de cliente, seu código pode ser executado em um ambiente de desenvolvimento ou produção sem mudar como o aplicativo faz a autenticação nos serviços e nas APIs do Google Cloud.

Se você estiver escrevendo um código que precise usar os serviços do Google Cloud, use o ADC sempre que possível. O ADC pode simplificar seu processo de desenvolvimento, porque permite que você use o mesmo código de autenticação em diversos ambientes.

Configure o ADC fornecendo suas credenciais com base no local onde você quer que o código seja executado. Depois de fornecer suas credenciais ao ADC, o ADC localiza automaticamente as credenciais e recebe um token em segundo plano, permitindo que seu código de autenticação seja executado em diferentes ambientes sem precisar de modificação. Por exemplo, a mesma versão do seu código pode ser autenticada com APIs do Google Cloud quando executada em uma estação de trabalho de desenvolvimento ou no Compute Engine.

Terminologia

É importante entender os termos a seguir ao falar sobre autenticação e autorização.

Authentication

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

Autorização

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

Credenciais

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 do Google, você informa a senha e cumpre todos os requisitos de autenticação de dois fatores como prova de que a conta realmente pertence a você e que você não está sendo falsificado por um usuário de má-fé.

Tokens são às vezes chamados de credenciais, mas, nesta documentação, eles são chamados de objetos digitais. Eles provam que o autor da chamada forneceu as credenciais adequadas, mas não são credenciais em si.

O tipo de credencial que você precisa fornecer depende do que você está autenticando. Os seguintes tipos de credenciais podem ser criados no Console do Google Cloud:

  • Chaves de API

    Ao contrário de outras credenciais, as chaves de API não identificam um principal. As chaves de API fornecem um projeto do Google Cloud para fins de faturamento e cota.

    Muitas APIs do Google não aceitam chaves de API. Para mais informações sobre as chaves de API, consulte Chaves de API.

  • IDs do cliente OAuth

    Os IDs do cliente OAuth são usados para identificar um app para o Google. Isso é necessário quando você quer acessar recursos que pertencem aos usuários finais, também chamados de OAuth de três etapas (3LO). Para mais informações sobre como receber e usar um ID do cliente OAuth, consulte Como configurar o OAuth 2.0.

Participante

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

O uso de uma conta de usuário ou uma conta de serviço para autenticação depende do seu caso de uso. Você pode usar ambos, cada um em diferentes estágios do seu projeto ou em diferentes ambientes de desenvolvimento.

Contas de usuário

As contas de usuário representam um desenvolvedor, administrador ou qualquer outra pessoa que interaja com as APIs e 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 contas de usuário gerenciadas por um provedor de identidade de terceiros e federadas com a federação de identidade da força de trabalho.

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

Contas de serviço

Contas de serviço são contas que não representam um usuário humano. Eles oferecem uma maneira de gerenciar a autenticação e a autorização quando uma pessoa não está envolvida diretamente, como quando um aplicativo precisa acessar os 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 nas APIs e serviços do Google, da mais segura para a menos segura.

Token

Para autenticação e autorização, um token é um objeto digital que mostra que um autor de 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 que ele está autorizado a fazer.

Os tokens podem ser considerados chaves de hotel. Quando você faz check-in em um hotel e apresenta a documentação adequada no balcão de registro de hotéis, recebe uma chave que concede acesso a recursos específicos de hotéis. Por exemplo, a chave pode conceder acesso ao seu quarto e ao elevador convidado, mas não fornece acesso a qualquer outro quarto ou elevador de serviço.

Com exceção das chaves de API, as APIs do Google não oferecem suporte direto a 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 Tipos de token.

Carga de trabalho e força de trabalho

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

A federação de identidade da carga de trabalho permite fornecer acesso a cargas de trabalho executadas fora do Google sem precisar criar e gerenciar chaves da conta de serviço.

A federação de identidade da força de trabalho permite que você use um provedor de identidade externo (IdP) para autenticar e autorizar uma força de trabalho, um grupo de usuários, como funcionários, parceiros e prestadores de serviços, usando o IAM. para que os usuários acessem os serviços do Google Cloud.

A seguir