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:
Autentique o usuário.
Autentique o cliente.
Autorize o cliente a agir em nome do usuário.
Emita um token para o 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:
Autentique o cliente.
Autorize o cliente.
Emita um token para o 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 |
|
|
|
Google Cloud Servidor de autorização do Identity and Access Management (IAM) |
|
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.