Skip to content
Thomas Chauchefoin edited this page Mar 29, 2016 · 1 revision

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 utiliser OAuth ?

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.

Comment fonctionne OAuth ?

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 :

  1. 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) ;
  2. EtuUTT vous attribue alors un client id et un client secret qui vous serviront pour utiliser l'API ;
  3. 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 ;
  4. Si l'utilisateur accepte, il est redirigé vers votre application avec un code d'autorisation ;
  5. Ce code d'autorisation vous permet alors de demander un token d'accès qui sera votre clé pour utiliser concrêtement l'API ;
  6. 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 ;
  7. Vous dialoguez avec l'API grâce au token d'accès en lui demandant des données ...
  8. ... qu'elle vous fournit si vous y avez accès ...
  9. ... 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.