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 inloggningssida när den används anonymt. Följande skärmbild visar inloggningssidan för Microsoft Entra:

Skärmbild av Microsoft Entra inloggningssida för Spring-webbappen.

Förutsättningar

För att slutföra stegen i den här artikeln behöver du följande krav:

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

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

  2. Ange att du vill generera ett Maven-projekt med Java. Ange grupp- och artefaktnamnen för ditt program.

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

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

  5. När du uppmanas att göra det laddar du ned projektet till en sökväg på den lokala datorn.

Lägg till Microsoft Entra-beroendet

  1. Extrahera de nedladdade projektfilerna till en katalog på den lokala datorn.

  2. Öppna filenpom.xml i en textredigerare.

  3. Lägg till Spring Cloud Azure Bill of Materials (BOM) i <dependencyManagement> avsnittet .

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>7.4.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
  4. Lägg till Spring Cloud Azure Starter-Microsoft Entra beroende i <dependencies> avsnittet.

    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
    </dependency>
    
  5. Spara och stäng filen pom.xml.

Skapa Microsoft Entra-instansen

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änsteroch sedan Identityoch sedan Microsoft Entra ID.

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

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

  2. Ange din applikation och välj sedan Registrera.

  3. När sidan för appregistreringen visas kopierar du ditt program-ID (klient)-ID och klient-ID. Använd dessa värden för att konfigurera filen application.properties senare i den här självstudien.

  4. Välj Certifikat & hemligheter i navigeringsfönstret. Välj sedan Ny klienthemlighet.

    Skärmbild av applikationen Certifikatskärm & hemligheter med

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

  6. Kopiera och spara värdet för klienthemligheten för att konfigurera din application.properties fil senare i den här självstudien. (Du kan inte 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 Authenticationoch väljer Lägg till en plattform. Välj sedan webbapplikationer.

  8. För en ny omdirigerings-URIanger du http://localhost:8080/login/oauth2/code/och väljer 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ägga till ett användarkonto och tilldela en Microsoft Entra approll

  1. På sidan Översikt i din Microsoft Entra ID-klient väljer du Användare och sedan Ny användare.

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

    Skärmbild av dialogrutan Ny användare för att skapa ett användarkonto.

    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

  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? och välj sedan Använd.

    Skärmbild av skärmen App roller med fönstret Skapa app-roll.

  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ändareväljer du Ingen vald. Välj den användare som du skapade tidigare, välj Välj och välj sedan Tilldela. Om du skapade mer än en app-roll tidigare, välj en roll.

  8. Gå tillbaka till panelen Användare , välj testanvändaren och välj Återställ lösenord. Kopiera lösenordet. Du använder lösenordet när du loggar in på programmet senare i den här självstudien.

Konfigurera och kompilera din app

  1. Extrahera filerna från projektarkivet som du skapade och laddade ned 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 Microsoft Entra ID tenant 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 Aktiverar de funktioner som tillhandahålls av spring-cloud-azure-starter-active-directory.
    spring.cloud.azure.active-directory.profile.tenant-id Innehåller din Microsoft Entra ID-klients Tenant-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.
  4. Spara och stäng filen application.properties.

  5. Skapa en mapp med namnet kontrollant i Java-källmappen för ditt program. Exempel: src/main/java/com/wingtiptoys/security/controller.

  6. Skapa en ny Java-fil med namnet HelloController.java i mappen controller 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";
         }
    }
    

Skapa och testa din app

  1. Öppna en kommandotolk och ändra katalogen till mappen där appens pom.xml fil finns.

  2. Skapa ditt Spring Boot-program med Maven och kör det. Till exempel:

    mvn clean package
    mvn spring-boot:run
    
  3. När Maven har skapat och startat ditt program öppnar http://localhost:8080/Admin du i en webbläsare. Du uppmanas att ange ett användarnamn och lösenord.

    Skärmbild av dialogrutan Logga in.

    Not

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

    Skärmbild av dialogrutan Uppdatera ditt lösenord.

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

    Skärmbild av programadministratörsmeddelande.

Sammanfattning

I den här självstudien skapade du en ny Java webbapp med hjälp av Microsoft Entra starter, 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 fortsätter du till dokumentationscentret för Spring on Azure.