Øvelse – Godkjenn tilgang til Microsoft Graph API med MSAL

Fullført

I denne øvelsen konfigurerer du programmet med tillatelser og bruker MSAL til å få tilgang til brukerprofilinformasjon fra Microsoft Graph (MS Graph)-API-en.

Legg til Microsoft Graph-tillatelser i appregistrering

Nettjenester sikret av Microsoft Entra ID definerer et sett med tillatelser som gir tilgang til API-funksjonaliteten og dataene som eksponeres av denne tjenesten. Før et program kan få tilgang til data eller handle på vegne av en bruker, må det be om at disse tillatelsene godkjennes av brukerne. Du kan tilordne disse API-tillatelsene til appregistreringen fra Azure-portalen. Her er fremgangsmåten for å tilordne API-tillatelser for Microsoft Graph til programmet.

  1. Velg API-tillatelser for å legge til tilgang til API-ene som programmet trenger, på App-registreringer skjermen.

    Skjermbilde som viser menyen i API-tillatelsesruten i en app som er registrert med Microsoft Entra ID på Azure-portalen.

    • Velg Legg til en tillatelse.

    • Kontroller at fanen Microsoft API-er er valgt.

    • Velg Microsoft Graphi delen Ofte brukte Microsoft API-er , og velg deretter delegerte tillatelser.

    • Bla nedover i inndelingen delegerte tillatelser, og velg User.Read i listen. Denne bestemte tillatelsen er for å få tilgang til informasjonen til den påloggede brukeren fra det https://graph.microsoft.com/v1.0/me endepunktet.

    • Velg Legg til tillatelser.

      Skjermbilde som viser API-tillatelsesruten i en app som er registrert med Microsoft Entra ID på Azure-portalen.

Kjør programmet

Du kan prøve Graph API-kallet på programmet du har kjørt fra forrige øvelse.

  1. Åpne nettleseren, og gå til http://localhost:8080/msal4j-servlet-graph/. Hvis du ikke allerede er logget på, omdirigeres du til å logge på med Microsoft Entra ID. Ved vellykket pålogging skal du se en side som vist på bildet nedenfor.

    Skjermbilde som viser knappen for å kalle grafen som vises på siden etter at du har logget på eksempelprogrammet.

  2. Velg Call Graph for å foreta et kall til Microsoft Graphs /me endepunkt, og se brukerdetaljene som vises.

Oversikt over kode for Microsoft Graph-tilgang

Du finner koden for å få tilgang til Microsoft Graph API i servletklassen CallGraphServlet.java under eksempelprosjektets msal4j/callgraphwebapp/-katalog. Det definerer det /call_graph endepunktet i programmet, som foretar autoriserte kall til Microsoft Graph API-ens https://graph.microsoft.com/v1.0/me endepunkt for å hente profilinformasjonen til den påloggede brukeren. Her er flere detaljer om graph-tilgangskoden.

  1. I ./src/main/resources/authentication.properties-filen er verdien for aad.scopes satt til User.Read- omfang.

    Omfang forteller Microsoft Entra ID tilgangsnivået som programmet ber om, og tilordner tillatelsene i appregistreringen. Basert på de forespurte omfangene presenterer Microsoft Entra ID en samtykkedialog til brukeren ved pålogging. Hvis brukeren samtykker til ett eller flere omfang, blir de kodet til den resulterende access_token returnert i godkjenningssvaret.

  2. Når brukeren navigerer til /call_graph, oppretter programmet en forekomst av IGraphServiceClient (Microsoft Graph SDK Java), som sendes langs den påloggede brukerens tilgangstoken. Graph-klienten plasserer tilgangstokenet i autorisasjonshodene for forespørslene. Appen ber deretter Graph Client om å ringe Microsoft Graphs /me endepunkt for å gi detaljer for den påloggede brukeren.

    Følgende kode er alt som kreves for at en programutvikler skal kunne skrive for å få tilgang til /me endepunktet, forutsatt at de allerede har et gyldig tilgangstoken for Graph Service med User.Read omfang.

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