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:

Screenshot of application 'Sign in' dialog.

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 .

    Screenshot of Spring Initializr with basic options.

  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.

    Screenshot of the Configuration section of the Microsoft Entra ID 'Create a tenant' screen.

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

    Screenshot of 'Create a tenant' success message.

  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.

    Screenshot of Microsoft Entra tenant screen with 'Tenant ID' highlighted.

Lägg till en programregistrering för din Spring Boot-app

  1. Välj Appregistreringar på portalmenyn och välj 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.

    Screenshot of application with 'Application (client) ID' and 'Directory (tenant) ID' highlighted.

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

    Screenshot of application 'Certificates & secrets' screen with 'New client secret' highlighted.

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

    Screenshot of application with new client secret highlighted.

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

    Screenshot of application Authentication screen with 'Configure platforms' section showing and Web platform highlighted.

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

    Screenshot of application Authentication screen with 'Configure Web' section showing and 'Redirect URIs' highlighted.

  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.

    Screenshot of application Authentication screen with 'ID tokens' selected.

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.

    Screenshot of 'New user' dialog.

    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.

    Screenshot of application 'App roles' screen with 'Create app role' pane showing.

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

    Screenshot of Microsoft Entra ID 'Enterprise applications' screen.

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

    Screenshot of 'Enterprise applications' screen with 'All applications' list showing.

  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.

    Screenshot of application 'Add Assignment' screen with Users pane showing.

  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.

    Screenshot of user with 'Temporary password' field highlighted.

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=22222222-2222-2222-2222-222222222222
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==
    

    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
    

    Screenshot of Maven build output.

  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.

    Screenshot of application 'Sign in' dialog.

    Kommentar

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

    Screenshot of application 'Update your password' dialog.

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

    Screenshot of application admin message.

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.