Utiliser MSGraphClient pour la connexion à Microsoft Graph
Quand vous créez des solutions SharePoint Framework, vous pouvez vous connecter facilement à Microsoft Graph en utilisant la classe MSGraphClient.
Présentation de MSGraphClient
MSGraphClient est un nouveau client HTTP introduit dans SharePoint Framework v1.6.0 qui simplifie la connexion à Microsoft Graph dans les solutions SharePoint Framework. MSGraphClient inclut la bibliothèque cliente JavaScript Microsoft Graph dans un wrapper. Ainsi, les développeurs bénéficient des mêmes fonctionnalités que s’ils utilisaient la bibliothèque cliente dans d’autres solutions côté client.
Si vous pouvez utiliser la bibliothèque cliente JavaScript Microsoft Graph directement dans votre solution, MSGraphClient gère pour vous l’authentification auprès de Microsoft Graph, ce qui vous permet de vous concentrer sur la création de votre solution.
Utiliser MSGraphClient dans votre solution
Notes
MSGraphClient est disponible uniquement dans les projets créés avec SharePoint Framework v1.6.0 et version ultérieure. Tandis que le fonctionnement de MSGraphClient est décrit dans cet article à l’aide d’un composant WebPart côté client, vous pouvez l’utiliser également dans les extensions de SharePoint Framework.
Notes
L’authentification unique pour le client MSGraphClient est actuellement disponible uniquement dans SharePoint Online. Vous pouvez tirer parti du client pour des développements locaux, mais vos utilisateurs devront se reconnecter à l’intérieur du composant WebPart.
Pour utiliser MSGraphClient dans votre solution SharePoint Framework, ajoutez la clause
importsuivante dans votre fichier de composant WebPart principal :import { MSGraphClient } from '@microsoft/sp-http';MSGraphClient est exposé via MSGraphClientFactory disponible sur le contexte du composant WebPart. Pour obtenir une référence à MSGraphClient, dans votre code ajoutez :
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { public render(): void { // ... this.context.msGraphClientFactory .getClient() .then((client: MSGraphClient): void => { // use MSGraphClient here }); } // ... }Une fois la référence à l’instance MSGraphClient obtenue, vous pouvez commencer à communiquer avec Microsoft Graph en utilisant sa syntaxe de bibliothèque cliente JavaScript :
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { public render(): void { // ... this.context.msGraphClientFactory .getClient() .then((client: MSGraphClient): void => { // get information about the current user from the Microsoft Graph client .api('/me') .get((error, response: any, rawResponse?: any) => { // handle the response }); }); } // ... }
Utiliser les types TypeScript Microsoft Graph
Lorsque vous utilisez Microsoft Graph et TypeScript, vous pouvez employer les types TypeScript Microsoft Graph pour vous aider à détecter les erreurs de code plus rapidement. Les types TypeScript Microsoft Graph sont fournis séparément dans un autre package.
Installez les types TypeScript Microsoft Graph :
npm install @microsoft/microsoft-graph-types --save-devAprès avoir installé le package dans votre projet, importez-le dans votre fichier de composant WebPart :
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';Entrez les objets extraits de Microsoft Graph, par exemple :
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { public render(): void { // ... this.context.msGraphClientFactory .getClient() .then((client: MSGraphClient): void => { // get information about the current user from the Microsoft Graph client .api('/me') .get((error, user: MicrosoftGraph.User, rawResponse?: any) => { // handle the response }); }); } // ... }
Étendues d’autorisation disponibles
Par défaut, le principal de service ne dispose d’aucune autorisation explicite permettant d’accéder à Microsoft Graph. Cependant, si vous demandez un jeton d’accès pour Microsoft Graph, vous obtenez un jeton avec l’étendue d’autorisation user_impersonation, qui peut servir à lire des informations sur les utilisateurs (par exemple, User.Read.All).
Les développeurs peuvent demander d’autres étendues d’autorisation, qui sont octroyées par les administrateurs client. Pour en savoir plus, consultez l’article Se connecter aux API sécurisées avec Azure AD dans les solutions SharePoint Framework.
Problèmes connus
Rôles Azure AD avec authentification déléguée
MSGraphClient utilise actuellement le flux d’authentification implicite lors de demandes d’autorisation déléguée à partir de Microsoft Graph. Comme mentionné dans les jetons d’accès de la plateforme d’identités pour les développeurs Microsoft, il est possible que la demande wids ne soit pas présente lors de l’utilisation du flux d’authentification implicite en raison de problèmes de longueur. La demande wids contient la liste des rôles Azure AD à l’échelle du client qui ont été attribués à l’utilisateur délégué.
Par conséquent, les requêtes vers les points de terminaison Microsoft Graph qui reposent sur les rôles Azure AD vers les autorisations déléguées peuvent également échouer, car la demande wids n’est pas présente. Au moment de la rédaction de cet article, sont inclus les points de terminaison suivants :