Cette page fournit des informations générales sur les clés API et sur l'authentification, à savoir le mode d'utilisation de ces deux méthodes, leurs différences et les scénarios dans lesquels vous pouvez envisager d'utiliser des clés API.
Les clés API concernent les projets, l'authentification concerne les utilisateurs
Google Cloud Endpoints traite à la fois les clés API et les schémas d'authentification (tels que Firebase ou Auth0). Voici en quoi ces deux méthodes diffèrent principalement :
Les clés API identifient le projet appelant, c'est-à-dire l'application ou le site qui effectue l'appel vers une API.
Les jetons d'authentification identifient un utilisateur, c'est à dire la personne qui utilise l'application ou le site.
Les clés API fournissent une autorisation de projet
Pour décider quel schéma est le plus approprié, il est important de comprendre ce qui est fourni par les clés API et par l'authentification.
Les clés API fournissent ces deux éléments :
Identification du projet : identifie l'application ou le projet qui appelle cette API.
Autorisation de projet : vérifie si l'application appelante est autorisée à appeler l'API et si elle a activé l'API dans son projet.
Les clés API ne sont pas aussi sécurisées que les jetons d'authentification (voir Sécurité des clés API), mais elles identifient l'application ou le projet qui appelle une API. Ils sont générés sur le projet effectuant l'appel et vous pouvez limiter leur utilisation à un environnement tel qu'une plage d'adresses IP, ou une application Android ou iOS.
En identifiant le projet appelant, vous pouvez utiliser des clés API pour associer des informations d'utilisation à ce projet. Les clés API permettent à Cloud Endpoint Frameworks de rejeter les appels de projets pour lesquels l'accès n'a pas été autorisé ou activé dans l'API.Authentifier les utilisateurs
Les schémas d'authentification, eux, répondent généralement à deux objectifs :
Authentification de l'utilisateur : valide l'identification de l'utilisateur au moyen d'une procédure sécurisée.
Autorisation de l'utilisateur : vérifie si les droits d'accès de l'utilisateur lui permettent d'effectuer cette requête.
Les schémas d'authentification fournissent un moyen sécurisé d'identifier l'utilisateur appelant. Cloud Endpoints vérifie également le jeton d'authentification pour s'assurer qu'il est autorisé à appeler une API. Sur la base de cette authentification, le serveur d'API décide d'autoriser ou non une requête.
Si vous devez identifier l'utilisateur qui effectue l'appel, consultez la page Authentifier les utilisateurs.
Les clés API identifient le projet appelant, mais pas l'utilisateur. Par exemple, si vous avez créé une application qui appelle une API, une clé API peut identifier l'application qui effectue l'appel, mais pas la personne qui utilise l'application.
Si vous avez besoin d'un moyen plus sécurisé de limiter les projets ou les services autorisés à appeler votre API, consultez la page S'authentifier entre différents services.
Sécurité des clés API
D'une manière générale, les clés API ne sont pas considérées comme sécurisées. En effet, comme elles sont accessibles aux clients, il est facile de les voler. En cas de vol, du fait de l'absence de date d'expiration, la clé peut être utilisée indéfiniment, à moins d'être révoquée ou réinitialisée par le propriétaire du projet. Bien que les limites que vous pouvez définir sur une clé API atténuent ce risque, il existe de meilleures façons de gérer les autorisations.
Pour consulter des exemples, reportez-vous à la page Authentifier les utilisateurs.
Quand utiliser les clés API
Une API peut limiter certaines ou toutes ses méthodes d'obtention de clés API. Ces limites se justifient dans les circonstances suivantes :
Vous voulez bloquer le trafic anonyme. Les clés API identifient le trafic d'une application pour le producteur de l'API, dans le cas où le développeur de l'application a besoin de procéder à un débogage ou d'afficher les données d'utilisation de l'application.
Vous souhaitez contrôler le nombre d'appels passés à votre API.
Vous souhaitez identifier les modèles d'utilisation dans le trafic de votre API. Vous pouvez consulter des exemples d'utilisation des applications sur la page API et services.
Vous souhaitez filtrer les journaux par clé API.
Les clés API ne peuvent pas être utilisées pour :
identifier les utilisateurs individuels : les clés API n'identifient pas les utilisateurs, elles identifient les projets ;
gérer les autorisations par procédure sécurisée ;
identifier les créateurs d'un projet.
Service Infrastructure ne fournit pas de méthode pour rechercher directement des projets à partir de clés API.