Ö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 Portal. Här följer stegen för att tilldela Microsoft Graph API-behörigheter till ditt program.

  1. På skärmen Appregistreringar väljer du API-behörigheter för att lägga till åtkomst till de API:er som ditt program behöver.

    Skärmbild som visar menyn i fönstret API-behörigheter i en app som registrerats med Microsoft Entra-ID på Azure Portal.

    • Välj Lägg till 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.

    • Välj Lägg till behörigheter.

      Skärmbild som visar fönstret API-behörigheter för en app som registrerats med Microsoft Entra-ID på 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 som visas i följande bild.

    Skärmbild som visar knappen för att anropa grafen som visas på sidan när du har loggat in i exempelprogrammet.

  2. Välj Samtalsdiagram för att ringa 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 katalog msal4j/callgraphwebapp/ . 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. I filen ./src/main/resources/authentication.properties 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();