Snabbstart: Logga in användare och anropa Microsoft Graph API från en Java-webbapp

I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur ett Java-webbprogram kan logga in användare och anropa Microsoft Graph API. Användare från alla Microsoft Entra-organisationer kan logga in på programmet.

Se Så här fungerar exemplet för en bild.

Förutsättningar

Om du vill köra det här exemplet behöver du:

Registrera och ladda ned snabbstartsappen

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

Det finns två sätt att starta snabbstartsprogrammet: express (alternativ 1) och manuell (alternativ 2).

Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned kodexemplet

  1. Gå till administrationscentret för Microsoft Entra – Appregistreringar snabbstartsupplevelse som minst molnprogramadministratör.
  2. Ange ett namn för ditt program och välj sedan Registrera.
  3. Följ anvisningarna i portalens snabbstartsupplevelse för att ladda ned den automatiskt konfigurerade programkoden.

Alternativ 2: Registrera och konfigurera programmet och kodexemplet

Steg 1: Registrera din app

Följ dessa steg om du vill registrera ditt program och lägga till appens registreringsinformation manuellt:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
  2. Om du har åtkomst till flera klienter använder du ikonen Inställningar på den översta menyn för att växla till den klientorganisation där du vill registrera programmet från menyn Kataloger + prenumerationer.
  3. Bläddra till Identitetsprogram>> Appregistreringar och välj Ny registrering.
  4. Ange ett namn för ditt program, till exempel java-webapp. Användare av din app kan se det här namnet. Du kan ändra detta senare.
  5. Välj Registrera.
  6. På sidan Översikt noterar du program-ID:t (klient-ID: t) och katalog-ID:t (klientorganisation). Du behöver dessa värden senare.
  7. Under Hantera väljer du Autentisering.
  8. Välj Lägg till en plattformswebb>.
  9. I avsnittet Omdirigerings-URI:er anger du https://localhost:8443/msal4jsample/secure/aad.
  10. Välj Konfigurera.
  11. I webbavsnittet under Omdirigerings-URI:er anger du https://localhost:8443/msal4jsample/graph/me som en andra omdirigerings-URI.
  12. Under Hantera väljer du Certifikat och hemligheter. Under avsnittet Klienthemlighet välj Ny klienthemlighet.
  13. Ange en nyckelbeskrivning (till exempel apphemlighet), lämna standardförfallodatumet och välj Lägg till.
  14. Observera värdet för klienthemligheten. Du behöver det senare.

Steg 2: Ladda ned kodexemplet

Ladda ned kodexemplet

Steg 3: Konfigurera kodexemplet

  1. Extrahera zip-filen till en lokal mapp.

  2. Valfritt. Om du använder en integrerad utvecklingsmiljö öppnar du exemplet i den miljön.

  3. Öppna filen application.properties. Du hittar den i mappen src/main/resources/ . Ersätt värdena i fälten aad.clientId, aad.authorityoch aad.secretKey med program-ID, klient-ID och klienthemlighetsvärden. Så här bör det se ut:

     aad.clientId=Enter_the_Application_Id_here
     aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/
     aad.secretKey=Enter_the_Client_Secret_Here
     aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad
     aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me
     aad.msGraphEndpointHost="https://graph.microsoft.com/"
    

I föregående kod:

  • Enter_the_Application_Id_here är program-ID:t för det program som du registrerade.
  • Enter_the_Client_Secret_Here är den klienthemlighet som du skapade i Certifikat och hemligheter för det program som du registrerade.
  • Enter_the_Tenant_Info_Hereär ID-värdet för katalogen (klientorganisationen) för det program som du registrerade.
  1. Om du vill använda HTTPS med localhost anger du server.ssl.key egenskaperna. Om du vill generera ett självsignerat certifikat använder du verktyget keytool (ingår i JRE).

Här är ett exempel:

keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password

server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
  1. Placera den genererade nyckellagringsfilen i resursmappen.

Steg 4: Kör kodexemplet

Utför något av följande steg för att köra projektet:

  • Kör den direkt från din IDE med hjälp av den inbäddade Spring Boot-servern.
  • Paketera den till en WAR-fil med hjälp av Maven och distribuera den sedan till en J2EE-containerlösning som Apache Tomcat.
Köra projektet från en IDE

Om du vill köra webbprogrammet från en IDE väljer du Kör och går sedan till startsidan för projektet. I det här exemplet är standardwebbsidans URL https://localhost:8443.

  1. På första sidan väljer du knappen Logga in för att omdirigera användare till Microsoft Entra-ID och uppmana dem att ange autentiseringsuppgifter.

  2. När användarna har autentiserats omdirigeras de till https://localhost:8443/msal4jsample/secure/aad. De är nu inloggade och sidan visar information om användarkontot. Exempelgränssnittet har följande knappar:

    • Logga ut: Signerar ut den aktuella användaren från programmet och omdirigerar användaren till startsidan.
    • Visa användarinformation: Hämtar en token för Microsoft Graph och anropar Microsoft Graph med en begäran som innehåller token, som returnerar grundläggande information om den inloggade användaren.
Köra projektet från Tomcat

Om du vill distribuera webbexemplet till Tomcat gör du några ändringar i källkoden.

  1. Öppna ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.

    • Ta bort all källkod och ersätt den med den här koden:

       package com.microsoft.azure.msalwebsample;
      
       import org.springframework.boot.SpringApplication;
       import org.springframework.boot.autoconfigure.SpringBootApplication;
       import org.springframework.boot.builder.SpringApplicationBuilder;
       import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
       @SpringBootApplication
       public class MsalWebSampleApplication extends SpringBootServletInitializer {
      
        public static void main(String[] args) {
         SpringApplication.run(MsalWebSampleApplication.class, args);
        }
      
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MsalWebSampleApplication.class);
        }
       }
      
  2. Tomcats standard-HTTP-port är 8080, men du behöver en HTTPS-anslutning via port 8443. Så här konfigurerar du den här inställningen:

    • Gå till tomcat/conf/server.xml.

    • Sök efter taggen och ersätt den befintliga anslutningsappen med den här anslutningsappen <connector> :

      <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword"
               clientAuth="false" sslProtocol="TLS"/>
      
  3. Öppna Kommandotolken. Gå till rotmappen för det här exemplet (där pom.xml filen finns) och kör mvn package för att skapa projektet.

    • Det här kommandot genererar en msal-web-sample-0.1.0.war fil i katalogen /targets .
    • Byt namn på filen till msal4jsample.war.
    • Distribuera WAR-filen med hjälp av Tomcat eller någon annan J2EE-containerlösning.
      • Om du vill distribuera msal4jsample.war filen kopierar du den /webapps/ till katalogen i Tomcat-installationen och startar sedan Tomcat-servern.
  4. När filen har distribuerats går du till https://localhost:8443/msal4jsample med hjälp av en webbläsare.

Viktigt!

Det här snabbstartsprogrammet använder en klienthemlighet för att identifiera sig som en konfidentiell klient. Eftersom klienthemligheten läggs till som oformaterad text i dina projektfiler rekommenderar vi av säkerhetsskäl att du använder ett certifikat i stället för en klienthemlighet innan du använder programmet i en produktionsmiljö. Mer information om hur du använder ett certifikat finns i Certifikatautentiseringsuppgifter för programautentisering.

Mer information

Så här fungerar exemplet

Diagram that shows how the sample app generated by this quickstart works.

Hämta MSAL

MSAL för Java (MSAL4J) är Java-biblioteket som används för att logga in användare och begära token som används för att komma åt ett API som skyddas av Microsofts identitetsplattform.

Lägg till MSAL4J i ditt program med hjälp av Maven eller Gradle för att hantera dina beroenden genom att göra följande ändringar i programmets pom.xml-fil (Maven) eller build.gradle-fil (Gradle).

I pom.xml:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

I build.gradle:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

Initiera MSAL

Lägg till en referens till MSAL för Java genom att lägga till följande kod i början av filen där du ska använda MSAL4J:

import com.microsoft.aad.msal4j.*;

Hjälp och support

Om du behöver hjälp, vill rapportera ett problem eller vill lära dig mer om dina supportalternativ kan du läsa Hjälp och support för utvecklare.

Nästa steg

En mer ingående diskussion om hur du skapar webbappar som loggar in användare på Microsofts identitetsplattform finns i scenarioserien för flera delar: