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-support på Azure och Azure Stack.
- Apache Maven, version 3.0 eller senare.
- En prenumeration av Azure. Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto.
Viktig
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 generera ett Maven- projekt med Java, ange Group och Artifact namn för ditt program.
Lägg till beroenden för Spring Web, Microsoft Entra IDoch OAuth2 Client.
Längst ned på sidan väljer du knappen GENERERA.
När du uppmanas att göra det laddar du ned projektet till en sökväg på den lokala datorn.
Skapa Microsoft Entra-instans
Skapa Active Directory-instansen
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änsteroch sedan Identityoch sedan Microsoft Entra ID.
Ange ditt organisationsnamn och ditt initiala 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 guiden. (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 handledningen. (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. Du kommer att använda ID-värdet för att konfigurera din application.properties fil senare i handledningen.
Lägga till en programregistrering för din Spring Boot-app
På portalmenyn väljer du Appregistreringaroch väljer sedan Registrera ett program.
Ange din applikation och välj sedan Registrera.
När sidan för din appregistrering visas kopierar du ditt applikations-ID (klient) och katalog-ID (tenant). Du använder dessa värden för att konfigurera filen application.properties senare i denna handledning.
Välj Certifikat & hemligheter i navigeringsfönstret. Välj sedan Ny klienthemlighet.
Lägg till en Beskrivning och välj varaktighet i listan Upphör. Välj Lägg till. Värdet för nyckeln fylls i automatiskt.
Kopiera och spara värdet för klienthemligheten för att konfigurera din application.properties fil 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 Authenticationoch väljer Lägg till en plattform. Välj sedan webbapplikationer.
För en ny omdirigerings-URIanger du
http://localhost:8080/login/oauth2/code/
och väljer sedan Konfigurera.Om du har ändrat pom.xml-filen så att den använder en Microsoft Entra-startversion tidigare än 3.0.0: under Implicit beviljande och hybridflöden, väljer du ID-token (används för implicit 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ändareoch väljer sedan Ny användare.
När panelen User visas anger du Användarnamn och Namn. Välj sedan Skapa.
Not
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 appregistreringen väljer du Approlleroch väljer sedan Skapa approll. Ange värden för formulärfälten, välj Vill du aktivera den här approllen?och välj sedan Använd.
På sidan Översikt i din Microsoft Entra-katalog väljer du Företagsprogram.
Välj Alla applikationeroch välj sedan den applikation som du lade till approllen i ett tidigare steg.
Välj Användare och grupperoch välj sedan Lägg till användare/grupp.
Under Användareväljer du Ingen vald. Välj den användare som du skapade tidigare, välj Väljoch välj sedan Tilldela. Om du skapade mer än en app-roll tidigare, välj en roll.
Gå tillbaka till panelen Användare, välj testanvändaren och välj Återställ lösenordoch kopiera lösenordet. Du använder lösenordet när du loggar in på applikationen senare i den här tutorialen.
Konfigurera och kompilera din app
Extrahera filerna från projektarkivet som du skapade och laddade ned 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>
Var:
Parameter Beskrivning 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 din Active Directorys -katalog-ID från tidigare. spring.cloud.azure.active-directory.credential.client-id
Innehåller program-ID från din appregistrering som du slutförde tidigare. spring.cloud.azure.active-directory.credential.client-secret
Innehåller värdet - från din appregistreringsnyckel som du slutförde tidigare. Spara och stäng filen application.properties.
Skapa en mapp med namnet kontrollant i Java-källmappen för ditt program. Exempel: src/main/java/com/wingtiptoys/security/controller.
Skapa en ny Java-fil med namnet HelloController.java i mappen controller 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"; } }
Skapa och testa din app
Öppna en kommandotolk och ändra katalogen till mappen där appens pom.xml fil finns.
Skapa ditt Spring Boot-program med Maven och kör det. Till exempel:
mvn clean package mvn spring-boot:run
När ditt program har skapats och startats av Maven öppnar du
http://localhost:8080/Admin
i en webbläsare. Du bör uppmanas att ange ett användarnamn och lösenord.Not
Du kan uppmanas att ändra ditt lösenord om det här ä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 utbildningsguiden ny appregistreringsguide för Azure-portalen
Nästa steg
Om du vill veta mer om Spring och Azure fortsätter du till dokumentationscentret för Spring on Azure.