Connecter une application Cordova aux API Microsoft Graph - partie 1
Cet article introduit une série vous décrivant la méthodologie pour connecter une application Cordova (Ionic dans notre exemple) aux APIs Onedrive et plus généralement au Microsoft Graph. Les articles de la série sont les suivants :
- Cet article - déclaration de l'application OneDrive.
- Connexion Oauth au service OneDrive depuis l'application Cordova.
- Utilisation de l'API
À la fin de cette série vous saurez comment télécharger un fichier stocké sur le le OneDrive de votre utilisateur. Il s'agit de la technique que j'utilise par exemple pour récupérer une sauvegarde dans ConsoTracker et cela est compatible Android et iOS.
Création d'une application "Converged"
Cela fait déjà longtemps que Gaëtan en parle : nous allons déclarer une application permettant de nous connecter au Microsoft Graph ! Pour cela il faut se rendre sur le portail des développeurs et ajouter une application "Converged". Cela nous permettra d'accéder avec une seule API aux informations consumer (MSA + Outlook.com/OneDrive/…) et entreprise (compte O365 + Exchange Online/OneDrive for Business/…). Les applications "Live SDK" que vous pouvez voir dans le bas de la page consistent en une vieille API dépréciée.
Si vous cochez la case "Guided Tour" qui vous présente une liste de tutoriaux, il est possible de sortir du guide avec le bouton "skip" en haut à gauche (que j'ai eu du mal à trouver la première fois).
Déclarer une plateforme
La prochaine étape consiste à ajouter une plateforme : dans notre cas, il s'agit d'une application Cordova donc on va choisir bien évidemment "Native Application". Vous remarquerez aussi au prochain chargement que la plateforme "Web" est automatiquement ajoutée et qu'il n'est plus possible de la supprimer. Cela n'aura aucun impact par la suite donc ce n'est pas la peine de s'en inquiéter !
Une fois cette opération effectuée, vous verrez apparaître un encart similaire à celui-ci dessous. Une URI de redirection est déclarée automatiquement en utilisant l'identifiant de l'application "Microsoft Graph". Cela nous permettra de demander une redirection vers cette URL lors du processus d'authentification que nous verrons dans le prochain article de cette série. Il est aussi possible d'en ajouter des personnalisée si cela vous chante mais garder cette URL, à priori unique, est une bonne pratique.
Déclarer les permissions autorisées
Il faut ensuite choisir les permissions que votre application va pouvoir demander à l'utilisateur. Cela permet de restreindre l'usage ciblé par l'application même si un malicieux développeur décidait d'utiliser votre applicationID. Aussi ce n'est pas parce qu'une permission est déclarée ici que vous allez forcément être obligé de la demander à l'utilisateur : vous pouvez le faire en plusieurs fois. Par exemple demander l'accès au fichier une première fois et ensuite demander l'accès "hors ligne" dans une seconde étape.
Ainsi pour pouvoir demander l'accès aux fichiers de l'utilisateur (lire la première sauvegarde), accéder à un dossier spécifique à l'application (façon plus propre de gérer les sauvegardes) et pouvoir le faire même lorsque l'utilisateur n'utilise pas directement l'application (synchronisation en tâche de fond) je vais déclarer les permissions Delegated ci-dessous. La liste complète des possibilités est très vaste et vous permet globalement d'accéder à toutes les informations Office 365.
Vous remarquerez qu'il existe deux types de permissions :
- les "Delegated Permissions" : votre utilisation de l'API sera faite en tant que l'utilisateur vous donnant les droits. Cela correspond à notre usage : on se connecte comme si l'on était l'utilisateur pour accéder à ses fichiers. Les permissions seront autorisées par les utilisateurs eux-mêmes et certaines devront être cependant validées par un administrateur.
- Les "Applications Permissions" : votre utilisation de l'API sera faite en ayant l'identité propre à votre application. C'est par exemple le cas d'une tâche de fond effectuant des traitements récurrents comme la synchronisation de votre AD avec une liste d'utilisateurs d'une application WEB. Ces permissions devront être autorisées par un administrateur super-puissant (aussi appelé Gaëtan).
Dans le prochain article nous verrons comment se connecter à cette application Microsoft Graph depuis Cordova !
Happy coding !
Commentaires