-
Notifications
You must be signed in to change notification settings - Fork 14
OAuth
La partie de loin la plus complexe à utiliser de l'API est OAuth. Pour ceux ne connaissant pas, OAuth est un protocole d'authentification qui a pour particularité de ne pas utiliser le mot de passe utilisateur.
Pourquoi est-que nous avons besoin d'OAuth ? La question est importante car sa réponse explique le fonctionnement du protocole en lui-même.
L'objectif de l'API EtuUTT est d'autoriser des applications externes (non développées par l'UNG) à accéder à des données qui pourraient s'avérer sensibles. Il faut donc que l'utilisateur de l'application doive donner son accord pour que l'application puisse accéder à ses données sensibles. Et pour cela il faut que cet utilisateur sache exactement à quelles données l'application pourra accéder.
C'est à cela que sert OAuth. Etant donné qu'une application externe ne devrait jamais avoir à gérer le mot de passe de ses utilisateurs, OAuth met en plce un système basé sur un échange de tokens pour accéder à des données privées avec le consentement de l'utilisateur.
Le fonctionnement d'OAuth est le suivant :
Il y a trois parties en jeu :
- l'Utilisateur, la personne qui utilise votre application ou votre site internet ;
- le Client, votre application ou votre site internet ;
- EtuUTT qui s'occupe d'autoriser les Clients à accéder aux données des Utilisateurs ;
Les étapes de fonctionnement d'un processus classique OAUTH sont :
- Vous déclarer votre application auprès d'EtuUTT en créant un client et en listant les droits dont vous avez besoin dans votre application (à quoi vous voulez accéder) ;
- EtuUTT vous attribue alors un client id et un client secret qui vous serviront pour utiliser l'API ;
- Au moment où l'utilisateur veut se connecter en utilisant votre application, vous le redirigez vers une adresse spécifique d'EtuUTT (que nous verrons plus en détail par la suite), et EtuUTT demandera à l'utilisateur connecté actuellement si il souhaite donner ses informations à votre application ;
- Si l'utilisateur accepte, il est redirigé vers votre application avec un code d'autorisation ;
- Ce code d'autorisation vous permet alors de demander un token d'accès qui sera votre clé pour utiliser concrêtement l'API ;
- Un token d'accès et un refresh token vous sont attribué : le premier vous sert à accéder à l'API et n'est valide qu'une heure, le deuxième vous permet de regénérer à volonté des tokens d'accès et est valide un mois ;
- Vous dialoguez avec l'API grâce au token d'accès en lui demandant des données ...
- ... qu'elle vous fournit si vous y avez accès ...
- ... et que vous pouvez donc fournir à l'utilisateur ;
Cela peut paraitre complexe et difficile d'accès pour le moment, mais vous verrez que dès que nous le mettrons en place, vous comprendrez rapidement le fonctionnement.
Petite remarque: comme vous pouvez le voir, aucun échange de mot de passe passant par le Client n'a eu lieu. Tout se fait à partir d'EtuUTT qui fournit des tokens à ce client.