API MyCentraleAssos

L'API est un moyen de communiquer avec l'application depuis l'extérieur au travers d'autres applications. Le protocole utilisé pour l'authentification est OAuth2. L'application peut permettre d'effectuer des tâches simple, tel que l'authentification au travers de la plateforme, ou des choses plus complexes telles que la récupération de données relatives à des associations.

Chaque application externe dispose de droits bien précis pour pouvoir communiquer avec l'application et ne peut le faire qu'après consentement de l'utilisateur.

Présentation

Flow

Vocabulaire

  • Utilisateur : Personne naviguant sur l'application et déléguant ses droits vers une application tierce
  • Client : Application tierce en question
  • Token : Clé permettant à un Client d'effectuer des actions au nom de l'Utilisateur. Celui-ci a une durée de 1 heure par défaut.
  • Refresh Token : Clé permettant à une application de générer un nouveau Token

Caractéristiques d'une application

Une application dispose d'un nom, d'un jeu de clés publique et privée, de différents liens de retour autorisés, ainsi que de différents droits.

L'application dispose de différents droits concernant le moyen d'authentification (grant type) :

  • authorization_code permet d'obtenir un code d'autorisation retourné à l'application via l'intermédiaire de l'utilisateur. L'utilisateur n'aura donc jamais accès au token.
  • refresh_token permet d'obtenir un nouveau token après expiration.
  • token (Implicit) permet d'avoir un Token directement retourné au client (applications front-end)
  • password (User credentials/Resource Owner Password Credentials) permet d'avoir un token en échange des informations de connexion de l'utilisateur.
  • client_credentials permet d'avoir un token n'étant pas lié à un utilisateur.
Les grant type password et client_credentials sont réservés à des usages internes au GInfo, pour les communications inter-applications. Sauf décision exceptionnelle des responsables du GInfo, ces grant type ne seront pas autorisés pour des applications externes non gérées par le GInfo.

Et de différents droits d'accès que l'utilisateur accorde à l'application (scope) :

  • scope_users donne l'accès à l'annuaire des utilisateurs
  • scope_assos donne accès à la gestion des associations en fonction des droits de l'utilisateur
  • scope_cards donne l'accès à la recherche & à la gestion de cartes NFC.

Commandes

Pour la création de nouvelles applications :

 php bin/console fos:oauth-server:create-client --redirect-uri="..." --grant-type="..."
  • projets/mca/api.txt
  • Dernière modification: 13/08/2018 18:54
  • par rgrondin