Aanmelden met Microsoft Entra-account toevoegen aan een Spring-web-app

Dit artikel laat zien hoe u een Spring-webapplicatie ontwikkelt die aanmelden ondersteunt met een Microsoft Entra-account. Nadat alle stappen in dit artikel zijn afgerond, wordt de web-app omgeleid naar de Microsoft Entra aanmeldingspagina wanneer deze anoniem wordt geopend. In de volgende schermopname ziet u de aanmeldingspagina van Microsoft Entra:

Schermopname van de aanmeldingspagina Microsoft Entra voor de Spring-web-app.

Voorwaarden

Voor het voltooien van de stappen in dit artikel hebt u de volgende vereisten nodig:

Belangrijk

Spring Boot versie 2.5 of hoger is vereist om de stappen in dit artikel uit te voeren.

Een app maken met Spring Initializr

  1. Blader naar https://start.spring.io/.

  2. Geef op dat u een Maven-project wilt genereren met Java. Voer de namen van groepen en artefacten in voor uw toepassing.

  3. Voeg afhankelijkheden toe voor Spring Web en OAuth2-client.

  4. Selecteer onder aan de pagina de knop GENEREREN.

  5. Wanneer u hierom wordt gevraagd, downloadt u het project naar een pad op uw lokale computer.

De Microsoft Entra-afhankelijkheid toevoegen

  1. Pak de gedownloade projectbestanden uit naar een map op uw lokale computer.

  2. Open het pom.xml-bestand in een teksteditor.

  3. Voeg de Spring Cloud Azure Stuklijst (Bill of Materials) toe aan de <dependencyManagement> sectie.

    <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. Voeg de Spring Cloud Azure Starter-Microsoft Entra afhankelijkheid toe aan de <dependencies> sectie.

    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
    </dependency>
    
  5. Sla het pom.xml bestand op en sluit het.

Het Microsoft Entra-exemplaar maken

Als u de beheerder van een bestaand exemplaar bent, kunt u dit proces overslaan.

  1. Meld u aan bij https://portal.azure.com.

  2. Selecteer Alle services, dan Identityen vervolgens Microsoft Entra ID.

  3. Voer de naam van uw organisatie in en uw initiële domeinnaam. Kopieer de volledige URL van uw map. U gebruikt de URL om later in deze zelfstudie gebruikersaccounts toe te voegen. (Bijvoorbeeld: azuresampledirectory.onmicrosoft.com.)

    Kopieer de volledige URL van uw map. U gebruikt de URL om later in deze zelfstudie gebruikersaccounts toe te voegen. (Bijvoorbeeld: azuresampledirectory.onmicrosoft.com.).

    Wanneer u klaar bent, selecteert u maken. Het maken van de nieuwe resource duurt enkele minuten.

  4. Wanneer u klaar bent, selecteert u de weergegeven koppeling om toegang te krijgen tot de nieuwe map.

  5. Kopieer de Tenant-ID. U gebruikt de id-waarde om uw application.properties bestand later in deze tutorial te configureren.

Een toepassingsregistratie voor uw Spring Boot-app toevoegen

  1. Selecteer in het portalmenu App-registratiesen selecteer vervolgens Een toepassing registreren.

  2. Geef uw toepassing op en selecteer vervolgens 'Registreer'.

  3. Wanneer de pagina voor uw app-registratie wordt weergegeven, kopieert u de toepassings-id (client) en de tenant-id. Gebruik deze waarden om het bestand application.properties verderop in deze zelfstudie te configureren.

  4. Selecteer Certificaten & Secrets in het navigatiedeelvenster. Selecteer vervolgens Nieuw clientgeheim.

    Schermopname van het scherm van de toepassing 'Certificaten & geheimen' met 'Nieuw cliëntgeheim' gemarkeerd.

  5. Voeg een beschrijving toe en selecteer de duur in de Verloopt-lijst. Selecteer toevoegen. De waarde voor de sleutel wordt automatisch ingevuld.

  6. Kopieer en sla de waarde van het clientgeheim op om uw application.properties-bestand verderop in deze zelfstudie te configureren. (U kunt deze waarde later niet ophalen.)

    Schermopname van de toepassing met nieuw clientgeheim gemarkeerd.

  7. Selecteer op de hoofdpagina voor uw app-registratie Verificatieen selecteer Een platform toevoegen. Selecteer vervolgens webtoepassingen.

  8. Voor een nieuwe omleidings-URI, voer http://localhost:8080/login/oauth2/code/in en selecteer Configureer.

  9. Als u het pom.xml-bestand hebt gewijzigd om een Microsoft Entra startersversie te gebruiken die ouder is dan 3.0.0: selecteer onder Impliciete toekenning en hybride stromenid-tokens (gebruikt voor impliciete en hybride stromen) en selecteer Vervolgens Opslaan.

Een gebruikersaccount toevoegen en een Microsoft Entra-app-rol toewijzen

  1. Selecteer gebruikers op de pagina Overzicht van uw Microsoft Entra ID-tenant en selecteer vervolgens Nieuwe gebruiker.

  2. Wanneer het deelvenster Gebruiker wordt weergegeven, voert u de gebruikersnaam en naamin. Selecteer vervolgens maken.

    Schermopname van het dialoogvenster Nieuwe gebruiker voor het maken van een gebruikersaccount.

    Notitie

    U moet uw adreslijst-URL opgeven van eerder in deze zelfstudie wanneer u de gebruikersnaam invoert. Bijvoorbeeld:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Selecteer app-rollen op de hoofdpagina voor uw app-registratie en selecteer vervolgens App-rol maken. Geef waarden op voor de formuliervelden, selecteer Wilt u deze app-rol inschakelen? en selecteer Vervolgens Toepassen.

    Schermopname van het scherm 'App-rollen' van de applicatie met het deelvenster 'App-rol maken' zichtbaar.

  4. Selecteer op de pagina Overzicht van uw Microsoft Entra-directory de Enterprise-toepassingen.

  5. Selecteer Alle toepassingen en selecteer vervolgens de toepassing waaraan u de app-rol in een vorige stap hebt toegevoegd.

  6. Selecteer Gebruikers en groepen en selecteer vervolgens Gebruiker/groep toevoegen.

  7. Onder Gebruikers, selecteer Geen geselecteerd. Selecteer de gebruiker die u eerder hebt gemaakt, selecteer Selecteren en selecteer vervolgens Toewijzen. Als u meer dan één app-rol eerder hebt gemaakt, selecteert u een rol.

  8. Ga terug naar het deelvenster Gebruikers , selecteer uw testgebruiker en selecteer Wachtwoord opnieuw instellen. Kopieer het wachtwoord. U gebruikt het wachtwoord wanneer u zich verderop in deze zelfstudie aanmeldt bij uw toepassing.

Uw app configureren en compileren

  1. Pak de bestanden uit het projectarchief dat u eerder in deze zelfstudie hebt gemaakt en gedownload en plaats ze in een map.

  2. Ga naar de map src/main/resources in uw project en open het bestand application.properties in een teksteditor.

  3. Geef de instellingen voor uw app-registratie op met behulp van de waarden die u eerder hebt gemaakt. Bijvoorbeeld:

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

    Waar:

    Kenmerk Beschrijving
    spring.cloud.azure.active-directory.enabled Hiermee schakelt u de functies van spring-cloud-azure-starter-active-directory.
    spring.cloud.azure.active-directory.profile.tenant-id Bevat de tenant-id van uw Microsoft Entra ID-tenant van eerder.
    spring.cloud.azure.active-directory.credential.client-id Bevat de toepassings-id van uw app-registratie die u eerder hebt voltooid.
    spring.cloud.azure.active-directory.credential.client-secret Bevat de waarde van uw app-registratiesleutel die u eerder hebt voltooid.
  4. Sla het bestand application.properties op en sluit het.

  5. Maak een map met de naam controller in de Java-bronmap voor uw toepassing. Bijvoorbeeld: src/main/java/com/wingtiptoys/security/controller.

  6. Maak een nieuw Java-bestand met de naam HelloController.java in de controller map en open het in een teksteditor.

  7. Voer de volgende code in en sla het bestand op en sluit het:

    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";
         }
    }
    

Uw app bouwen en testen

  1. Open een opdrachtprompt en wijzig de map in de map waarin het pom.xml bestand van uw app zich bevindt.

  2. Bouw uw Spring Boot-toepassing met Maven en voer deze uit. Bijvoorbeeld:

    mvn clean package
    mvn spring-boot:run
    
  3. Nadat Maven uw toepassing heeft gemaakt en gestart, opent http://localhost:8080/Admin u deze in een webbrowser. U wordt gevraagd om een gebruikersnaam en wachtwoord.

    schermopname van het dialoogvenster Aanmelden.

    Notitie

    Mogelijk wordt u gevraagd uw wachtwoord te wijzigen als dit de eerste aanmelding is voor een nieuw gebruikersaccount.

    Schermopname van het dialoogvenster Uw wachtwoord bijwerken.

  4. Nadat u zich hebt aangemeld, ziet u de voorbeeldtekst 'Beheerbericht' van de controller.

    schermopname van het bericht van de toepassingsbeheerder.

Samenvatting

In deze zelfstudie hebt u een nieuwe Java-webtoepassing gemaakt met behulp van de Microsoft Entra starter, een nieuwe Microsoft Entra-tenant geconfigureerd, een nieuwe toepassing geregistreerd in de tenant en vervolgens uw toepassing geconfigureerd voor het gebruik van de Spring-aantekeningen en -klassen om de web-app te beveiligen.

Zie ook

Volgende stappen

Ga naar het Documentatiecentrum van Spring op Azure voor meer informatie over Spring en Azure.