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 aanmeldingspagina van Microsoft Entra wanneer deze anoniem wordt geopend. In de volgende schermopname ziet u de aanmeldingspagina van Microsoft Entra:
Voorwaarden
De volgende vereisten zijn vereist om de stappen in dit artikel uit te voeren:
- Een ondersteunde Java Development Kit (JDK). Zie Java-ondersteuning voor Azure en Azure Stackvoor meer informatie over de JDK's die beschikbaar zijn voor gebruik bij het ontwikkelen in Azure.
- Apache Mavenversie 3.0 of hoger.
- Een Azure-abonnement. Als u 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 Groep en Artifact namen voor uw toepassing in.
Voeg afhankelijkheden toe voor Spring Web, Microsoft Entra IDen 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, dan Identityen vervolgens Microsoft Entra ID.
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.
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 uw application.properties bestand later in deze tutorial te configureren.
Een toepassingsregistratie voor uw Spring Boot-app toevoegen
Selecteer in het portalmenu App-registratiesen selecteer vervolgens Een toepassing registreren.
Geef uw toepassing op en selecteer vervolgens 'Registreer'.
Wanneer de pagina voor uw app-registratie wordt weergegeven, kopieert u uw Toepassings-id (client)-id en de Directory-id (tenant). U gebruikt deze waarden om uw application.properties-bestand verderop in deze zelfstudie te configureren.
Selecteer Certificaten & Secrets in het navigatiedeelvenster. Selecteer vervolgens Nieuw clientgeheim.
Voeg een beschrijving toe en selecteer de duur in de Verloopt-lijst. Selecteer toevoegen. De waarde voor de sleutel wordt automatisch ingevuld.
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 meer ophalen.)
Selecteer op de hoofdpagina voor uw app-registratie Verificatieen selecteer Een platform toevoegen. Selecteer vervolgens webtoepassingen.
Voor een nieuwe omleidings-URI, voer
http://localhost:8080/login/oauth2/code/
in en selecteer Configureer.Als u het pom.xml-bestand hebt gewijzigd om een Microsoft Entra Starter-versie 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.
Voeg een gebruikersaccount toe aan uw directory en voeg dat account toe aan een appRole
Selecteer op de pagina Overzicht van Active Directory Gebruikersen selecteer vervolgens Nieuwe gebruiker.
Wanneer het deelvenster Gebruiker wordt weergegeven, voert u de gebruikersnaam en naamin. Selecteer vervolgens maken.
Notitie
U moet uw adreslijst-URL opgeven van eerder in deze zelfstudie wanneer u de gebruikersnaam invoert. Bijvoorbeeld:
test-user@azuresampledirectory.onmicrosoft.com
Selecteer op de hoofdpagina voor uw app-registratie App-rollenen selecteer vervolgens App-rol maken. Geef waarden op voor de formuliervelden, selecteer Wilt u deze app-rol inschakelen?en selecteer vervolgens toepassen.
Selecteer op de pagina Overzicht van uw Microsoft Entra-directory de Enterprise-toepassingen.
Selecteer Alle toepassingenen selecteer vervolgens de toepassing waaraan u de app-rol in een vorige stap hebt toegevoegd.
Selecteer gebruikers en groepenen selecteer vervolgens Gebruiker/groep toevoegen.
Onder Gebruikers, selecteer Geen geselecteerd. Selecteer de gebruiker die u eerder hebt gemaakt, selecteer Selecteeren 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 instellenen kopieer het wachtwoord. Je gebruikt het wachtwoord wanneer je je later in deze tutorial aanmeldt bij je applicatie.
Uw app configureren en compileren
Pak de bestanden uit het projectarchief dat u eerder in deze zelfstudie hebt gemaakt en gedownload en plaats ze in een map.
Navigeer naar de map src/main/resources in uw project en open vervolgens 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. Bijvoorbeeld:
# 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>
Waar:
Parameter Beschrijving 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 eerder de Directory ID van uw Active Directory. 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. Sla het bestand application.properties op en sluit het.
Maak een map met de naam controller in de Java-bronmap voor uw toepassing. Bijvoorbeeld: src/main/java/com/wingtiptoys/security/controller.
Maak een nieuw Java-bestand met de naam HelloController.java in de controller map en open het in een teksteditor.
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
Open een opdrachtprompt en wijzig de map in de map waarin het pom.xml bestand van uw app zich bevindt.
Bouw uw Spring Boot-toepassing met Maven en voer deze uit. Bijvoorbeeld:
mvn clean package mvn spring-boot:run
Nadat uw toepassing is gemaakt en gestart door Maven, opent u
http://localhost:8080/Admin
in een webbrowser. U wordt gevraagd om een gebruikersnaam en wachtwoord.Notitie
U wordt mogelijk gevraagd 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
- Zie Trainingshandleiding voor app-registratie in de Nieuwe Azure-portal voor meer informatie over nieuwe ui-opties
Volgende stappen
Ga naar het Documentatiecentrum van Spring op Azure voor meer informatie over Spring en Azure.