Porquê e quando usar chaves da API

Esta página fornece informações gerais sobre as chaves da API e a autenticação: como cada uma delas é usada, as diferenças entre elas e os cenários em que deve considerar usar chaves da API.

As chaves da API destinam-se a projetos, a autenticação destina-se a utilizadores

O Cloud Endpoints processa chaves da API e esquemas de autenticação, como o Firebase ou o Auth0. A principal distinção entre estes dois elementos é:

  • As chaves da API identificam o projeto de chamada, ou seja, a aplicação ou o site, que está a fazer a chamada a uma API.

  • Os tokens de autenticação identificam um utilizador, ou seja, a pessoa que está a usar a app ou o site.

    Vista geral das chaves da API

As chaves da API fornecem autorização do projeto

Para decidir qual o esquema mais adequado, é importante compreender o que as chaves de API e a autenticação podem oferecer.

As chaves da API oferecem

  • Identificação do projeto: identifique a aplicação ou o projeto que está a fazer uma chamada a esta API

  • Autorização do projeto: verifique se a aplicação de chamada recebeu acesso para chamar a API e se ativou a API no respetivo projeto

As chaves da API não são tão seguras como os tokens de autenticação (consulte a secção Segurança das chaves da API), mas identificam a aplicação ou o projeto que está a chamar uma API. São gerados no projeto que faz a chamada e pode restringir a respetiva utilização a um ambiente, como um intervalo de endereços IP ou uma app Android ou iOS.

Ao identificar o projeto de chamada, pode usar chaves da API para associar informações de utilização a esse projeto. As chaves da API permitem que o proxy de serviço extensível (ESP) rejeite chamadas de projetos aos quais não foi concedido acesso ou que não foram ativados na API.

Autenticação de utilizadores

Por outro lado, os esquemas de autenticação servem normalmente dois propósitos:

  • Autenticação do utilizador: verifique de forma segura se o utilizador que está a fazer a chamada é quem afirma ser.

  • Autorização do utilizador: verifique se o utilizador deve ter acesso para fazer este pedido.

Os esquemas de autenticação oferecem uma forma segura de identificar o utilizador que está a fazer a chamada. Os pontos finais também verificam o token de autenticação para confirmar se tem autorização para chamar uma API. Com base nessa autenticação, o servidor da API decide sobre a autorização de um pedido.

Se precisar de identificar o utilizador que está a fazer a chamada, consulte o artigo Autenticar utilizadores.

Embora as chaves de API identifiquem o projeto de chamada, não identificam o utilizador de chamada. Por exemplo, se tiver criado uma aplicação que está a chamar uma API, uma chave da API pode identificar a aplicação que está a fazer a chamada, mas não a identidade da pessoa que está a usar a aplicação.

Se precisar de uma forma mais segura de limitar os projetos ou os serviços que podem chamar a sua API, consulte o artigo Autenticação entre serviços.

Segurança das chaves da API

Geralmente, as chaves da API não são consideradas seguras. Normalmente, são acessíveis aos clientes, o que facilita o roubo de uma chave da API. Uma vez roubada, a chave não tem data de validade, pelo que pode ser usada indefinidamente, a menos que o proprietário do projeto revogue ou regenere a chave. Embora as restrições que pode definir numa chave da API atenuem esta situação, existem abordagens melhores para a autorização.

Para ver exemplos, consulte o artigo Autenticar utilizadores.

Quando deve usar chaves da API

Uma API pode restringir alguns ou todos os respetivos métodos para exigir chaves da API. Faz sentido fazê-lo se:

  • Quer bloquear o tráfego anónimo. As chaves da API identificam o tráfego de uma aplicação para o produtor da API, caso o programador da aplicação precise de trabalhar com o produtor da API para depurar um problema ou mostrar a utilização da respetiva aplicação.

  • Quer controlar o número de chamadas feitas à sua API.

  • Quer identificar padrões de utilização no tráfego da sua API. Pode ver a utilização das aplicações em APIs e serviços.

  • Quer filtrar os registos por chave da API.

Não é possível usar chaves da API para:

  • Identificação de utilizadores individuais: as chaves de API não identificam utilizadores, identificam projetos.

  • Autorização segura.

  • Identificar os criadores de um projeto.

A infraestrutura de serviços não oferece um método para procurar diretamente projetos a partir de chaves da API.

Como usar chaves da API

Para saber como configurar e usar o acesso com chaves da API, consulte o artigo Restringir o acesso com chaves da API.