Snabbstart: Lägga till inloggning med Microsoft till en Java-webbapp
I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur en Java-webbapp kan logga in användare och anropa Microsoft Graph API. Användare från valfri Azure Active Directory (Azure AD)-organisation kan logga in på programmet.
En översikt finns i diagrammet över hur exemplet fungerar.
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 manuellt (alternativ 2).
Alternativ 1: Registrera och konfigurera din app automatiskt och ladda sedan ned kodexe exemplet
- Gå till Azure Portal – Appregistreringar snabbstart.
- Ange ett namn för programmet 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 programmet och kodexemplet
Steg 1: Registrera ditt program
Registrera ditt program och lägg till appens registreringsinformation manuellt genom att följa dessa steg:
- Logga in på Azure-portalen.
- Om du har åtkomst till flera klienter använder du filtret Kataloger + prenumerationer på den översta menyn för att växla till den klientorganisation där du vill
registrera programmet. - Sök efter och välj Azure Active Directory.
- Välj Appregistreringar under Hantera.
- 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 Register (Registrera).
- Observera Program-ID (klient) och Katalog-ID (klient) på sidan Översikt. Du behöver dessa värden senare.
- Under Hantera väljer du Autentisering.
- Välj Lägg till en plattformswebb. >
- I avsnittet Omdirigerings-URI:er anger du
https://localhost:8443/msal4jsample/secure/aad. - Välj Konfigurera.
- I avsnittet Webb, under Omdirigerings-URI:er, anger du
https://localhost:8443/msal4jsample/graph/mesom en andra omdirigerings-URI. - Välj Certifikat och hemligheter under Hantera. I avsnittet Klienthemligheter väljer du Ny klienthemlighet.
- Ange en nyckelbeskrivning (till exempel apphemlighet), lämna standardförfallotiden och välj Lägg till.
- Anteckna värdet för klienthemligheten. Du behöver det senare.
Steg 1: Konfigurera din app i Azure-portalen
Så här använder du kodexe exemplet i den här snabbstarten:
- Lägg till svars-URL:er
https://localhost:8443/msal4jsample/secure/aadochhttps://localhost:8443/msal4jsample/graph/me. - Skapa en klienthemlighet.
Programmet konfigureras med de här attributen.
Steg 2: Ladda ned kodexe exemplet
Ladda ned projektet och extrahera .zip till en mapp nära roten på enheten. Till exempel C:\Azure-Samples.
Om du vill använda HTTPS med localhost anger du server.ssl.key egenskaperna. Om du vill generera ett själv signerat 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 keystore-filen i resursmappen.
Anteckning
Enter_the_Supported_Account_Info_Here
Steg 3: Konfigurera kodexe exemplet
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, och med värdenaaad.authorityaad.secretKeyprogram-ID, klient-ID respektive klienthemlighet. 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 & hemligheter för det program som du registrerade.Enter_the_Tenant_Info_Hereär katalog-ID-värdet (klient) för det program som du registrerade.
Om du vill använda HTTPS med localhost anger du
server.ssl.keyegenskaperna. Om du vill generera ett själv signerat 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=testCertPlacera den genererade keystore-filen i resursmappen.
Steg 3: Kör kodexe exemplet
Steg 4: Kör kodexe exemplet
Gör något av följande 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 standard-URL:en för startsidan https://localhost:8443 .
På startsidan väljer du knappen Logga in för att omdirigera användare till Azure Active Directory och uppmanar dem att ange 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 webbexempel 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 http-standardport ä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
<connector>taggen och ersätt den befintliga anslutningsappen med den här anslutningsappen:<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 finns) och kör
mvn packagefö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 tomcat eller någon annan J2EE-containerlösning.
- Om du vill distribuera filen msal4jsample.war kopierar du den till katalogen /webapps/ i Tomcat-installationen och startar sedan Tomcat-servern.
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 projektfilerna 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 det Java-bibliotek som används för att logga in användare och begära token som används för åtkomst till 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 kommer att använda MSAL4J:
import com.microsoft.aad.msal4j.*;
Hjälp och support
Om du behöver hjälp, vill rapportera ett problem eller vill veta mer om dina support alternativ, se Hjälp och support för utvecklare.
Nästa steg
En mer detaljerad beskrivning av hur du skapar webbappar som loggar in användare på Microsofts identitetsplattform finns i scenarioserien med flera delar: