Visão geral dos tokens

Este documento e o documento Tipos de token abordam os vários tokens usados pelo Google Cloud para autenticação e autorização. Elas são destinadas a pessoas que querem aprender como funciona a autenticação baseada em token ou que querem implementar a autenticação sem usar as bibliotecas de cliente do Cloud.

Não é necessário saber essas informações ao interagir com as APIs do Google Cloud usando as bibliotecas de cliente do Cloud, o console Google Cloud ou a CLI do Google Cloud. O processo de seleção do tipo certo de token e de obtenção e atualização desses tokens é feito automaticamente para você.

Autenticação do usuário

Quando usuários humanos interagem com Google Cloud, eles não interagem diretamente com as APIs Google Cloud . Em vez disso, eles usam um cliente para agir em nome deles. O cliente usado pode ser um aplicativo da Web, um aplicativo para computador ou um utilitário como a CLI do Google Cloud ou o curl.

Como o cliente faz solicitações e não o usuário, Google Cloud não pode pedir informações de identidade diretamente ao usuário para verificar se ele tem permissão para usar uma API. Em vez disso, essa identidade é transmitida à API pelo cliente na forma de um token, que é incluído em cada solicitação de API.

Um token de autenticação do usuário codifica as seguintes informações:

  • A identidade do usuário.

  • A identidade do cliente.

  • Garantia de que o cliente tem permissão para agir em nome do usuário.

A autenticação do usuário e a autorização do cliente envolvem as seguintes partes:

  • Um usuário.

  • Um cliente que age em nome do usuário.

  • Um servidor de autorização, em que as APIs do Google confiam para autenticar o cliente.

  • Uma API Google Cloud com que o cliente interage.

Os clientes não podem emitir tokens por conta própria. Em vez disso, eles precisam trabalhar com um servidor de autorização para fazer o seguinte:

  1. Autentique o usuário.

  2. Autentique o cliente.

  3. Autorize o cliente a agir em nome do usuário.

  4. Emita um token para o cliente.

Um diagrama de relacionamento de um usuário autenticando por um cliente

Um usuário que se autentica fazendo login na Conta do Google é um principal do usuário. O principal tem um identificador principal semelhante a este:

user:alex@example.com

Um usuário que se autentica usando a federação de identidade de colaboradores e um provedor de identidade externo é um principal do pool de identidades de colaboradores. O principal tem um identificador semelhante a este:

principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/raha@altostrat.com

Autenticação de carga de trabalho

Alguns clientes precisam interagir com as APIs do Google por conta própria. Por exemplo, um job programado pode precisar ler dados do BigQuery ou do Cloud Storage sem a participação de um usuário humano.

Os clientes que agem sem supervisão e em nome próprio são chamados de cargas de trabalho. Ao contrário da autenticação de usuário, a autenticação de carga de trabalho combina a autenticação do usuário e a autorização do cliente em uma única etapa. Por isso, um token de autenticação de carga de trabalho codifica a identidade apenas do cliente.

A autenticação e a autorização de cargas de trabalho envolvem as seguintes partes:

  • Uma carga de trabalho, atuando como cliente e usuário, e em seu próprio nome.

  • Um servidor de autorização, em que as APIs do Google confiam para autenticar o cliente.

  • Uma API Google Cloud com que o cliente interage.

Para acessar as APIs Google Cloud , os clientes precisam trabalhar com um servidor de autorização para fazer o seguinte:

  1. Autentique o cliente.

  2. Autorize o cliente.

  3. Emita um token para o cliente.

Um diagrama de relacionamento de uma carga de trabalho autenticando por um cliente

Uma carga de trabalho autenticada também é chamada de principal, mas as cargas de trabalho usam identificadores principais diferentes dos usuários.

Uma carga de trabalho que se autentica usando uma conta de serviço é um principal da conta de serviço. O principal tem um identificador semelhante a este:

serviceAccount:my-service-account@my-project.iam.gserviceaccount.com

Uma carga de trabalho que faz autenticação usando a federação de identidade da carga de trabalho é uma entidade pool de identidade da carga de trabalho. O principal tem um identificador semelhante a este:

principal://iam.googleapis.com/projects/PROJECT_NAME/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE

Servidores de autorização

OGoogle Cloud compartilha recursos específicos de autenticação e autorização com outros serviços do Google. As instalações compartilhadas incluem o Login com o Google e os serviços OpenID Connect e OAuth 2.0 fornecidos pelo Google Identity.

Outros serviços relacionados à autenticação, como a federação de identidade da carga de trabalho e a federação de identidade de colaboradores, são específicos do Google Cloud e não podem ser usados em outros serviços do Google.

Devido a essa divisão,o Google Cloud usa dois servidores de autorização. Um é compartilhado com outros Serviços do Google, e o outro é específico do Google Cloud. A tabela a seguir descreve os diferentes servidores e as propriedades deles.

Servidor de autorização Tipo de autenticação APIs de autenticação Principais
Servidor de autorização do Google
  • Autenticação do usuário
  • Autenticação de carga de trabalho
Google Cloud Servidor de autorização do Identity and Access Management (IAM)
  • Autenticação do usuário
  • Autenticação de carga de trabalho

Os servidores de autorização são serviços globais e podem ser acessados de qualquer Google Cloud região. No entanto, nem todas as regiões têm implantações dos dois servidores de autorização:

  • O servidor de autorização do Google está disponível em regiões selecionadas.

  • O servidor de autorização do IAM Google Cloud está disponível em todas as regiões.

Para otimizar a confiabilidade, use o servidor de autorização do IAM Google Cloud sempre que possível.

A seguir

Leia sobre tipos de token.