Notes et transcriptions du cours Débutez avec les API REST proposé par esri France disponible sur la plateforme Openclassrooms.
Client et serveur communiquent. Savoir parler, c'est génial, mais comment le serveur est-il sûr que le client est bien celui qu'il prétend être ?
Vous êtes-vous déjà enregistré sur un site Internet ? Oui ? Vous avez alors renseigné un formulaire avec quelques questions personnelles, nom d'utilisateur, mot de passe, qui deviennent vos identifiants. Lorsque vous retournez sur le site, vous pouvez être reconnu grâce à ces identifiants.
C'est un procédé technique appelé “authentification” !
Plus concrètement, quand vous vous authentifiez auprès d'un serveur, vous prouvez votre identité en lui donnant des informations que vous seul connaissez. Une fois que le serveur sait qui vous êtes, il peut vous faire confiance et vous donner accès aux ressources de votre compte.
C'est le même procédé pour les clients utilisant des API. Si vous êtes authentifié sur l'API, alors vous pouvez l'utiliser ! Il existe différentes techniques d'authentification :
L'authentification basique est la plus simple des authentifications ! Elle nécessite un nom d'utilisateur et un mot de passe. Techniquement :
Même si l'authentification basique est un système valide, l'identifiant utilisé pour accéder à l'API est le même que le compte utilisateur. Par analogie, c'est un peu comme si un hôtel vous donnait la clé de tout le bâtiment plutôt que celle de votre chambre !
Pour l'API c'est la même chose, c'est mieux que le client n'ait pas les mêmes permissions que le propriétaire du compte. Sinon, n'importe qui en récupérant vos identifiants pourrait modifier votre compte ! Ce n'est pas souhaitable !
Pour résoudre ce problème, il existe une technique : accéder à l'API par une clé unique ! La clé est généralement une série de lettres et chiffres différents du mot de passe de votre compte. Celui-ci donne la clé au client, tout comme un hôtel vous donne la clé de votre chambre. Techniquement :
En effet, le serveur a aussi l'option de limiter l'accès à certaines fonctions administratives, comme changer les mots de passe ou effacer des comptes. Mais le rôle de la clé peut être d'éviter que l'utilisateur n'ait à donner son mot de passe : les clés d'authentification API peuvent donc servir à limiter le contrôle ou à protéger les mots de passe de l'utilisateur.
Authentifier par clé d'API est intéressant, mais n'existe-t-il pas un autre système d'authentification plus sécurisé ? Eh bien si : l'autorisation ouverte ou “Open Authorization”, plus couramment appelée OAuth.
Travailler avec des clés API, ce n'est pas forcément facile tous les jours (fautes de frappe, l'utilisateur doit obtenir la clé du serveur, puis la donner au client) ! Vous voulez une autre solution ? OAuth2.
Non, ce n'est pas le nom d'un robot dans StarWars, mais simplement celui d'un protocole de délégation d'autorisation !
Malgré ce nom qui peut paraître pompeux, c'est la technique la plus utilisée sur le web actuellement.
Par exemple, lorsque vous utilisez un client Twitter sur smartphone ou sur ordinateur, à chaque fois que vous voulez poster un message, l’application ne vous demande pas votre mot de passe ! L’application en question a simplement eu besoin que vous l’autorisiez à un moment donné. Ainsi, vos identifiants ne sont pas transmis à chaque requête. C'est simple, n'est-ce pas ? :D
Vous savez tout maintenant sur l'authentification d'une API ! Vous souhaitez découvrir d'autres API ? Rendez-vous dans le prochain chapitre !