Exercice - Autoriser l’accès à l’API Microsoft Graph avec MSAL
Dans cet exercice, vous configurez l’application avec des autorisations et utiliser MSAL pour accéder aux informations sur le profil utilisateur à partir de l’API Microsoft Graph (MS Graph).
Ajouter des autorisations Microsoft Graph à l’inscription de l’application
Les services web sécurisés par Microsoft Entra ID définissent un ensemble d’autorisations qui permettent d’accéder aux fonctionnalités API et aux données exposées par ce service. Pour qu’une application puisse accéder aux données ou agir au nom d’un utilisateur, elle doit demander l’approbation de ces autorisations par les utilisateurs. Vous pouvez attribuer ces autorisations d’API au moment de l’inscription de votre application dans le portail Azure. Voici les étapes à effectuer pour affecter des autorisations de l’API Microsoft Graph à votre application.
Sur l’écran Inscriptions d’applications, sélectionnez Autorisations d’API pour ajouter l’accès aux API dont votre application a besoin.
Sélectionnez Ajouter une autorisation.
Vérifiez ensuite que l’onglet API Microsoft est sélectionné.
Dans la section API Microsoft couramment utilisées, sélectionnez Microsoft Graph, puis Autorisations déléguées.
Faites défiler la section Autorisations déléguées vers le bas, puis sélectionnez User.Read dans la liste. Cette autorisation particulière consiste à accéder aux informations de l’utilisateur connecté à partir du point de terminaison
https://graph.microsoft.com/v1.0/me
.Sélectionnez Ajouter des autorisations.
Exécution de l'application
Vous pouvez essayer l’appel d’API Graph sur l’application que vous avez exécutée dans le cadre de l’exercice précédent.
Ouvrez votre navigateur et accédez à
http://localhost:8080/msal4j-servlet-graph/
. Si vous n’êtes pas déjà connecté, vous êtes redirigé pour vous connecter avec Microsoft Entra ID. En cas de connexion réussie, la page suivante doit s’afficher.Sélectionnez Appeler Graph pour appeler le point de terminaison
/me
de Microsoft Graph et voir les détails de l’utilisateur affichés.
Vue d’ensemble du code pour l’accès à Microsoft Graph
Vous pouvez trouver le code permettant d’accéder à l’API Microsoft Graph dans la classe servlet CallGraphServlet.java
sous le répertoire msal4j/callgraphwebapp/ de l’exemple de projet. Il définit le point de terminaison /call_graph
dans l’application qui effectue des appels autorisés au point de terminaison https://graph.microsoft.com/v1.0/me
de l’API Microsoft Graph pour récupérer les informations sur le profil de l’utilisateur connecté. Voici plus d’informations sur le code d’accès à Graph.
Dans le fichier ./src/main/resources/authentication.properties, la valeur de
aad.scopes
est définie sur l’étendue User.Read.Les étendues indiquent à Microsoft Entra ID le niveau d’accès demandé par l’application et le mappage aux autorisations dans l’inscription d’application. Selon les étendues demandées, Microsoft Entra ID affiche une boîte de dialogue invitant l’utilisateur à donner son consentement au moment de la connexion. Si l’utilisateur donne son consentement à une ou plusieurs étendues, celles-ci sont encodées dans le
access_token
résultant retourné dans la réponse d’authentification.Quand l’utilisateur navigue vers
/call_graph
, l’application crée une instance d’IGraphServiceClient (kit SDK Microsoft Graph pour Java) et passe le jeton d’accès de l’utilisateur connecté. Le client Graph place désormais le jeton d’accès dans les en-têtes d’autorisation de ses demandes. L’application demande ensuite au client Graph d’appeler le point de terminaison/me
de Microsoft Graph pour obtenir des détails sur l’utilisateur actuellement connecté.Un développeur d’applications doit simplement écrire le code suivant pour accéder au point de terminaison
/me
, à condition toutefois qu’il dispose déjà d’un jeton d’accès valide pour le service Graph avec l’étendueUser.Read
.//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();