Øvelse – godkend adgang til Microsoft Graph API med MSAL

Fuldført

I denne øvelse skal du konfigurere programmet med tilladelser og bruge MSAL til at få adgang til brugerprofiloplysninger fra Microsoft Graph -API'en (MS Graph).

Føj Microsoft Graph-tilladelser til appregistrering

Webtjenester, der er sikret med Microsoft Entra-id, definerer et sæt tilladelser, der giver adgang til API-funktionaliteten og de data, der vises af den pågældende tjeneste. Før et program kan få adgang til data eller handle på en brugers vegne, skal det anmode om, at disse tilladelser godkendes af brugerne. Du kan tildele disse API-tilladelser til din appregistrering fra Azure Portal. Her er trinnene til at tildele Microsoft Graph API-tilladelser til dit program.

  1. På skærmen Appregistreringer skal du vælge API-tilladelser for at føje adgang til de API'er, som dit program har brug for.

    Skærmbillede, der viser menuen i ruden MED API-tilladelser i en app, der er registreret med Microsoft Entra ID på Azure Portal.

    • Vælg Tilføj en tilladelse.

    • Sørg for, at fanen Microsoft API'er er valgt.

    • I afsnittet Ofte anvendte Microsoft API'er skal du vælge Microsoft Graphog derefter vælge Delegerede tilladelser.

    • I afsnittet delegerede tilladelser skal du rulle ned og vælge User.Read på listen. Denne bestemte tilladelse er til at få adgang til oplysningerne om den bruger, der er logget på, fra det https://graph.microsoft.com/v1.0/me slutpunkt.

    • Vælg Tilføj tilladelser.

      Skærmbillede, der viser ruden MED API-tilladelser for en app, der er registreret med Microsoft Entra ID på Azure Portal.

Kør programmet

Du kan prøve Graph API-kaldet på det program, du har kørt fra den forrige øvelse.

  1. Åbn browseren, og naviger til http://localhost:8080/msal4j-servlet-graph/. Hvis du ikke allerede er logget på, omdirigeres du til at logge på med Microsoft Entra-id. Når du logger på, kan du se en side som vist på følgende billede.

    Skærmbillede, der viser knappen til at kalde grafen, der vises på siden, efter at du har logget på eksempelprogrammet.

  2. Vælg Call Graph for at foretage et kald til Microsoft Graphs /me slutpunkt, og se de viste brugeroplysninger.

Oversigt over kode til Microsoft Graph-adgang

Du kan finde koden til at få adgang til Microsoft Graph API i servlet-klassen CallGraphServlet.java under eksempelprojektets msal4j/callgraphwebapp/ mappe. Det definerer det /call_graph slutpunkt i programmet, som foretager godkendte kald til Microsoft Graph API's https://graph.microsoft.com/v1.0/me slutpunkt for at hente profiloplysningerne for den bruger, der er logget på. Her er flere oplysninger om Graph-adgangskoden.

  1. I filen ./src/main/resources/authentication.properties fil er værdien af aad.scopes angivet til området User.Read.

    Områder fortæller Microsoft Entra ID det adgangsniveau, som programmet anmoder om, og knyt til tilladelserne i appregistreringen. Baseret på de anmodede områder præsenterer Microsoft Entra ID en samtykkedialog til brugeren, når brugeren logger på. Hvis brugeren accepterer et eller flere områder, kodes vedkommende i det resulterende access_token, der returneres i godkendelsessvaret.

  2. Når brugeren navigerer til /call_graph, opretter programmet en forekomst af IGraphServiceClient (Microsoft Graph SDK Java), der overfører den bruger, der er logget på, adgangstoken. Graph-klienten herfra placerer adgangstokenet i godkendelsesheaderne for anmodningerne. Appen beder derefter Graph Client om at kalde Microsoft Graphs /me slutpunkt for at give oplysninger om den bruger, der er logget på i øjeblikket.

    Følgende kode er alt, hvad der kræves, for at en programudvikler kan skrive for at få adgang til det /me slutpunkt, forudsat at de allerede har et gyldigt adgangstoken til Graph Service med det User.Read omfang.

    //CallGraphServlet.java
    User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();