Lägga till inloggning med Microsoft Entra-konto i en Spring-webbapp
Den här artikeln visar hur du utvecklar en Spring-webbapp som stöder inloggning med Microsoft Entra-konto. När du har slutfört alla steg i den här artikeln omdirigeras webbappen till Microsoft Entra-inloggningssidan när den har använts anonymt. Följande skärmbild visar inloggningssidan för Microsoft Entra:
Förutsättningar
Följande krav krävs för att slutföra stegen i den här artikeln:
- Ett Java Development Kit (JDK) som stöds. Mer information om de JDK:er som är tillgängliga för användning när du utvecklar i Azure finns i Java-stöd i Azure och Azure Stack.
- Apache Maven, version 3.0 eller senare.
- En Azure-prenumeration Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
Viktigt!
Spring Boot version 2.5 eller senare krävs för att slutföra stegen i den här artikeln.
Skapa en app med Spring Initializr
Bläddra till https://start.spring.io/.
Ange att du vill skapa ett Maven-projekt med Java, ange namn på Grupp och Artefakt för programmet.
Lägg till beroenden för Spring Web, Microsoft Entra ID och OAuth2-klienten.
Längst ned på sidan väljer du knappen GENERERA .
När du uppmanas laddar du ned projektet till en sökväg på den lokala datorn.
Skapa Microsoft Entra-instans
Skapa en instans i Active Directory
Om du är administratör för en befintlig instans kan du hoppa över den här processen.
Logga in på https://portal.azure.com.
Välj Alla tjänster, sedan Identitet och sedan Microsoft Entra-ID.
Ange Organisationsnamn och Ursprungligt domännamn. Kopiera den fullständiga URL:en för din katalog. Du använder URL:en för att lägga till användarkonton senare i den här självstudien. (Till exempel
azuresampledirectory.onmicrosoft.com
.)Kopiera den fullständiga URL:en för din katalog. Du använder URL:en för att lägga till användarkonton senare i den här självstudien. (Till exempel.
azuresampledirectory.onmicrosoft.com
.).När du är klar väljer du Skapa. Det tar några minuter att skapa den nya resursen.
När du är klar väljer du länken som visas för att komma åt den nya katalogen.
Kopiera klientorganisations-ID :t. Du använder ID-värdet för att konfigurera filen application.properties senare i den här självstudien.
Lägg till en programregistrering för din Spring Boot-app
På portalmenyn väljer du Appregistreringar och sedan Registrera ett program.
Ange ditt program och välj sedan Registrera.
När sidan för appregistreringen visas kopierar du ditt program-ID (klient)-ID och katalog-ID :t (klientorganisation). Du använder dessa värden för att konfigurera filen application.properties senare i den här självstudien.
Välj Certifikat och hemligheter i det vänstra navigeringsfönstret. Välj sedan Ny klienthemlighet.
Lägg till en beskrivning och välj önskad tidsperiod i listan Upphör. Markera Lägga till. Värdet för nyckeln fylls i automatiskt.
Kopiera och spara värdet för klienthemligheten. Du behöver det när du ska konfigurera application.properties-filen senare i den här självstudien. (Du kommer inte att kunna hämta det här värdet senare.)
På huvudsidan för appregistreringen väljer du Autentisering och sedan Lägg till en plattform. Välj sedan Webbprogram.
Ange http://localhost:8080/login/oauth2/code/ som en ny omdirigerings-URI och välj sedan Konfigurera.
Om du har ändrat pom.xml-filen så att den använder en tidigare Microsoft Entra-startversion än 3.0.0: under Implicit beviljande och hybridflöden väljer du ID-token (används för implicita och hybridflöden) och väljer sedan Spara.
Lägg till ett användarkonto i din katalog och lägg till det kontot i en appRole
På sidan Översikt i Active Directory väljer du Användare och sedan Ny användare.
När panelen Användare visas anger du Användarnamn och Namn. Välj sedan Skapa.
Kommentar
Du måste ange din katalog-URL från tidigare i den här självstudien när du anger användarnamnet. Till exempel:
test-user@azuresampledirectory.onmicrosoft.com
På huvudsidan för din appregistrering väljer du Approller och sedan Skapa approll. Ange värden för formulärfälten, välj Vill du aktivera den här approllen?, välj sedan Använd.
På sidan Översikt i din Microsoft Entra-katalog väljer du Företagsprogram.
Välj Alla program och välj sedan det program som du lade till approllen i i ett tidigare steg.
Välj Användare och grupper och välj sedan Lägg till användare/grupp.
Under Användare väljer du Ingen markerad. Välj den användare som du skapade tidigare, välj Välj och välj sedan Tilldela. Om du skapade mer än en approll tidigare väljer du en roll.
Gå tillbaka till panelen Användare , välj testanvändaren och välj Återställ lösenord och kopiera lösenordet. Du använder lösenordet när du loggar in på ditt program senare i den här självstudien.
Konfigurera och kompilera din app
Extrahera filerna från projektarkivet som du skapade och hämtade tidigare i den här självstudien till en katalog.
Gå till mappen src/main/resources i projektet och öppna sedan filen application.properties i en textredigerare.
Ange inställningarna för din appregistrering med hjälp av de värden som du skapade tidigare. Till exempel:
# Enable related features. spring.cloud.azure.active-directory.enabled=true # Specifies your Active Directory ID: spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID> # Specifies your App Registration's Application ID: spring.cloud.azure.active-directory.credential.client-id=<client-ID> # Specifies your App Registration's secret key: spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
Där:
Parameter Description spring.cloud.azure.active-directory.enabled
Aktivera funktionerna som tillhandahålls av spring-cloud-azure-starter-active-directory spring.cloud.azure.active-directory.profile.tenant-id
Innehåller Active Directorys Katalog-ID från tidigare. spring.cloud.azure.active-directory.credential.client-id
Innehåller Program-ID från den appregistrering du slutförde tidigare. spring.cloud.azure.active-directory.credential.client-secret
Innehåller värdet från den appregistrering du slutförde tidigare. Spara och stäng filen application.properties.
Skapa en mapp med namnet Kontrollant i källmappen för Java för ditt program. Till exempel: src/main/java/com/wingtiptoys/security/controller.
Skapa en ny Java-fil med namnet HelloController.java i mappen Kontrollant och öppna den i en textredigerare.
Ange följande kod och spara och stäng sedan filen:
package com.wingtiptoys.security; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.security.access.prepost.PreAuthorize; @RestController public class HelloController { @GetMapping("Admin") @ResponseBody @PreAuthorize("hasAuthority('APPROLE_Admin')") public String Admin() { return "Admin message"; } }
Kompilera och testa din app
Öppna en kommandotolk och byt katalog till mappen där appens pom.xml-fil finns.
Skapa Spring Boot-appen med Maven och kör den: Till exempel:
mvn clean package mvn spring-boot:run
När programmet har skapats och startats av Maven öppnar
http://localhost:8080/Admin
du i en webbläsare. Du bör uppmanas att ange ett användarnamn och lösenord.Kommentar
Du kan uppmanas att ändra lösenordet om det är den första inloggningen för ett nytt användarkonto.
När du har loggat in bör du se exempeltexten "Administratörsmeddelande" från kontrollanten.
Sammanfattning
I den här självstudien skapade du ett nytt Java-webbprogram med Microsoft Entra-startprogrammet, konfigurerade en ny Microsoft Entra-klientorganisation, registrerade ett nytt program i klientorganisationen och konfigurerade sedan programmet att använda Spring-anteckningar och -klasser för att skydda webbappen.
Se även
- Information om nya användargränssnittsalternativ finns i Utbildningsguide för registrering av nya azure-portalappar
Nästa steg
Om du vill veta mer om Spring och Azure kan du fortsätta till dokumentationscentret för Spring i Azure.