117 votes

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

Je vois ce mot dans presque toutes les applications de services croisés de nos jours.

Qu'est-ce qu'une clé API et à quoi sert-elle ?

Par ailleurs, quelle est la différence entre les clés d'API publiques et privées ?

113voto

Rob Points 31432

L'utilisation "exacte" d'une clé API dépend en grande partie de la personne qui l'émet et des services pour lesquels elle est utilisée. En général, cependant, une clé API est le nom donné à une forme de jeton secret qui est soumis avec les demandes de services web (ou similaires) afin d'identifier l'origine de la demande. La clé peut être incluse dans un condensé du contenu de la demande afin de vérifier davantage l'origine et d'empêcher la falsification des valeurs.

En règle générale, si vous pouvez identifier positivement la source d'une demande, cela constitue une forme d'authentification, qui peut conduire à un contrôle d'accès. Par exemple, vous pouvez restreindre l'accès à certaines actions de l'API en fonction de l'auteur de la demande. Pour les entreprises qui gagnent de l'argent en vendant de tels services, c'est aussi un moyen de savoir qui utilise l'outil à des fins de facturation. De plus, en bloquant une clé, vous pouvez partiellement empêcher les abus en cas de volumes de demandes trop élevés.

En général, si vous disposez d'une clé d'API publique et d'une clé d'API privée, cela signifie que les clés sont elles-mêmes des paires de clés publiques/privées traditionnelles utilisées dans une certaine forme de cryptographie asymétrique ou dans un domaine connexe, la signature numérique. Il s'agit de techniques plus sûres permettant d'identifier avec certitude la source d'une demande et, en outre, de protéger le contenu de la demande contre l'espionnage (en plus de la falsification).

13 votes

C'est bien dit ! Toutefois, d'après mon expérience quelque peu limitée, la distinction public/privé n'a rien à voir avec la cryptographie à clé publique. Les clés "publiques" que j'ai vues sont généralement des clés d'accès "allégées" - en d'autres termes, une clé que vous pouvez distribuer pour permettre à des tiers d'accéder à des données non sensibles, sans donner les clés du royaume.

2 votes

@Rob +1 pour la réponse détaillée @tim +1 pour la réflexion !

0 votes

@tim - je suis d'accord. Je pense que l'approche la plus courante que j'ai vue est d'avoir une clé privée de condensé.

25voto

timdev Points 25910

D'une manière très générale :

Une clé API vous identifie simplement.

S'il existe une distinction public/privé, la clé publique est celle que vous pouvez distribuer à d'autres personnes pour leur permettre d'obtenir un sous-ensemble d'informations vous concernant à partir de l'interface utilisateur. La clé privée est réservée à votre usage exclusif et permet d'accéder à toutes vos données.

0 votes

La plupart du temps, ils ressemblent à des hachages. mon observation est-elle correcte ?

0 votes

Ils peuvent être générés comme vous le souhaitez, à condition qu'ils soient uniques. Un hachage de certaines données semble être un moyen raisonnable d'en générer un, en effet.

0 votes

Oui, ils ressemblent à des hachages. Après tout, vous ne voulez pas qu'ils soient faciles à deviner.

21voto

timandtheocean Points 190

Il semble que de nombreuses personnes utilisent les clés API comme solution de sécurité. L'essentiel est là : Ne jamais traiter les clés d'API comme des secrets ce n'est pas le cas. Sur https ou non, quiconque peut lire la demande peut voir la clé API et peut effectuer l'appel qu'il souhaite. Une clé API doit être considérée comme un simple identifiant d'utilisateur, car elle ne constitue pas une solution de sécurité complète, même lorsqu'elle est utilisée avec SSL.

La meilleure description se trouve dans le lien d'Eugene Osovetsky : Lorsque l'on travaille avec la plupart des API, pourquoi exigent-elles deux types d'authentification, à savoir une clé et un secret ? Ou vérifier http://nordicapis.com/why-api-keys-are-not-enough/

10voto

Une clé API est une valeur unique qui est attribuée à un utilisateur de ce service lorsqu'il est accepté en tant qu'utilisateur du service.

Le service conserve toutes les clés émises et les vérifie à chaque demande.

En examinant la clé fournie lors de la demande, un service vérifie s'il s'agit d'une clé valide pour décider d'accorder ou non l'accès à un utilisateur.

2voto

GG. Points 1030

Les clés API ne sont qu'un moyen d'authentifier les utilisateurs de services web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X