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.
Description
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
Création d'une nouvelle application
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.
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="..."