Saiba mais sobre autenticação e autorização

Autenticação e autorização são mecanismos usados para verificar a identidade e o acesso aos recursos, respectivamente. Este documento identifica os principais termos que você precisa conhecer antes de implementar autenticação e autorização no seu app.

A autenticação identifica quem está fazendo a solicitação. A autorização identifica quais recursos o solicitante pode acessar e o nível de acesso que ele tem. A autenticação é um pré-requisito da autorização. Não é possível determinar quais recursos acessar sem antes estabelecer a identidade do solicitante. Para uma definição mais detalhada, consulte a seção importante de terminologia.

Considere o exemplo simplificado a seguir de uma reserva de hotel. Quando você chega ao hotel, o atendente solicita seu documento de identificação para verificar a reserva. Seu documento autentica você no hotel. O funcionário da recepção entrega a chave do hotel. Essa chave dá acesso a determinados recursos do hotel, como o quarto, a academia e o centro de reuniões. A chave do hotel autoriza você a acessar esses recursos.

Informações gerais do processo

O diagrama a seguir mostra as etapas de alto nível da autenticação e autorização das APIs do Google Workspace:

Etapas avançadas de uma implementação de autenticação e autorização
Figura 1. Etapas avançadas de uma implementação de autenticação e autorização
  1. Configure seu projeto e app do Google Cloud:durante o desenvolvimento, registre seu app no console do Google Cloud, definindo escopos de autorização e credenciais de acesso para autenticar o app com uma chave de API, credencial de usuário final ou credencial de conta de serviço.

  2. Autentique seu app para acesso:quando o app é executado, as credenciais de acesso registradas são avaliadas. Se o app estiver sendo autenticado como um usuário final, uma solicitação de login poderá ser exibida.

  3. Solicitar recursos:quando seu app precisa de acesso aos recursos do Google, ele solicita o uso dos escopos de acesso relevantes que você registrou anteriormente.

  4. Peça o consentimento do usuário:se o app estiver sendo autenticado como um usuário final, o Google exibirá a tela de permissão OAuth para que o usuário decida se quer conceder ao app acesso aos dados solicitados.

  5. Enviar solicitação aprovada de recursos:se o usuário consentir com os escopos de acesso, seu app agrupará as credenciais e os escopos de acesso aprovados pelo usuário em uma solicitação. A solicitação é enviada ao servidor de autorização do Google para receber um token de acesso.

  6. O Google retorna um token de acesso:esse token contém uma lista de escopos de acesso concedidos. Se a lista de escopos retornada for mais limitada que os escopos de acesso solicitados, o app desativará todos os recursos limitados pelo token.

  7. Acesso a recursos solicitados:seu app usa o token de acesso do Google para invocar as APIs relevantes e acessar os recursos.

  8. Receba um token de atualização (opcional): se o app precisar de acesso a uma API do Google além da vida útil de um único token de acesso, ele poderá receber um token de atualização.

  9. Solicitar mais recursos:se for necessário acesso adicional, o app solicitará que o usuário conceda novos escopos de acesso, resultando em uma nova solicitação para receber um token de acesso (etapas 3 a 6).

Terminologia importante

Veja a seguir uma lista de termos relacionados à autenticação e autorização:

Authentication

O ato de garantir que um principal, que pode ser um usuário ou um app agindo em nome de um usuário, é quem ele diz ser. Ao criar apps do Google Workspace, você precisa estar ciente destes tipos de autenticação:

Autenticação do usuário
O ato de um usuário se autenticar (login) no seu app. Geralmente, a autenticação do usuário é realizada por um processo de login em que o usuário usa uma combinação de nome de usuário e senha para verificar a identidade no app. A autenticação do usuário pode ser incorporada a um app usando o Fazer login com o Google.
Autenticação de apps
O ato de um app ser autenticado diretamente nos Serviços do Google em nome do usuário que está executando o app. A autenticação geralmente é realizada usando credenciais pré-criadas no código do app.
Autorização

As permissões ou "autoridade" que o principal tem para acessar dados ou realizar operações. O ato de autorização é realizado por meio do código que você escreve no seu app. Esse código informa ao usuário que o aplicativo quer agir em nome dele e, se permitido, usa as credenciais exclusivas do seu app para receber um token de acesso do Google para acessar dados ou realizar operações.

Credential

Uma forma de identificação usada na segurança de software. Em termos de autenticação, uma credencial geralmente é uma combinação de nome de usuário e senha. Em termos de autorização para as APIs do Google Workspace, uma credencial geralmente é uma forma de identificação, como uma string secreta exclusiva, conhecida apenas entre o desenvolvedor do app e o servidor de autenticação. O Google aceita estas credenciais de autenticação: chave de API, ID do cliente OAuth 2.0 e contas de serviço.

Chave de API
A credencial usada para solicitar acesso a dados públicos, como aqueles fornecidos pela API Maps ou os arquivos do Google Workspace compartilhados pela configuração "Qualquer pessoa na Internet com este link" nas configurações de compartilhamento do Google Workspace.
ID do cliente OAuth 2
A credencial usada para solicitar acesso aos dados do usuário. Essa é a credencial principal usada para solicitar acesso a dados usando as APIs do Google Workspace. Essa credencial requer o consentimento do usuário.
Chave secreta do cliente
Uma string de caracteres que só deve ser conhecida pelo aplicativo e pelo servidor de autorização. A chave secreta do cliente protege os dados do usuário concedendo tokens apenas aos solicitantes autorizados. Nunca inclua a chave secreta do cliente não criptografada no app. Recomendamos armazenar a chave secreta do cliente com segurança. Para mais informações, consulte Gerenciar credenciais de clientes com segurança.
Chaves da conta de serviço
Usadas pelas contas de serviço para receber autorização para um serviço do Google.
Conta de serviço
Uma credencial usada para interações de servidor para servidor, como um app sem rosto que é executado como um processo para acessar alguns dados ou realizar alguma operação. As contas de serviço geralmente são usadas para acessar dados e operações baseados na nuvem. No entanto, quando usados com a delegação de autoridade em todo o domínio, eles podem ser utilizados para acessar os dados do usuário.
Escopo

Uma string de URI do OAuth 2.0 que define um nível de acesso a recursos ou ações concedidos a um app. Para o Google Workspace, os URIs do escopo de autorização contêm o nome do app do Google Workspace, o tipo de dados que ele acessa e o nível de acesso. Os usuários do seu app podem revisar os escopos solicitados e escolher o acesso a ser concedido. Em seguida, o servidor de autenticação do Google retorna os escopos permitidos em um token de acesso. Para mais detalhes, consulte Como escolher escopos para seu app.

Servidor de autorização

O servidor do Google para conceder acesso, usando um token de acesso, aos dados e às operações solicitados por um app.

Código de autorização

Um código enviado do servidor de autorização usado para receber um token de acesso. Um código só é necessário quando o tipo de aplicativo é de servidor da Web ou instalado.

Token de acesso

Um token que concede acesso a uma API do Google Workspace. Um único token de acesso pode conceder graus variados, conhecidos como escopos, de acesso a várias APIs. O código de autorização do app solicita tokens de acesso e os usa para invocar APIs do Google Workspace.

Servidor de recursos

O servidor que hospeda a API que seu app quer chamar.

Framework OAuth 2.0

Um padrão que seu app pode usar para fornecer "acesso delegado seguro" ou acesso a dados e operações em nome do usuário do app. Os mecanismos de autenticação e autorização usados no app representam a implementação do framework OAuth 2.0.

Principal

Uma entidade, também conhecida como identidade, que pode receber acesso a um recurso. As APIs do Google Workspace oferecem suporte a dois tipos de principais: contas de usuário e contas de serviço. Para mais detalhes, consulte Principais.

Tipo de dado

No contexto de autenticação e autorização, o tipo de dados se refere à entidade proprietária dos dados que seu app está tentando acessar. Há três tipos de dados:

Dados de domínio público
Dados acessíveis por qualquer pessoa, como alguns dados do Google Maps. Esses dados geralmente são acessados usando uma chave de API.
Dados do usuário final
Dados de um usuário final ou grupo específico, como os arquivos de um usuário específico no Google Drive. Esse tipo de dados geralmente é acessado usando um ID do cliente do OAuth 2 ou uma conta de serviço.
Dados da nuvem
Dados de propriedade de um projeto do Google Cloud. Geralmente, esse tipo de dado é acessado por uma conta de serviço.
Consentimento do usuário

Uma etapa de autorização que exige que o usuário autorize o app a acessar dados e realizar operações em nome do usuário.

Tipo de aplicativo

O tipo de app que você vai criar. Ao criar credenciais usando o console do Google Cloud, você precisa selecionar o tipo de aplicativo. Os tipos de aplicativo são: aplicativo da Web (JavaScript), Android, app Chrome, iOS, TVs e dispositivos de entrada limitada, app para computador (também chamado de "app instalado") e Plataforma Universal Windows (UWP).

Conta de serviço

Um tipo especial de Conta do Google destinada a representar um usuário não humano que precisa ser autenticado e autorizado a acessar dados. Seu aplicativo passa a ter a identidade da conta de serviço para chamar as APIs do Google, evitando o envolvimento direto dos usuários. Por si só, as contas de serviço não podem ser usadas para acessar dados do usuário, dados normalmente acessados usando as APIs do Workspace. No entanto, uma conta de serviço pode acessar dados do usuário implementando a delegação de autoridade em todo o domínio. Para mais detalhes, consulte Noções básicas sobre as contas de serviço.

Delegação de autoridade em todo o domínio

Um recurso de administração que autoriza um aplicativo a acessar dados do usuário em nome dos usuários da organização do Google Workspace. A delegação em todo o domínio pode ser usada para executar tarefas relacionadas ao administrador nos dados do usuário. Para delegar a autoridade dessa maneira, os administradores do Google Workspace usam contas de serviço com o OAuth 2.0. Devido à capacidade desse recurso, apenas superadministradores podem ativar a delegação de autoridade em todo o domínio. Para mais detalhes, consulte Como delegar autoridade em todo o domínio a uma conta de serviço.

Próxima etapa

Configure a tela de permissão OAuth do seu app para garantir que os usuários possam entender e aprovar o acesso que o app tem aos dados deles.