Övning – Auktorisera åtkomst till Microsoft Graph API med MSAL

Slutförd

I den här övningen konfigurerar du programmet med behörigheter och använder MSAL för att komma åt användarprofilinformation från Microsoft Graph-API:et (MS Graph).

Lägga till Microsoft Graph-behörigheter i appregistrering

Webbtjänster som skyddas av Microsoft Entra-ID definierar en uppsättning behörigheter som ger åtkomst till API-funktioner och data som exponeras av den tjänsten. Innan ett program kan komma åt data eller agera för en användares räkning måste det begära att dessa behörigheter godkänns av användarna. Du kan tilldela dessa API-behörigheter till din appregistrering från Azure-portalen. Här följer stegen för att tilldela Microsoft Graph API-behörigheter till ditt program.

  1. På appens registreringsskärm väljer du bladet API-behörigheter till vänster för att lägga till åtkomst till de API:er som programmet behöver.

    • Välj knappen + Lägg till en behörighet.

    • Kontrollera att fliken Microsoft-API:er är markerad.

    • I avsnittet Vanliga Microsoft-API:er väljer du Microsoft Graph och sedan Delegerade behörigheter.

    • I avsnittet Delegerade behörigheter rullar du nedåt och väljer User.Read i listan. Den här behörigheten gäller för åtkomst till informationen för den inloggade användaren från https://graph.microsoft.com/v1.0/me slutpunkten.

    • Klicka på knappen Lägg till behörigheter längst ned.

    Screenshot showing the API permissions blade of an app registered with Microsoft Entra ID on Azure portal.

Kör appen

Du kan prova Graph API-anropet i det program som du har kört från föregående övning.

  1. Öppna din webbläsare och gå till http://localhost:8080/msal4j-servlet-graph/. Om du inte redan är inloggad omdirigeras du för att logga in med Microsoft Entra-ID. Vid lyckad inloggning bör du se en sida enligt bilden nedan.

    Screenshot showing the button to call graph displayed on the page after successfully signing in to sample application.

  2. Välj knappen Samtalsdiagram för att göra ett anrop till Microsoft Graphs /me slutpunkt och se användarinformationen som visas.

Översikt över kod för Microsoft Graph-åtkomst

Du hittar koden för att komma åt Microsoft Graph API i servlet-klassen CallGraphServlet.java under exempelprojektets msal4j/callgraphwebapp/ katalog. Den definierar /call_graph slutpunkten i programmet, som gör auktoriserade anrop till Microsoft Graph API:s https://graph.microsoft.com/v1.0/me slutpunkt för att hämta profilinformationen för den inloggade användaren. Här följer mer information om Graph-åtkomstkoden.

  1. ./src/main/resources/authentication.properties I filen anges värdet aad.scopes för till user.Read-omfånget.

    Omfång anger för Microsoft Entra-ID vilken åtkomstnivå programmet begär och mappar till behörigheterna i appregistreringen. Baserat på de begärda omfången presenterar Microsoft Entra-ID en medgivandedialog för användaren vid inloggning. Om användaren godkänner ett eller flera omfång kodas de till resultatet som access_token returneras i autentiseringssvaret.

  2. När användaren navigerar till /call_graphskapar programmet en instans av IGraphServiceClient (Microsoft Graph SDK Java) som skickar vidare den inloggade användarens åtkomsttoken. Graph-klienten härifrån placerar åtkomsttoken i auktoriseringshuvudena för sina begäranden. Appen ber sedan Graph-klienten att anropa Microsoft Graphs /me slutpunkt för att ge information om den inloggade användaren.

    Följande kod är allt som krävs för att en programutvecklare ska kunna skriva för åtkomst till /me slutpunkten, förutsatt att de redan har en giltig åtkomsttoken för Graph Service med omfånget User.Read .

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