Escolher um método de autenticação

Os frameworks do Cloud Endpoints suportam vários métodos de autenticação adequados a diferentes aplicações e exemplos de utilização. Os Frameworks de Endpoints usam o método de autenticação que especificou na sua anotação para validar os pedidos recebidos antes de os transmitir ao back-end da API. Este documento fornece uma vista geral e exemplos de utilização para cada método de autenticação suportado.

Chaves da API

Uma chave da API é uma string encriptada simples que identifica um Google Cloud projeto para fins de quota, faturação e monitorização. Um programador gera uma chave da API num projeto na Google Cloud consola e incorpora essa chave em cada chamada à sua API como um parâmetro de consulta.

Se especificar um requisito de chave da API na sua anotação, os Frameworks de Endpoints usam a chave da API para procurar oGoogle Cloud projeto ao qual a chave da API está associada. O Endpoints Frameworks rejeita pedidos, a menos que a chave da API tenha sido gerada no seu Google Cloud projeto ou noutrosGoogle Cloud projetos nos quais a sua API tenha sido ativada. Para mais informações, consulte o artigo Restringir o acesso à API com chaves da API

Ao contrário das credenciais que usam tokens de curta duração ou pedidos assinados e são enviadas no cabeçalho do pedido, os clientes enviam uma chave de API como um parâmetro de consulta. Embora os parâmetros de consulta sejam encriptados em HTTPS, as chaves da API não são seguras. Por exemplo, alguns servidores podem armazenar o URL completo de cada pedido em texto não cifrado num registo do servidor. Por motivos de segurança, não use chaves da API isoladamente quando as chamadas da API contiverem dados do utilizador. Pode usar chaves de API, além de um dos seguintes métodos de autenticação.

Para ver as práticas recomendadas sobre como proteger e adicionar restrições às chaves da API, consulte o artigo Usar chaves da API. Embora o artigo "Usar chaves de API" se destine a clientes que usam APIs Google, as práticas recomendadas são aplicáveis a APIs que cria usando frameworks de pontos finais.

Exemplo de utilização

Se quiser usar funcionalidades dos Endpoints, como quotas, cada pedido tem de transmitir uma chave de API para que os Endpoints possam identificar o Google Cloudprojeto ao qual a aplicação cliente está associada.

Para mais informações sobre as chaves da API, consulte o artigo Porquê e quando usar chaves da API.

Firebase Authentication

A autenticação do Firebase fornece serviços de back-end, SDKs e bibliotecas para autenticar utilizadores numa app para dispositivos móveis ou numa app Web. Autentica utilizadores através de várias credenciais, como Google, Facebook, Twitter ou GitHub.

A biblioteca do cliente do Firebase assina um símbolo da Web JSON (JWT) com uma chave privada depois de o utilizador iniciar sessão com êxito. O Endpoints Frameworks valida se o JWT foi assinado pelo Firebase e se a reivindicação "iss" (emissor) no JWT, que identifica a sua aplicação Firebase, corresponde à definição issuer na anotação.

Exemplo de utilização

Uma vez que a autenticação do Firebase se integra perfeitamente com outros serviços do Firebase, é adequada para apps para dispositivos móveis ou Web que usam o Firebase. Consulte o artigo Autenticação com o Firebase Auth.

Auth0

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

O Auth0 suporta um grande número de fornecedores e a especificação da Security Assertion Markup Language. Fornece serviços de back-end, SDKs e bibliotecas de interface do utilizador para autenticar utilizadores em apps Web e para dispositivos móveis. O Auth0 integra-se com vários fornecedores de identidade de terceiros e também oferece gestão de contas de utilizador personalizadas.

A biblioteca de cliente fornecida pela Auth0 gera e assina um JWT assim que o utilizador tiver iniciado sessão. Os frameworks de pontos finais validam se o JWT foi assinado pelo Auth0 e se a reivindicação "iss" no JWT, que identifica a sua aplicação Auth0, corresponde à definição issuer na anotação.

Exemplo de utilização

O Auth0 é adequado para apps Web e para dispositivos móveis de consumidores e empresas. Para mais informações, consulte o artigo Autenticação com o Auth0.

Autenticação de token de ID da Google

A autenticação através de um token de ID Google permite que os utilizadores se autentiquem iniciando sessão com uma Conta Google. Após a autenticação, o utilizador tem acesso a todos os serviços Google. Pode usar tokens de ID Google para fazer chamadas para APIs Google e APIs que implementou através de Frameworks de Endpoints. O Endpoints Frameworks valida o token de ID da Google através da chave pública e garante que a reivindicação "iss" no JWT é https://accounts.google.com ou accounts.google.com.

Exemplo de utilização

A autenticação através de um token de ID da Google é recomendada quando todos os utilizadores têm contas Google. Pode optar por usar a autenticação de token de ID Google, por exemplo, se a sua API acompanhar as aplicações do Google Workspace (por exemplo, um complemento do Google Drive). A autenticação de tokens de ID da Google permite que os utilizadores se autentiquem iniciando sessão com uma Conta Google. Após a autenticação, o utilizador tem acesso a todos os serviços Google.

Para mais informações, consulte o artigo Autenticação com tokens de ID da Google.

JWTs e contas de serviço

Um símbolo da Web JSON (JWT) é usado frequentemente para partilhar reivindicações ou afirmações entre aplicações ligadas. Um JWT que representa uma conta de serviço pode ser assinado por:

  • A conta de serviço.

  • Serviço de autorização da Google. (Um JWT assinado pelo serviço de autorização da Google é denominado token de ID Google.)

A autenticação de um pedido através de um JWT assinado por uma conta de serviço pode ser mais fácil de implementar, mas se tiver um grande número de contas de serviço ou quiser aceitar credenciais de contas de serviço que não lhe pertencem, recomenda-se a utilização de um token de ID Google, uma vez que só tem de permitir https://accounts.google.com ou accounts.google.com como emissor para todas as contas de serviço.

Exemplo de utilização

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