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 Hur exemplet fungerar för en illustration.
Förutsättningar
Om du vill köra det här exemplet behöver du:
- Java Development Kit (JDK) 8 eller senare.
- Maven.
Registrera och ladda ned snabbstartsappen
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
- Gå till administrationscentret för Microsoft Entra – Appregistreringar snabbstartupplevelse med minst rollen som Molnprogramadministratör.
- Ange ett namn för ditt program och välj sedan Registrera.
- Följ anvisningarna i portalens snabbstartsupplevelse för att ladda ned den automatiskt konfigurerade programkoden.
Alternativ 2: Registrera och konfigurera ditt program och kodexempel manuellt
Steg 1: Registrera ditt program
Följ dessa steg om du vill registrera ditt program och lägga till appens registreringsinformation manuellt:
- Logga in på Microsoft Entra-administrationscentret som minst en molnapplikationsadministratör.
- Om du har åtkomst till flera klienter använder du ikonen Inställningar på den översta menyn för att växla till klientorganisationen där du vill registrera programmet från menyn Kataloger + prenumerationer.
- Bläddra till Identitet>Applikationer>App-registreringar och välj Ny registrering.
- 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 det senare.
- Välj Registrera.
- På sidan Översikt noterar du applikations-ID (klient) och katalog-ID (hyresgäst). Du behöver dessa värden senare.
- Under Hanteraväljer du Autentisering.
- Välj Lägg till en plattform>Web.
- I avsnittet Omdirigerings-URI:er anger du
https://localhost:8443/msal4jsample/secure/aad
. - Välj Konfigurera.
- I avsnittet Web under Omdirigerings-URI:eranger du
https://localhost:8443/msal4jsample/graph/me
som en andra omdirigerings-URI. - Under Hanteraväljer du Certifikat & hemligheter. I avsnittet Klienthemligheter väljer du Ny klienthemlighet.
- Ange en nyckelbeskrivning (till exempel apphemlighet), lämna standardförfallodatumet och välj Lägg till.
- Observera värdet för klienthemligheten. Du behöver det senare.
Steg 2: Ladda ned kodexemplet
Steg 3: Konfigurera kodexemplet
Extrahera zip-filen till en lokal mapp.
Valfri. Om du använder en integrerad utvecklingsmiljö öppnar du exemplet i den miljön.
Öppna filen application.properties. Du hittar den i mappen src/main/resources/. Ersätt värdena i fälten
aad.clientId
,aad.authority
ochaad.secretKey
med program-ID, klient-ID respektive 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 klientens hemlighet som du skapade i certifikat & hemligheter för applikationen du registrerade. -
Enter_the_Tenant_Info_Here
är Directory-ID (klientorganisation) värdet för det program som du registrerade.
- Om du vill använda HTTPS med localhost anger du egenskaperna för
server.ssl.key
. 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
- Placera den genererade nyckellagringsfilen i mappen resurser.
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 Mavenoch 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.
På första sidan väljer du knappen Inloggning för att omdirigera användare till Microsoft Entra-ID och be dem om autentiseringsuppgifter.
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: Loggar 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.
Ö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); } }
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
<connector>
och ersätt den befintliga kontakten med den här kontakten.<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"/>
Öppna ett kommandotolksfönster. Gå till rotmappen i det här exemplet (där
pom.xml
filen finns) och körmvn 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 till katalogen/webapps/
i Tomcat-installationen och startar sedan Tomcat-servern.
- Om du vill distribuera
- Det här kommandot genererar en
När filen har distribuerats går du till
https://localhost:8443/msal4jsample
med hjälp av en webbläsare.
Viktig
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
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 stöd
Om du behöver hjälp, vill rapportera ett problem eller vill veta 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: