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

In dit artikel leest u hoe u een Spring-web-app ontwikkelt die ondersteuning biedt voor aanmelding door een Microsoft Entra-account. Nadat alle stappen in dit artikel zijn afgerond, wordt de web-app omgeleid naar de aanmeldingspagina van Microsoft Entra wanneer deze anoniem wordt geopend. In de volgende schermopname ziet u de aanmeldingspagina van Microsoft Entra:

Screenshot of application 'Sign in' dialog.

Vereisten

De volgende vereisten zijn vereist om de stappen in dit artikel uit te voeren:

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 in voor Groep en Artefact voor uw toepassing.

  3. Voeg afhankelijkheden toe voor Spring Web, Microsoft Entra ID en OAuth2-client.

  4. Selecteer onder aan de pagina de knop GENEREREN .

    Screenshot of Spring Initializr with basic options.

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

Microsoft Entra-exemplaar maken

Het Active Directory-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, vervolgens Identiteit en vervolgens Microsoft Entra-id.

  3. Voer uw Organisatienaam en Oorspronkelijke domeinnaam in. 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 kan enkele minuten duren voordat de nieuwe resource is gemaakt.

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

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

    Screenshot of 'Create a tenant' success message.

  5. Kopieer de Tenant-id. U gebruikt de id-waarde om het bestand application.properties verderop in deze zelfstudie te configureren.

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

Een toepassingsregistratie aan uw Spring Boot-app toevoegen

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

  2. Geef uw toepassing op en selecteer Vervolgens Registreren.

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

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

  4. Selecteer Certificaten en geheimen in het linkernavigatiedeelvenster. Selecteer vervolgens Nieuw clientgeheim.

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

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

  6. Kopieer de waarde van het clientgeheim voor het configureren van het bestand application.properties, verderop in deze zelfstudie. (U kunt deze waarde later niet meer ophalen.)

    Screenshot of application with new client secret highlighted.

  7. Selecteer Verificatie op de hoofdpagina voor uw app-registratie en selecteer Een platform toevoegen. Selecteer vervolgens Webtoepassingen.

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

  8. Voer in http://localhost:8080/login/oauth2/code/ als een nieuwe omleidings-URI en selecteer vervolgens Configureren.

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

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

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

Voeg een gebruikersaccount toe aan uw directory en voeg dat account toe aan een appRole

  1. Selecteer gebruikers op de pagina Overzicht van uw Active Directory en selecteer vervolgens Nieuwe gebruiker.

  2. Wanneer het deelvenster Gebruikers wordt weergegeven, voert u Gebruikersnaam en Naam in. Selecteer vervolgens Maken.

    Screenshot of 'New user' dialog.

    Notitie

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

    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.

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

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

    Screenshot of Microsoft Entra ID 'Enterprise applications' screen.

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

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

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

  7. Selecteer Geen geselecteerd onder Gebruikers. 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.

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

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

    Screenshot of user with 'Temporary password' field highlighted.

Uw app configureren en compileren

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

  2. Navigeer 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. Voorbeeld:

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

    Hierin:

    Parameter Description
    spring.cloud.azure.active-directory.enabled De functies van spring-cloud-azure-starter-active-directory inschakelen
    spring.cloud.azure.active-directory.profile.tenant-id Bevat de Map-id van uw Active Directory van eerder.
    spring.cloud.azure.active-directory.credential.client-id Bevat de Toepassings-id van de app-registratie die u eerder hebt voltooid.
    spring.cloud.azure.active-directory.credential.client-secret Bevat de Waarde van de app-registratiesleutel die u eerder hebt voltooid.
  4. Sla het bestand application.properties op en sluit het.

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

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

  7. Voer de volgende code in, sla daarna 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 ga naar de map waarin het bestand pom.xml van uw app zich bevindt.

  2. Maak uw Spring Boot-app met Maven en voer deze uit. Voorbeeld:

    mvn clean package
    mvn spring-boot:run
    

    Screenshot of Maven build output.

  3. Nadat uw toepassing is gebouwd en gestart door Maven, opent u http://localhost:8080/Admin deze in een webbrowser. U wordt gevraagd om een gebruikersnaam en wachtwoord.

    Screenshot of application 'Sign in' dialog.

    Notitie

    U wordt mogelijk gevraagd om uw wachtwoord te wijzigen als dit de eerste aanmelding voor een nieuw gebruikersaccount is.

    Screenshot of application 'Update your password' dialog.

  4. Nadat u bent aangemeld, ziet u de voorbeeldtekst 'Beheer bericht' van de controller.

    Screenshot of application admin message.

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

Voor meer informatie over Spring en Azure gaat u door naar het documentatiecentrum van Spring op Azure.