Øvelse – Godkjenn tilgang til Microsoft Graph API med MSAL
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.
Velg API-tillatelser for å legge til tilgang til API-ene som programmet trenger, på App-registreringer skjermen.
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/meendepunktet.Velg Legg til tillatelser.
Kjør programmet
Du kan prøve Graph API-kallet på programmet du har kjørt fra forrige øvelse.
Å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.
Velg Call Graph for å foreta et kall til Microsoft Graphs
/meendepunkt, 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.
I ./src/main/resources/authentication.properties-filen er verdien for
aad.scopessatt 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_tokenreturnert i godkjenningssvaret.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/meendepunkt 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
/meendepunktet, forutsatt at de allerede har et gyldig tilgangstoken for Graph Service medUser.Readomfang.//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();