2 - OAuth : qu'est ce que c'est - Site étudiant de l'UTT

Ok, on a peut-être été un peu optimistes pour la date de sortie de la bêta du nouveau EtuUTT. Nous ne voulons pas publier la version que nous avons actuellement, même en bêta. On voudrait vous sortir une version un minimum propre, et que vous pourrez commencer à utiliser. Cette fois-ci, on ne va pas se donner de deadline, mais promis, ça arrive.

Logo du site Wiki UTT

2 - OAuth : qu'est ce que c'est

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 :

intro oauth

 

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.


Dernière modification par Aurelien LABATE : 05/10/2017 01:37
Page modifiable par Etudiant
Page visible par Etudiant et Exterieur