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:

Skärmbild av dialogrutan Logga in.

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

  1. Bläddra till https://start.spring.io/.

  2. Ange att du vill skapa ett Maven-projekt med Java, ange namn på Grupp och Artefakt för programmet.

  3. Lägg till beroenden för Spring Web, Microsoft Entra ID och OAuth2-klienten.

  4. Längst ned på sidan väljer du knappen GENERERA .

  5. 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.

  1. Logga in på https://portal.azure.com.

  2. Välj Alla tjänster, sedan Identitet och sedan Microsoft Entra-ID.

  3. 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.

  4. När du är klar väljer du länken som visas för att komma åt den nya katalogen.

  5. 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

  1. På portalmenyn väljer du Appregistreringar och sedan Registrera ett program.

  2. Ange ditt program och välj sedan Registrera.

  3. 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.

  4. Välj Certifikat och hemligheter i det vänstra navigeringsfönstret. Välj sedan Ny klienthemlighet.

    Skärmbild av skärmen Certifikat och hemligheter med

  5. 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.

  6. 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.)

    Skärmbild av programmet med ny klienthemlighet markerad.

  7. På huvudsidan för appregistreringen väljer du Autentisering och sedan Lägg till en plattform. Välj sedan Webbprogram.

  8. Ange http://localhost:8080/login/oauth2/code/ som en ny omdirigerings-URI och välj sedan Konfigurera.

  9. 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

  1. På sidan Översikt i Active Directory väljer du Användare och sedan Ny användare.

  2. När panelen Användare visas anger du Användarnamn och Namn. Välj sedan Skapa.

    Skärmbild av dialogrutan Ny användare.

    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

  3. 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.

    Skärmbild av skärmen Approller med fönstret Skapa approll.

  4. På sidan Översikt i din Microsoft Entra-katalog väljer du Företagsprogram.

  5. Välj Alla program och välj sedan det program som du lade till approllen i i ett tidigare steg.

  6. Välj Användare och grupper och välj sedan Lägg till användare/grupp.

  7. 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.

  8. 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

  1. Extrahera filerna från projektarkivet som du skapade och hämtade tidigare i den här självstudien till en katalog.

  2. Gå till mappen src/main/resources i projektet och öppna sedan filen application.properties i en textredigerare.

  3. 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.
  4. Spara och stäng filen application.properties.

  5. 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.

  6. Skapa en ny Java-fil med namnet HelloController.java i mappen Kontrollant och öppna den i en textredigerare.

  7. 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

  1. Öppna en kommandotolk och byt katalog till mappen där appens pom.xml-fil finns.

  2. Skapa Spring Boot-appen med Maven och kör den: Till exempel:

    mvn clean package
    mvn spring-boot:run
    
  3. 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.

    Skärmbild av dialogrutan Logga in.

    Kommentar

    Du kan uppmanas att ändra lösenordet om det är den första inloggningen för ett nytt användarkonto.

    Skärmbild av dialogrutan Uppdatera lösenordet.

  4. När du har loggat in bör du se exempeltexten "Administratörsmeddelande" från kontrollanten.

    Skärmbild av programadministratörsmeddelandet.

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

Nästa steg

Om du vill veta mer om Spring och Azure kan du fortsätta till dokumentationscentret för Spring i Azure.