Qu'est-ce qu'une clé API? [fermé]

109

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

Qu'est-ce qu'une clé API et quelles sont ses utilisations?

En outre, quelle est la différence entre les clés API publiques et privées.

OrangeRind
la source

Réponses:

111

À quoi sert «exactement» une clé API dépend beaucoup de la personne qui la délivre et des services pour lesquels elle est utilisée. Dans l'ensemble, cependant, une clé API est le nom donné à une forme de jeton secret qui est soumis parallèlement aux demandes de service Web (ou similaires) afin d'identifier l'origine de la demande. La clé peut être incluse dans un condensé du contenu de la demande pour vérifier davantage l'origine et pour empêcher la falsification des valeurs.

En règle générale, si vous pouvez identifier la source d'une demande de manière positive, cela agit comme une forme d'authentification, ce qui peut conduire à un contrôle d'accès. Par exemple, vous pouvez restreindre l'accès à certaines actions d'API en fonction de la personne qui exécute la demande. Pour les entreprises qui gagnent de l'argent en vendant de tels services, c'est aussi un moyen de savoir qui utilise la chose à des fins de facturation. De plus, en bloquant une clé, vous pouvez en partie éviter les abus en cas de volumes de requêtes trop élevés.

En général, si vous disposez à la fois d'une clé API publique et privée, cela suggère que les clés sont elles-mêmes une paire de clés publique / privée traditionnelle utilisée dans une forme de cryptographie asymétrique ou de signature numérique associée. Il s'agit de techniques plus sûres pour identifier positivement la source d'une demande et, en outre, pour protéger le contenu de la demande contre le snooping (en plus de la falsification).

Rob
la source
12
Bien placé! Cependant, dans 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 "access lite" - en d'autres termes, une clé que vous pouvez distribuer pour accorder à des tiers l'accès à des données non sensibles, sans donner les clés du royaume.
timdev
2
@Rob +1 pour la réponse détaillée @tim +1 pour la réflexion!
OrangeRind
@tim - d'accord. Je pense que l'approche la plus courante que j'ai vue est d'avoir une clé de résumé privée.
Rob
24

De manière très générale:

Une clé API vous identifie simplement.

S'il y a une distinction public / privé, alors la clé publique est celle que vous pouvez distribuer à d'autres, pour leur permettre d'obtenir un sous-ensemble d'informations sur vous à partir de l'API. La clé privée est uniquement à votre usage et vous donne accès à toutes vos données.

timdev
la source
la plupart du temps, ils ressemblent à des hachages. mon observation est-elle correcte?
OrangeRind
Les 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 une, oui.
Matthew Scharley
Oui, ils ressemblent à des hachages. Après tout, vous ne voulez pas qu'ils soient faciles à deviner.
timdev
1
Plus ou moins - la plupart des clés API standard bog sont générées en hachant une valeur pseudo-aléatoire et en effectuant un encodage de texte brut standard sur le résultat, par exemple base16, base64 etc.
Rob
18

Il semble que de nombreuses personnes utilisent les clés API comme solution de sécurité. En bout de ligne, ne traitez jamais les clés API comme secrètes, ce n'est pas le cas. Sur https ou non, quiconque peut lire la requête peut voir la clé API et peut passer l'appel de son choix. Une clé API doit être simplement un identifiant «utilisateur» car ce n'est 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 Eugene Osovetsky vers: Lorsque vous travaillez avec la plupart des API, pourquoi nécessitent-elles deux types d'authentification, à savoir une clé et un secret? Ou consultez http://nordicapis.com/why-api-keys-are-not-enough/

timandtheocean
la source
2
Comme vous pouvez le voir, c'est une vieille question, et peut probablement être considérée comme "trop ​​large" (ou peut-être "hors sujet") selon les normes modernes de Stack Overflow. Ces questions ont tendance à attirer des réponses d'opinion, qui sont généralement rejetées et / ou supprimées. Rester à l'écart de ces questions est généralement la meilleure solution. Vous pouvez consulter le centre d'aide pour plus d'informations.
Dev-iL
10

Une clé API est une valeur unique 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.


la source
alors qu'en est-il du public et du privé?
OrangeRind
1
Les clés publiques et privées proviennent du domaine du cryptage et ont quelque chose à voir avec le cryptage asymétrique. Je n'ai jamais entendu ces termes utilisés dans le sens de clés API.
2

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

GG.
la source
1

Pensez-y de cette façon, la «clé API publique» est similaire à un nom d'utilisateur que votre base de données utilise comme connexion à un serveur de vérification. La "clé API privée" serait alors similaire au mot de passe. Par le site / base de données utilisant cette méthode, la sécurité est maintenue sur le serveur tiers / de vérification afin d'authentifier la demande de publication ou d'édition de votre site / base de données.

La chaîne API est simplement l'URL de la connexion pour votre site / base de données pour contacter le serveur de vérification.

Eugène Grant-Sinclair
la source