Escolher um método de autenticação

O Cloud Endpoints Frameworks é compatível com vários métodos de autenticação que servem para diferentes aplicativos e casos de uso. Ele usa o método de autenticação que você especificou na sua anotação para validar as solicitações recebidas antes de transmiti-las ao back-end da API. Neste documento, você terá 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 anotação, o Endpoints Frameworks usará a chave de API para pesquisar o projeto do Google Cloud ao qual a chave de API está associada. O Endpoints Frameworks rejeitará solicitações, a menos que a chave de API tenha sido gerada no projeto do Google Cloud ou em outros projetos em que sua API foi ativada. Para mais informações, consulte Como restringir o acesso à API com chaves de API.

Os clientes enviam uma chave de API como um parâmetro de consulta, diferentemente das credenciais que usam tokens de curta duração ou solicitações assinadas e que são enviadas no cabeçalho da solicitação. Mesmo que os parâmetros de consulta sejam criptografados em HTTPS, as chaves de API não são seguras. Por exemplo, alguns servidores podem armazenar o URL inteiro de cada solicitação em texto não criptografado em um registro do servidor. Por motivos de segurança, não use as próprias chaves de API quando as chamadas de API contiverem dados do usuário. É possível usar chaves de API e também um dos métodos de autenticação a seguir.

Para ver práticas recomendadas sobre como proteger e adicionar restrições a chaves de API, consulte Como usar chaves de API. Ainda que o tópico "Como usar chaves de API" seja direcionado a clientes que usam APIs do Google, as práticas recomendadas são aplicáveis às APIs criadas usando o Endpoints Frameworks.

Caso de uso

Se você quiser usar recursos do Endpoints, quotas, cada solicitação precisará passar uma chave de API para que o Endpoints possa identificar o projeto do Google Cloud a que 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 fornece serviços de back-end, SDKs e bibliotecas para autenticar usuários em um aplicativo para dispositivos móveis ou Web. Ele autentica os usuários usando uma variedade de 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 tiver feito login com êxito. O Endpoints Frameworks valida que o JWT foi assinado pelo Firebase e que a reivindicação "iss" (emissor) no JWT, que identifica seu aplicativo do Firebase, corresponde à configuração do issuer na anotação.

Caso de uso

Como o Firebase Authentication integra-se perfeitamente a outros serviços do Firebase, ele é adequado para aplicativos para dispositivos móveis ou Web que usam o Firebase. Consulte Como autenticar com o Firebase Auth.

Auth0

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

O Auth0 é compatível com um grande número de provedores e com a 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 faz login. O Endpoints Frameworks valida que o JWT foi assinado por Auth0 e que a declaração "iss" no JWT, que identifica seu aplicativo Auth0, corresponde à configuração do issuer na anotação.

Caso de uso

O Auth0 é adequado para aplicativos para dispositivos móveis e Web voltados a empresas e consumidores. Para mais informações, consulte Como autenticar com Auth0.

Autenticação por token de ID do Google

A autenticação usando um token de ID do Google permite que os usuários façam autenticação fazendo login com uma Conta do Google. Uma vez autenticado, o usuário tem acesso a todos os serviços do Google. É possível usar tokens de ID do Google para fazer chamadas para APIs do Google e APIs que você implementou usando o Endpoints Frameworks. O Endpoints Frameworks valida o token de código do Google usando a chave pública e garante que a reivindicação" "iss" "no JWT seja https://accounts.google.com ou accounts.google.com.

Caso de uso

A autenticação por um token de ID do Google é recomendada quando todos os usuários têm contas do Google. É possível usar a autenticação por token de ID do Google, por exemplo, se a API acompanha os aplicativos do Google Workspace, como o app Companion do Google Drive. Com a autenticação por token de ID do Google, os usuários fazem autenticação ao fazer 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 autenticar com tokens de ID do Google.

JWTs e contas de serviço

Um JSON Web Token (JWT) é comumente usado para compartilhar declarações ou asserções entre aplicativos conectados. Um JWT representando uma conta de serviço pode ser assinado por:

  • uma conta de serviço;

  • um serviço de autorização do Google. um JWT assinado pelo serviço de autorização do Google é chamado de token de ID do Google.

A autenticação de uma solicitação usando um JWT assinado por uma conta de serviço pode ser mais fácil de implementar, mas se você tiver um grande número de contas de serviço ou se quiser aceitar credenciais de contas de serviço que não sejam suas, recomendamos o uso de um token de ID do Google, porque você só precisará permitir https://accounts.google.com ou accounts.google.com como um emissor para todas as contas de serviço.

Caso de uso

JWTs e contas de serviço são adequados para microsserviços. Para mais informações, consulte Como autenticar com uma conta de serviço.