Qu'est-ce qu'une clé API ? (Et sont-elles sûres ?)

"Qu'est-ce qu'une clé API ?" est une question fréquemment posée lorsqu'on travaille avec des API. Les API permettent aux logiciels d'interagir entre eux, de partager des données et d'intégrer leurs fonctions. Les API permettent la communication entre des logiciels autrement déconnectés et constituent la technologie à l'origine de nombreuses intégrations puissantes que vous utilisez tous les jours. Toutefois, contrairement à une conversation en face à face, il est plus difficile pour une API de vérifier si l'application avec laquelle elle communique est bien celle qu'elle prétend être. Les API ont besoin de méthodes d'identification de leurs clients avant de les laisser passer, car elles exposent souvent des informations privées et sensibles. Les clés d'API sont l'une de ces mesures de sécurité ; elles fonctionnent comme une carte d'identité pour le client qui fait une demande d'API, aidant les API à attribuer les autorisations d'accès appropriées et à suivre la façon dont leurs données sont utilisées.

Si vous travaillez avec des API ou des intégrations marketing, vous devez comprendre ce que sont les clés API, comment elles s'intègrent dans la sécurité des API et pourquoi elles ne doivent pas être votre seule couche de protection. Permettez-nous de vous expliquer.

En général, les clés d'API ont deux fonctions principales dans une demande d'API :

  • Authentification du projet : La clé API identifie l'application qui demande l'API et qui reçoit la requête. Chaque projet possède une clé unique qui le distingue des autres projets.
  • Autorisation du projet : La clé API indique à l'API si l'application demandeuse a la permission d'utiliser l'API et quels sont les services de l'API auxquels elle peut accéder. Même si une application peut accéder à une API, elle peut n'être autorisée à utiliser qu'un ensemble limité de services de l'API.

L'API vérifie la clé API fournie dans une demande par rapport à sa base de données clients, puis accepte ou refuse la demande. Si la demande est acceptée, l'API accorde au client l'accès à ses données et fonctionnalités en fonction des droits d'accès associés à la clé API.

Les propriétaires d'API utilisent également les clés d'API pour surveiller l'activité de l'API, comme les types et le volume des demandes provenant de clients individuels. Chaque demande étant associée à une clé, les propriétaires d'API peuvent filtrer par clé et afficher toutes les demandes d'un client spécifique.

Cette capacité de surveillance est essentielle pour protéger l'API contre le trafic malveillant. Les API sont souvent la cible de pirates informatiques qui utilisent diverses méthodes, comme la falsification d'informations d'identification pour injecter du code malveillant ou l'inondation du serveur de l'API par des requêtes. Une API peut utiliser des clés pour éliminer le trafic anonyme des robots ou bloquer les demandes d'un utilisateur spécifique si nécessaire.

Il est important de noter que les clés API sont utilisées pour identifier les demandes de projets et d'applications plutôt que les utilisateurs individuels. Une clé API indique à l'API le projet à l'origine de la demande, mais ne permet pas d'identifier les utilisateurs spécifiques ayant accès au projet. Il s'agit d'une limite de sécurité importante sur laquelle nous reviendrons plus tard.

Comment utiliser une clé API

Avant d'effectuer des requêtes, les API exigent généralement des développeurs qu'ils obtiennent une clé. La procédure doit être documentée sur le site web du développeur de l'API et doit inclure toutes les informations dont vous avez besoin pour commencer.

Dans la plupart des cas, vous devrez créer un compte de développeur en fournissant une adresse électronique et d'autres informations. Vous serez ensuite invité à enregistrer votre projet et à fournir toutes les informations relatives au projet dont les propriétaires de l'API doivent avoir connaissance.

Vous devriez recevoir au moins une clé API, qui est une chaîne de caractères aléatoire associée à votre projet. Elle ressemblera à ce qui suit :

Vous pouvez recevoir deux clés, l'une intitulée "clé publique" et l'autre "clé privée". Une clé publique offre un accès plus limité aux données et aux fonctions de l'API et peut être partagée avec des collaborateurs. Votre clé privée ne doit être partagée avec personne ; elle sert d'identifiant plus permanent pour votre projet et donne accès à votre compte de développeur ainsi qu'à toutes vos données.

Reportez-vous à la documentation de l'API pour savoir où inclure votre clé d'API dans les requêtes - en général, elle se trouve dans l'en-tête de la requête :

Ou écrit dans une chaîne de requête à la suite de la méthode de requête :

Les clés API sont-elles protégées ?

Les API Web sont une cible populaire pour les cyberattaques car elles transmettent des données sensibles entre les applications sur Internet, telles que les identifiants de connexion, les informations personnelles et les transactions financières. Pour lutter contre ce phénomène, les API web doivent être extrêmement sécurisées.

Les clés API peuvent être utilisées pour identifier un projet en relation avec une API et pour spécifier les ressources auxquelles un projet peut accéder. Toutefois, les experts estiment que les clés API ne sont pas suffisamment sûres en elles-mêmes. Cela est dû à plusieurs facteurs :

  • Les clés d'API ne peuvent pas authentifier l'utilisateur individuel qui fait la demande, mais seulement le projet ou l'application qui envoie la demande.
  • Les clés d'API sont comme des mots de passe : elles ne sont efficaces que si leur propriétaire les conserve en toute sécurité. Si une clé tombe entre de mauvaises mains, elle peut facilement être exploitée.
  • Les clés API expirant rarement, un pirate peut utiliser la clé indéfiniment, à moins que le propriétaire de la clé ne la régénère ou ne la désactive.

C'est pour ces raisons que les API les plus répandues utilisent aujourd'hui l'authentification et l'autorisation de l'utilisateur. L'authentification de l'utilisateur garantit que la personne qui fait la demande (plutôt que l'application) est bien celle qu'elle prétend être. L'autorisation de l'utilisateur confirme que cette personne est autorisée à effectuer sa demande.

Les jetons d'authentification, qui sont plus sûrs que les clés API, sont utilisés pour l'authentification et l'autorisation des utilisateurs. Le protocole OAuth est la norme actuelle pour l'authentification et l'autorisation des utilisateurs, permettant à ces derniers de s'authentifier sans fournir de mot de passe. Il s'agit de la même technologie que l'authentification unique, qui permet aux utilisateurs de se connecter à une application (telle que LinkedIn) par l'intermédiaire d'une autre (telle que Google).

OAuth est un processus plus complexe qui mérite son propre article. Voici donc une explication du fonctionnement d'OAuth.

Comment stocker les clés d'API en toute sécurité

Malgré leurs inconvénients, les clés d'API restent populaires et précieuses pour identifier les projets d'appel. Il y a de fortes chances que vous ayez besoin de suivre une ou plusieurs clés lorsque vous travaillez avec une API.

Les clés d'API fonctionnent comme des mots de passe et doivent être stockées et protégées. Voici quelques mesures de base que vous pouvez prendre pour limiter le risque de vol d'une clé :

  • N'écrivez pas votre clé dans un endroit public, par exemple sur une note autocollante ou dans un fichier sur un ordinateur public. Vous pouvez accéder à votre clé en toute sécurité dans votre compte de développeur.
  • Veillez à ne pas exposer accidentellement votre clé lorsque vous documentez votre projet, par exemple au moyen de captures d'écran, d'un téléchargement vers un dépôt public ou d'une URL.
  • N'écrivez pas votre clé API directement dans votre programme, car toute personne ayant accès à vos fichiers source peut voir votre clé.
  • Avant de partager votre clé API, régénérez-la et indiquez qu'il s'agit de la clé partagée la plus récente.
  • Ne partagez pas les clés d'API par courrier électronique.
  • Utilisez toujours HTTPS/SSL pour vos demandes d'API - certaines API ne traiteront pas votre demande si vous ne l'utilisez pas.
  • Attribuez une clé API unique à chaque projet et étiquetez-les en conséquence. Si vous découvrez une clé compromise, vous pouvez la régénérer ou la désactiver sans affecter vos autres projets.

Exemples de clés API

Voici quelques exemples d'API populaires et de la manière dont elles mettent en œuvre les clés d'API pour la sécurité, afin d'illustrer cette leçon.

Clé API Google Maps

La plateforme Google Maps sécurise les demandes de données cartographiques à l'aide de clés API. Après avoir créé un compte développeur Google, vous pouvez facilement générer une clé API Google Maps dans votre espace d'identification.

Google encourage également les utilisateurs à limiter leurs clés API aux domaines acceptés, ce que vous pouvez faire dans la section des informations d'identification. En outre, l'API Google Maps n'accepte que les requêtes sécurisées par HTTPS.

Google fournit l'exemple suivant de clé API dans une requête.

Vous souhaitez intégrer des cartes Google interactives à votre site web ou à votre application ? Consultez notre guide d'initiation aux API Google Maps.

Ce que nous creusons :

L'API de Google et les clés associées constituent un excellent choix pour débuter avec les API et les clés d'API en raison de leur simplicité.

Clé API pour Stripe

Stripe, un service de traitement des paiements, fournit des clés API pour chaque compte de développeur afin d'authentifier les demandes adressées à son API. Il génère deux types de clés API : "publiable", qui est votre clé publique qui connecte votre compte à Stripe, et "secret", qui est votre clé privée confidentielle qui vous permet de faire n'importe quelle demande à Stripe.

Idéal pour les tests :

Stripe génère deux jeux de clés publiables et secrètes, l'un pour votre application live et l'autre pour les tests de l'API. Cela porte votre total à quatre clés. La chaîne de caractères _test_ apparaît dans les clés API de test..

Stripe permet également aux utilisateurs de générer des clés avec des restrictions plus strictes si l'API est mise en œuvre en tant que microservice.

Quand utiliser une clé API ?

Les clés API peuvent être très utiles et vous permettre de mieux contrôler la manière dont votre logiciel d'application est utilisé, mais il peut être difficile de savoir quand les utiliser. Avant de conclure cet article, jetez un coup d'œil à la liste ci-dessous pour voir quand vous pourriez vouloir utiliser une clé API pour votre projet.

Le trafic anonyme doit être bloqué car il peut indiquer une activité ou un trafic potentiellement malveillant. Les clés API peuvent être utilisées pour identifier le trafic des applications et faciliter le débogage et l'analyse de l'utilisation.
Contrôler les appels à l'API : La limitation des appels à l'API permet de limiter la consommation, le trafic et l'utilisation afin de garantir que seul le trafic légitime accède à l'API.

Identifier le trafic de l'API : L'identification des schémas d'utilisation facilite la détection des activités malveillantes et des problèmes au sein de l'API.

Filtrer les journaux : L'activité du serveur API peut être enregistrée et filtrée en fonction de la clé API.

Les clés d'API ont des limitations importantes dont vous devez être conscient. Voici une liste de points à retenir.
Les clés API ne doivent pas être utilisées pour l'autorisation sécurisée car elles sont moins sûres que les jetons d'authentification.

Identification des créateurs ou des propriétaires de projets : Les clés API ne peuvent identifier que le projet à l'origine de l'appel, et non le créateur ou le propriétaire du projet.

Identification des utilisateurs : Les clés d'API sont utilisées pour identifier les projets, et non les utilisateurs qui y accèdent.

Les clés d'API peuvent contribuer à sécuriser vos demandes.

Bien que les clés d'API ne soient pas la seule (ni même la meilleure) mesure de sécurité des API, elles sont utiles pour les fournisseurs d'API et nécessaires pour l'authentification de l'intégration des API.

Une chose restera constante à mesure que les intégrations d'API se répandront dans de nouvelles applications et de nouveaux appareils intelligents : il y aura toujours des gens qui chercheront à voler et à exploiter des données personnelles. Par conséquent, toute API digne de ce nom qui transmet des informations sensibles inclura des clés d'API (et d'autres mesures de sécurité) dans son arsenal.

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp
fr_FRFrench