Delen via


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:

Schermopname van het dialoogvenster Aanmelden.

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 .

  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.

  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 het bestand application.properties verderop in deze zelfstudie te configureren.

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.

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

    Schermopname van het scherm Certificaten en geheimen van de toepassing met 'Nieuw clientgeheim' gemarkeerd.

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

    Schermopname van de toepassing met nieuw clientgeheim gemarkeerd.

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

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

  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.

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.

    Schermopname van het dialoogvenster Nieuwe gebruiker.

    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.

    Schermopname van het scherm App-rollen met het deelvenster App-rol maken.

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

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

  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.

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

    Schermopname van het dialoogvenster Aanmelden.

    Notitie

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

    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

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