My IBM Se connecter S’abonner

Qu’est-ce qu’une clé API ?

11 juin 2024

Auteurs

Gita Jackson

Staff Writer

Michael Goodwin

Editorial lead, Automation & ITOps

Qu’est-ce qu’une clé API ?

Une clé API est un identifiant unique utilisé pour authentifier les logiciels et les systèmes qui tentent d’accéder à d’autres logiciels ou systèmes via une interface de programmation des applications ou API.

Une API, ou interface de programmation d’application, est un ensemble de règles ou de protocoles qui permettent aux applications logicielles de communiquer entre elles pour échanger des données, des caractéristiques et des fonctionnalités. Les API offrent aux propriétaires d’applications un moyen simple et sécurisé de mettre les données et les fonctions de leurs applications à la disposition des départements de leur organisation. Les propriétaires d’applications peuvent également partager ou commercialiser des données et des fonctions auprès de partenaires commerciaux ou de tiers. Les API permettent de ne partager que les informations nécessaires, les autres détails internes du système restant masqués, ce qui contribue à sa sécurité.

Comme les API peuvent donner accès à des données sensibles, il est important qu'elles soient en mesure de valider que l'application qui en fait la demande est autorisée à le faire. L'utilisation de clés API permet aux développeurs d'authentifier les applications qui appellent le backend d'une API afin de vérifier qu'elles sont bien autorisées.

Cependant, bien que les clés API contribuent à la sécurité des API d'une entreprise et des données qu'elles traitent, elles ne représentent pas une solution de sécurité complète. En particulier, les clés API ne sont pas aussi sécurisées que les jetons d'authentification ou le protocole OAuth (autorisation ouverte). Ces solutions sont mieux adaptées pour authentifier des utilisateurs humains spécifiques, elles permettent un contrôle plus granulaire sur l'accès aux fonctions d'une API et peuvent être configurées pour expirer.

OAuth peut être utilisé en complément des clés API ou seul. Parfois, une entreprise peut choisir d'utiliser une clé API pour certains utilisateurs, tandis qu’elle opte pour OAuth pour d'autres. Il existe d'autres méthodes d'authentification des appels à une API, comme les jetons Web JSON (JWT), mais elles sont moins courantes.

Les clés API restent un élément précieux pour sécuriser les API, car elles permettent aux organisations de surveiller les appels et de gérer la consommation d’API, renforçant ainsi la sécurité et garantissant une bande passante suffisante pour ces programmes.

Vue aérienne d’autoroutes

Gardez la tête dans le cloud 


Recevez la newsletter hebdomadaire Think pour obtenir des conseils d’experts sur l’optimisation des paramètres multicloud à l’ère de l’IA.

Comment fonctionnent les clés API ?

Une clé API est une chaîne alphanumérique unique, générée de manière aléatoire, que les API utilisent pour authentifier les applications qui effectuent des appels. Chaque clé émise par un fournisseur d'API est associée à un client API spécifique, comme un module logiciel. Ces clés permettent au serveur API d'identifier les logiciels ou applications à l'origine des appels. La clé est utilisée pour chaque requête envoyée par l’application ou le projet à l'API associée, et ce, jusqu’à ce qu'elle soit régénérée ou supprimée.

Le processus est simple :

Lorsqu’une application appelle une API pour demander des fonctionnalités ou des données à une autre application, le serveur API valide l’authenticité de l’application via la clé API. Pour les applications Web et les API REST, la clé peut être envoyée sous forme d’en-tête, dans une chaîne de requête ou via un cookie. Si la clé correspond à une clé approuvée, le serveur renvoie les données demandées ; sinon, il rejette l’appel et renvoie un message d’erreur.

Les développeurs peuvent également ajouter des validations ou des restrictions supplémentaires,

comme définir des droits d’accès limitant l’accès à certaines données ou fonctionnalités. Il est aussi possible de mettre en place des restrictions d’application, précisant par exemple quels sites web, adresses IP, applications ou kits de développement logiciel (SDK) peuvent utiliser une clé API.

AI Academy

Se préparer à l’IA avec le cloud hybride

Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.

Clés API et sécurité des API

Même si les clés API font partie des mécanismes de sécurité des API, elles ne doivent pas être la seule méthode d'authentification. En effet, bien qu’elles soient utiles, elles ne sont pas particulièrement sécurisées. Une clé API peut identifier une application ou un projet, mais elle ne peut pas authentifier l’utilisateur qui fait les appels. Cela en fait une solution peu adaptée pour contrôler l’accès aux API. Les clés API permettent uniquement l'identification et l'autorisation au niveau du projet, pas au niveau de l'utilisateur.

Il faut considérer une clé API comme un mot de passe : c’est une couche de sécurité, mais elle peut aussi constituer un point de vulnérabilité en cas de violation de la sécurité. Comme un mot de passe, toute personne ayant accès à une clé API peut l'utiliser, sans possibilité de vérifier qui est réellement derrière. De plus, ces clés expirent rarement, à moins d’être régénérées manuellement.

Les clés API utilisées avec des applications web ne sont pas considérées comme sécurisées lorsqu'elles fonctionnent via le protocole HTTP classique, car elles transmettent des informations d'authentification non chiffrées. Pour être considérées comme sécurisées, les applications web doivent disposer d'un certificat SSL (Secure Sockets Layer), également appelé HTTPS (Hypertext Transfer Protocol Secure).

D'autres méthodes de validation des appels API incluent :

Jetons d'authentification

Également appelés jetons API, ces jetons renforcent la sécurité des API en permettant d'identifier un utilisateur spécifique, et non uniquement l'application qui effectue la requête. Ces jetons, qui sont des segments de code, permettent à une API de reconnaître l’utilisateur qui demande des données. Contrairement à une clé alphanumérique simple, les jetons sont constitués de plusieurs lignes de code, fournissant ainsi plus d’informations sur la personne ou le projet à l’origine de la demande. De plus, les jetons API peuvent être générés avec une portée limitée, offrant uniquement l’accès à certaines informations pour une période déterminée. 

Protocole OAuth

Le protocole OAuth (open authorization) fait partie de la méthode standard dans l’industrie pour autoriser et authentifier les appels API, en particulier lorsqu’il est combiné à OpenID Connect (OIDC). OAuth est utilisé pour accorder aux utilisateurs l’accès aux informations demandées dans le cadre du processus global d’authentification.

Il fonctionne avec un type particulier de jeton API appelé jeton d’accès. Ces jetons d'accès sont délivrés aux utilisateurs par les API auxquelles ils souhaitent accéder. Ils permettent d’établir un dialogue sécurisé entre l'API et l'utilisateur afin d'accéder aux données requises, sans avoir à partager des informations sensibles ou des identifiants.

OpenID Connect est un protocole d'authentification basé sur OAuth, qui permet à OAuth d'authentifier les utilisateurs en émettant des jetons d'identité ainsi que des jetons d'accès. Ces jetons d'identité contiennent également des informations sur le compte spécifique qui fait la demande, et non pas seulement sur le projet. OpenID Connect modifie légèrement le flux d'autorisation d'OAuth en exigeant un jeton d'accès et un jeton d'identité avant d'accorder l'accès à une API.

Les clés API peuvent être utilisées seules ou en complément d’autres formes d'authentification pour les appels API. Au sein d'une entreprise, le choix du type d’authentification et d’autorisation peut varier selon les besoins des utilisateurs. Par exemple, certains services comme les développeurs peuvent nécessiter un accès complet à l'API, tandis que d'autres départements devront se contenter d'un accès plus restreint.

Quels sont les types de clés API ?

Il existe deux principaux types de clés API, chacun jouant un rôle dans l’authentification des appels API, et elles peuvent parfois être utilisées ensemble.

Clés publiques

Ces clés donnent accès à des données non sensibles ou à des fonctionnalités qui ne nécessitent pas d'authentification utilisateur. Elles peuvent être librement partagées entre les développeurs et autres parties prenantes qui collaborent sur une API.

Clés privées

Les clés privées sont utilisées pour accéder à des données sensibles et peuvent également permettre à leur détenteur de modifier ces données. Elles peuvent être combinées à des clés publiques pour renforcer la sécurité.

Bien que les clés API ne doivent pas constituer le seul moyen d'authentification des appels API, l'utilisation conjointe de clés publiques et privées offre une couche de sécurité supplémentaire. Lorsqu'un appel est effectué vers une API, une clé privée peut servir de signature numérique pour identifier des clients spécifiques nécessitant un accès à certaines fonctions. La clé publique vérifie ensuite la signature, confirmant ainsi que l'appel à l'API est légitime.

Quels sont les autres cas d’utilisation des clés API ? 

Les clés API ne se limitent pas à l'authentification. Elles apportent aussi de nombreuses fonctionnalités utiles au sein d'une organisation, notamment pour garantir la disponibilité des applications et collecter des données sur leur utilisation.

Bloquer le trafic anonyme

Les clés API jouent un rôle essentiel dans la gestion des accès en permettant à une organisation de contrôler qui peut accéder à ses API. Un trafic anonyme dirigé vers une API peut être un signe d’activité malveillante. En utilisant des clés API, une organisation peut bloquer les accès non autorisés, comme les appels anonymes, limitant ainsi la portée potentielle d’une cyberattaque. Cette limitation du service API permet également d’éviter que les API ne soient submergées de requêtes, réduisant ainsi le risque de temps d’arrêt pour des applications critiques.

Contrôler le nombre d’appels effectués vers les API

Les clés API peuvent également servir à limiter le nombre de requêtes adressées à une API, une méthode connue sous le nom de « limitation de débit ». Cela permet à une organisation de contrôler le volume de requêtes qu’un client peut envoyer sur une période donnée. Lorsque le trafic atteint un seuil prédéfini, l’accès à l’API est refusé.

En appliquant ces limites, l'organisation optimise l’utilisation des ressources et de la bande passante des API. Ces paramètres sont généralement spécifiés dans la documentation des API de l'entreprise.

Surveiller les tendances d’utilisation des API

Grâce à leur nature d’identifiants uniques, les clés API permettent aux entreprises de suivre précisément le trafic et les appels effectués vers leurs API. Elles peuvent ainsi retracer chaque requête jusqu’à une application particulière, déterminer le nombre d’appels, le type de requêtes, la plage d’adresses IP des utilisateurs, ou encore si ceux-ci utilisent iOS ou Android.

Analyser ces schémas d’utilisation aide l’organisation à mieux comprendre quelles parties de l’entreprise accèdent le plus souvent à certains points de terminaison. En outre, la surveillance du trafic et l'analyse des journaux de logs renforcent la sécurité des API. En cas de cyberattaque, comparer l'activité sur le serveur API aux clés API utilisées permet de mieux comprendre l'attaque et d'identifier les clés compromises.

Comment sécuriser une clé API

Les clés API peuvent contribuer à protéger les API, les données et les réseaux, mais uniquement lorsqu'elles sont utilisées de manière sécurisée. De nombreuses organisations mettent en œuvre les pratiques suivantes pour garantir la sécurité de leurs clés API et éviter que leurs API ne deviennent des cibles de cyberattaques.

Combiner plusieurs méthodes d’authentification

Les clés API ne sont pas assez sécurisées pour être le seul moyen d’authentifier les appels API. Elles ne valident pas les utilisateurs individuels et peuvent être facilement compromises. Lorsqu’elles sont combinées à d’autres méthodes d’authentification, comme OAuth, les jetons Web JSON (JWT) ou des jetons d’authentification, elles ajoutent une barrière supplémentaire à l’écosystème API de l’organisation.

Il n’est pas rare que les organisations utilisent plusieurs méthodes d’authentification. Par exemple, les développeurs peuvent utiliser des clés API en interne pour un accès illimité pendant la phase de développement, puis opter pour OAuth pour les clients externes, qui permet de créer des jetons avec une durée de validité limitée et un accès à des données spécifiques.

Stockage sécurisé des clés

Les clés API sont souvent générées en texte brut. Comme pour un mot de passe, leur sécurité dépend du lieu et de la manière dont elles sont stockées. Les professionnels de la sécurité recommandent que ces clés soient stockées sous forme de valeurs hachées dans une base de données, afin qu’elles ne soient pas vulnérables au vol.

Intégrer les clés API dans le code source ou un référentiel les expose également à des risques, car elles pourraient être rendues publiques lorsque l'application est publiée. Si possible, il est préférable de sauvegarder les clés API générées dans un coffre-fort de données sécurisé et chiffré.

Rotation ou remplacement des clés

Les clés API n’expirent pas automatiquement, à moins que les développeurs ne définissent une date d’expiration ou que le générateur de clés révoque l’accès ou régénère la clé. Si une clé API tombe entre de mauvaises mains, un utilisateur non autorisé pourrait accéder à des données sensibles sans être détecté, car il utilise une clé valide.

La rotation et la régénération des clés API tous les 90 à 180 jours sont des pratiques qui renforcent la sécurité. Il est également recommandé de supprimer les clés API qui ne sont plus utilisées. Pour ajouter une couche de protection supplémentaire, les organisations peuvent limiter l'accès des clés API partagées avec les clients en appliquant des droits d'accès spécifiques. Ces droits permettent aux utilisateurs d'accéder uniquement aux points de terminaison nécessaires. Certaines entreprises automatisent la génération de nouvelles clés pour garantir leur rotation régulière.

Solutions connexes

Solutions connexes

IBM webMethods

Intégrez vos applications et automatisez le travail avec la plateforme multicloud hybride IBM WebMethods.

Découvrir webMethods
Logiciels et solutions d’intégration

Libérez le potentiel de votre entreprise avec les solutions d’intégration IBM qui connectent les applications et les systèmes pour fournir un accès rapide et sécurisé aux données critiques.

Découvrir les solutions d’intégration cloud
Services de conseil cloud 

Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.

Services cloud
Passez à l’étape suivante

Rationalisez votre parcours de transformation numérique grâce à de puissants outils d’intégration. Découvrez comment les solutions de pointe d’IBM peuvent connecter, automatiser et sécuriser vos applications métier.

Bien démarrer avec l’intégration Découvrir les solutions spécialisées