Escolher um método de autenticação

O Cloud Endpoints é compatível com vários métodos de autenticação que servem para diferentes aplicativos e casos de uso. O método de autenticação especificado na configuração de serviço é usado pelo Extensible Service Proxy (ESP) para validar as solicitações recebidas antes de transmiti-las ao back-end da API. Neste documento, você verá uma visão geral e exemplos de casos de uso de cada método de autenticação compatível.

Chaves de API

Uma chave de API é uma string criptografada simples que identifica um projeto do Google Cloud para fins de cota, faturamento e monitoramento. Um desenvolvedor gera uma chave de API em um projeto no console do Google Cloud e a incorpora em todas as chamadas para a API como um parâmetro de consulta.

Se você especificar um requisito de chave de API na configuração do serviço, o ESP usará a chave de API para pesquisar o projeto do Google Cloud ao qual a chave de API está associada. O ESP rejeitará solicitações, a menos que a chave de API tenha sido gerada no seu projeto do Google Cloud ou em outros projetos em que a API foi ativada. Para mais informações, consulte Como restringir o acesso à API com chaves de API.

Diferentemente das credenciais que usam tokens de curta duração ou solicitações assinadas, as chaves de API fazem parte da solicitação. Portanto, elas são consideradas vulneráveis a ataques intermediários, ou seja, menos seguras. Você pode usar chaves de API com um dos métodos de autenticação descritos abaixo. Por motivos de segurança, não use as próprias chaves de API quando as chamadas de API contiverem dados do usuário.

Caso de uso

Se você quiser usar recursos do Endpoints, como quotas, cada solicitação deverá conceder uma chave de API para que o Endpoints possa identificar o projeto do Google Cloud ao qual o aplicativo cliente está associado.

Para mais informações sobre as chaves de API, consulte Por que e quando usar chaves de API.

Firebase authentication

O Firebase Authentication oferece serviços de back-end, SDKs e bibliotecas para autenticar usuários em um aplicativo da Web ou de dispositivos móveis. Ele autentica os usuários usando diversas credenciais, como Google, Facebook, Twitter ou GitHub.

A biblioteca de cliente do Firebase assina um JSON Web Token (JWT) com uma chave privada depois que o usuário fizer login com êxito. O ESP valida que o JWT foi assinado pelo Firebase e que a declaração iss (emissor) no JWT, responsável por identificar seu aplicativo do Firebase, corresponde à configuração x-google-issuer na configuração do serviço.

Caso de uso

É recomendável o uso do Firebase quando as chamadas de API envolvem dados de usuários e a API é usada em fluxos em que há uma interface do usuário. Por exemplo, quando há IUs de apps para dispositivos móveis e da Web. Para mais informações, consulte Como usar o Firebase para autenticar usuários.

Auth0

O Auth0 autentica e autoriza aplicativos e APIs independentemente do provedor de identidade, da plataforma, da pilha e do dispositivo.

O Auth0 dá suporte a um grande número de provedores e à especificação Linguagem de marcação para autorização de segurança. Ele fornece serviços de back-end, SDKs e bibliotecas de interface do usuário para autenticar usuários em aplicativos para dispositivos móveis e da Web. O Auth0 integra-se a vários provedores de identidade de terceiros e também fornece gerenciamento personalizado de contas de usuários.

A biblioteca de cliente fornecida pelo Auth0 gera e assina um JWT depois que o usuário fizer o login. O ESP valida que o JWT foi assinado pelo Auth0 e que a declaração iss no JWT, responsável por identificar seu aplicativo Auth0, corresponde à configuração x-google-issuer na configuração do serviço.

Caso de uso

O Auth0 é adequado para aplicativos para dispositivos móveis e da Web voltados para empresas e consumidores. Para mais informações, consulte a guia Auth0 em Como usar o Auth0 para autenticar usuários.

Autenticação por token de código do Google

Com a autenticação por token de código do Google, os usuários podem se autenticar fazendo login com uma Conta do Google. Depois de autenticado, o usuário tem acesso a todos os serviços do Google. É possível usar tokens de código do Google para fazer chamadas para APIs do Google e APIs gerenciadas pelo Endpoints. O ESP valida o token de ID do Google usando a chave pública e garante que a declaração iss no JWT seja https://accounts.google.com.

Caso de uso

A autenticação por um token de código do Google é recomendada quando todos os usuários têm contas do Google. Escolha a autenticação por token de código do Google, por exemplo, se a API acompanha um aplicativo do Google, como o complemento do Google Drive. Com a autenticação por token de código do Google, os usuários podem se autenticar fazendo login com uma Conta do Google. Uma vez autenticado, o usuário tem acesso a todos os serviços do Google. Para mais informações, consulte Como usar tokens de código do Google para autenticar usuários.

Contas de serviço

Para identificar um serviço que envia solicitações para sua API, use uma conta de serviço. O serviço de chamada usa a chave privada da conta de serviço para assinar um JSON Web Token (JWT) [link em inglês] seguro e enviá-lo na solicitação para a API.

Caso de uso

JWTs e contas de serviço são adequados para microsserviços. Para mais informações, consulte Autenticação entre serviços.

Autenticação personalizada

É possível usar outras plataformas para autenticar usuários desde que estejam em conformidade com o JSON Web Token RFC 7519.

Para mais informações, consulte Como usar um método personalizado para autenticar usuários.