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:
Vereisten
De volgende vereisten zijn vereist om de stappen in dit artikel uit te voeren:
- Een ondersteunde JDK (Java Development Kit). Zie Java-ondersteuning voor Azure en Azure Stack voor meer informatie over de JDK's die beschikbaar zijn voor gebruik bij het ontwikkelen in Azure.
- Apache Maven, versie 3.0 of hoger.
- Een Azure-abonnement. Als u nog geen Azure-abonnement hebt, maakt u een gratis account.
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
Blader naar https://start.spring.io/.
Geef op dat u een Maven-project wilt genereren met Java, voer de namen in voor Groep en Artefact voor uw toepassing.
Voeg afhankelijkheden toe voor Spring Web, Microsoft Entra ID en OAuth2-client.
Selecteer onder aan de pagina de knop GENEREREN .
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.
Meld u aan bij https://portal.azure.com.
Selecteer Alle services, vervolgens Identiteit en vervolgens Microsoft Entra-id.
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.
Wanneer u klaar bent, selecteert u de weergegeven koppeling om toegang te krijgen tot de nieuwe map.
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
Selecteer App-registraties in het portalmenu en selecteer vervolgens Een toepassing registreren.
Geef uw toepassing op en selecteer Vervolgens Registreren.
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.
Selecteer Certificaten en geheimen in het navigatiedeelvenster. Selecteer vervolgens Nieuw clientgeheim.
Voeg een Beschrijving toe en selecteer een duur in de lijst Verloopt. Selecteer Toevoegen. De waarde voor de sleutel wordt automatisch ingevuld.
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.)
Selecteer Verificatie op de hoofdpagina voor uw app-registratie en selecteer Een platform toevoegen. Selecteer vervolgens Webtoepassingen.
Voer in http://localhost:8080/login/oauth2/code/ als een nieuwe omleidings-URI en selecteer vervolgens Configureren.
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
Selecteer gebruikers op de pagina Overzicht van uw Active Directory en selecteer vervolgens Nieuwe gebruiker.
Wanneer het deelvenster Gebruikers wordt weergegeven, voert u Gebruikersnaam en Naam in. Selecteer vervolgens Maken.
Notitie
U moet uw adreslijst-URL opgeven van eerder in deze zelfstudie wanneer u de gebruikersnaam invoert. Voorbeeld:
test-user@azuresampledirectory.onmicrosoft.com
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.
Selecteer Enterprise-toepassingen op de pagina Overzicht van uw Microsoft Entra-directory.
Selecteer Alle toepassingen en selecteer vervolgens de toepassing waaraan u de app-rol in een vorige stap hebt toegevoegd.
Selecteer Gebruikers en groepen en selecteer vervolgens Gebruiker/groep toevoegen.
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.
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
Pak de bestanden uit het projectarchief uit dat u eerder in deze zelfstudie hebt gemaakt en gedownload naar een map.
Navigeer naar de map src/main/resources in uw project en open het bestand application.properties in een teksteditor.
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=<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>
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. Sla het bestand application.properties op en sluit het.
Maak in de Java-bronmap een map met de naam controller voor uw toepassing. Bijvoorbeeld: src/main/java/com/wingtiptoys/security/controller.
Maak een nieuw Java-bestand met de naam HelloController. java in de map controller en open het in een teksteditor.
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
Open een opdrachtprompt en ga naar de map waarin het bestand pom.xml van uw app zich bevindt.
Maak uw Spring Boot-app met Maven en voer deze uit. Voorbeeld:
mvn clean package mvn spring-boot:run
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.Notitie
U wordt mogelijk gevraagd om uw wachtwoord te wijzigen als dit de eerste aanmelding voor een nieuw gebruikersaccount is.
Nadat u zich hebt aangemeld, ziet u de voorbeeldtekst 'Beheerbericht' van de controller.
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.