• 4 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/01/2024

Authentifiez une API pour plus de sécurité

Comprenez l’importance de l’authentification pour une API

Avant d’aborder d’autres verbes HTTP, il est important que nous parlions davantage de l’authentification. L’authentification constitue simplement un moyen pour les API de garantir que le client a les autorisations nécessaires pour accéder aux données et les manipuler. 🔐 Si je crée une API, je ne veux pas que n’importe qui puisse changer le mot de passe de n’importe quel utilisateur, n’est-ce pas ? 🔥

Lorsque nous avions fait notre requête GET avec l’API GitHub, nous n’avions pas besoin d’authentification pour obtenir des données utilisateurs. Pourquoi ? Rappelez-vous : il existe des API privées... et… des API publiques !

Ah, GitHub est une API publique !

Oui et non. GitHub est une API qui possède une partie publique qui vous permet de faire des requêtes sans autorisation, comme nous l’avons fait dans le chapitre précédent. Cependant, toute l’application n’est pas publique. Une partie des endpoints nécessite une authentification, afin d’avoir les autorisations nécessaires pour mettre à jour des données. 

Si vous voulez modifier, ajouter ou supprimer des données, GitHub doit vous donner l’autorisation de le faire. Vous ne voulez pas que n’importe qui puisse remplacer votre photo de profil par celle de Homer Simpson, duh ! 🍩 Donc, pour que ce soit possible, GitHub doit disposer d’un processus d’authentification.

Une des méthodes d’authentification les plus utilisées consiste à exiger qu’un développeur s’inscrive par le site web de l’API pour obtenir un token ou clé. Une fois le token obtenu, le développeur l’utilise dans sa requête pour s’identifier, et voilà. 🎉

C’est quoi un token, au juste ? Une sorte de code ? 🤔

Eh bien, en quelque sorte ! Un token est généralement une chaîne longue et unique de lettres et de chiffres aléatoires que l’on assigne à un utilisateur. Le token est un peu comme un numéro de passeport : il est unique et permet de vous identifier. L’API peut donc l’utiliser pour savoir qui effectue la requête, et surtout de quel niveau d’autorisation cette personne dispose.

Les autorisations peuvent décrire des accès spécifiques à certaines fonctionnalités, comme le nombre de requêtes que l’on peut envoyer mais aussi quelles actions on peut effectuer (si on est un administrateur ou non, par exemple)... La documentation de l’API se doit de fournir toutes les informations sur les fonctionnalités accessibles à travers un token d’authentification.

Comment ajouter le token à la requête ? 🤔

On l’envoie soit dans les paramètres du header, soit dans l’endpoint lui-même.

Pour illustrer ce qu’on vient de voir, nous allons regarder ensemble comment obtenir un token GitHub pas à pas !

Pour commencer, allez sur ce lien : https://github.com/settings/tokens.

Vous devriez obtenir cette page :

Page GitHub
Page GitHub qui vous permet d'obtenir un token

Vous êtes à présent sur la partie qui vous permet de demander à GitHub de vous donner un token afin de pouvoir effectuer des opérations via l’API GitHub.

Cliquez sur Generate new token.

Page GitHub pour générer un token : Les éléments Note, repo et delete_repo sont encadrés en vert.
Génération d'un token

Dans notre cas, nous voulons que GitHub nous donne l’autorisation pour deux choses :

  1. Effectuer des actions sur les repositories GitHub. 

  2. Supprimer des repositories GitHub

Suivez l’exemple ci-dessus et n’oubliez pas d’inscrire dans la section Note une information qui vous permettra plus tard de vous souvenir à quoi servait ce token. Cela peut être le nom d’une application, de votre API, etc. Dans mon cas, j’ai indiqué OpenClassrooms.😄 Cliquez ensuite sur Generate token (générer un token), et tada ! 🎉

\

Le ruban de génération de token est affiché au milieu.
Génération de token

Votre token sera visible à l’emplacement du marqueur noir. J’ai choisi de masquer le mien. 🙊

L’encadré bleu explique qu'il faut copier votre token personnel car vous ne serez plus en mesure de le voir.

Après avoir copié soigneusement votre token, rechargez la page. Vous devriez voir apparaître comme ci-dessus votre nouveau token par le nom que vous lui avez attribué ; dans mon cas : Open Classrooms. Vous verrez aussi les actions qu’il vous permet de faire sur l’API GitHub ; dans notre cas, les deux que nous avons séléctionnés : delete_repo et repo.

Actions possibles avec le token : delete_repo et repo. Ici, OpenClassrooms__delete_repo, repo est encadré en vert.
Actions possibles avec le token

Nous avons vu ensemble comment utiliser des API. Sauf que les API peuvent être créées par des entreprises, des services, ou des développeurs indépendants. Comment être certain qu’elles sont fiables ?

Privilégiez la sécurité : choisissez vos API avec discernement

Comme vous l’avez appris précédemment, il existe des milliers d’API différentes que vous pouvez utiliser dans vos projets. Comme toujours, il est important de garder en tête la sécurité de vos données et de votre application. En tant que développeur, vous êtes responsable de la sécurité des données de vos utilisateurs ! Vous devez vous assurer que vos API proviennent d’une source fiable.

Mais comment faire ? Comment puis-je savoir si une API est fiable ou non ? 🤔

Il existe quelques méthodes simples et rapides pour vérifier si une API est fiable ou non. Les API de qualité auront plusieurs mesures de sécurité comme l’authentification, l’autorisation et le cryptage. Elles auront aussi été mises à jour récemment ; vous saurez donc qu’elles sont mises à jour en fonction des derniers standards de sécurité. 

Prenons un exemple ! Sur GitHub, vous trouverez l’API Pokémon nommée PokeApi qui a été mise à jour récemment. 👇

Un exemple d’une API mise à jour récemment #PokeApi est affiché et encadré en vert.
Un exemple d’une API mise à jour récemment #PokeApi

Vous pouvez constater sur leur GitHub que la date de leur dernier commit est assez récente ; vous savez donc que cette API est maintenue et mise à jour. 😉

Avant chaque utilisation d’une API externe, vérifiez la date de la dernière mise à jour sur GitHub ou bien sur lson site Internet, lisez la documentation et si vous avez des doutes (ou non), regardez en ligne des avis ou posez simplement la question à un autre développeur.

En résumé

  • Pour obtenir un token d’authentification GitHub, vous pouvez :

    • aller sur https://github.com/settings/developers et cliquer sur Personal Access Tokens (tokens d’accès personnel) ;

    • cliquer sur Generate new token (générer nouveau token) et saisir « Open Classrooms » dans les notes ;

    • vous verrez alors toutes les différentes options d’autorisation dont vous voulez doter votre API ;

    • choisissez toutes celles que vous voulez tester. Nous avons utilisé Repo et Delete (supprimer) ;

    • cliquez sur Generate token (générer token) et obtenez votre token API personnel ; 👏

    • assurez-vous de copier et sauvegarder ce token, car nous l’utiliserons par la suite.

  • L’authentification est nécessaire pour garantir que seules les personnes avec les autorisations adéquates peuvent accéder à votre API.

  • Les clés ou tokens API sont couramment utilisés dans une requête pour authentifier un utilisateur.

  • Assurez-vous de bien vérifier la fiabilité d’une API avant de l’utiliser.

  • Vous pouvez trouver les indications de mise à jour d’une API sur GitHub ou sur son site Internet.

GET n’a plus de secret pour vous, vous avez créé votre compte GitHub et obtenu votre premier token. Il est temps de passer à la vitesse supérieure et de jouer avec l’API GitHub ! 🚀

Exemple de certificat de réussite
Exemple de certificat de réussite