Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie eine Spring-Web-App entwickeln, die die Anmeldung mithilfe eines Microsoft Entra-Kontos unterstützt. Nach Abschluss aller Schritte in diesem Artikel leitet die Web-App auf die anmeldeseite Microsoft Entra um, wenn anonym darauf zugegriffen wird. Der folgende Screenshot zeigt die Microsoft Entra-Anmeldeseite:
Voraussetzungen
Damit Sie die in diesem Artikel aufgeführten Schritte ausführen können, benötigen Sie Folgendes:
- Ein unterstütztes Java Development Kit (JDK). Weitere Informationen zu den für die Entwicklung in Azure verfügbaren JDKs finden Sie unter Java-Unterstützung für Azure und Azure Stack.
- Apache Maven, Version 3.0 oder höher.
- Ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto.
Wichtig
Spring Boot Version 2.5 oder höher ist erforderlich, um die Schritte in diesem Artikel auszuführen.
Erstelle eine App mit Spring Initializr
Wechseln Sie zu https://start.spring.io/.
Geben Sie an, dass Sie ein Maven-Projekt mit Java generieren möchten. Geben Sie die Gruppen - und Artefaktnamen für Ihre Anwendung ein.
Fügen Sie Abhängigkeiten für Spring Web und OAuth2-Client hinzu.
Wählen Sie unten auf der Seite die Schaltfläche GENERIEREN aus.
Laden Sie das Projekt nach entsprechender Aufforderung unter einem Pfad auf dem lokalen Computer herunter.
Hinzufügen der Microsoft Entra-Abhängigkeit
Extrahieren Sie die heruntergeladenen Projektdateien in ein Verzeichnis auf Ihrem lokalen Computer.
Öffnen Sie die pom.xml Datei in einem Text-Editor.
Fügen Sie die Spring Cloud Azure Bill of Materials (BOM) zum
<dependencyManagement>Abschnitt hinzu.<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>Fügen Sie die Spring Cloud Azure Starter Microsoft Entra Abhängigkeit zum
<dependencies>Abschnitt hinzu.<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-active-directory</artifactId> </dependency>Speichern und schließen Sie die pom.xml Datei.
Erstellen der Microsoft Entra-Instanz
Wenn Sie der Administrator einer vorhandenen Instanz sind, können Sie diesen Vorgang überspringen.
Melden Sie sich bei https://portal.azure.com an.
Wählen Sie Alle Dienste aus, dann Identität und dann Microsoft Entra ID.
Geben Sie Ihren Organisationsnamen und Ihren ursprünglichen Domänennamenein. Kopieren Sie die vollständige URL Ihres Verzeichnisses. Sie verwenden die URL, um später in diesem Tutorial Benutzerkonten hinzuzufügen. (Beispiel:
azuresampledirectory.onmicrosoft.com.)Kopieren Sie die vollständige URL Ihres Verzeichnisses. Sie verwenden die URL, um später in diesem Tutorial Benutzerkonten hinzuzufügen. (Beispiel:
azuresampledirectory.onmicrosoft.com)Wählen Sie anschließend die Option Erstellen aus. Es dauert ein paar Minuten, um die neue Ressource zu erstellen.
Wählen Sie nach Abschluss des Vorgangs den angezeigten Link aus, um auf das neue Verzeichnis zuzugreifen.
Kopieren Sie die Tenant ID (Mandanten-ID). Sie verwenden den ID-Wert, um später in diesem Tutorial die Datei application.properties zu konfigurieren.
Hinzufügen einer Anwendungsregistrierung für Ihre Spring Boot-App
Wählen Sie im Portalmenü App-Registrierungen und dann Anwendung registrieren aus.
Geben Sie Ihre Anwendung an, und wählen Sie dann Registrieren aus.
Wenn die Seite für Ihre App-Registrierung angezeigt wird, kopieren Sie Ihre Anwendungs-ID (Client-ID) und die Mandanten-ID. Verwenden Sie diese Werte, um die Datei "application.properties " weiter unten in diesem Lernprogramm zu konfigurieren.
Wählen Sie im Navigationsbereich Zertifikate & Geheimnisse. Wählen Sie dann Neuen Client-Geheimschlüsselaus.
Fügen Sie eine Beschreibung hinzu, und wählen Sie in der Liste Gültig bis die Dauer aus. auswählen undhinzufügen. Der Wert für den Schlüssel wird automatisch ausgefüllt.
Kopieren und speichern Sie den Wert des geheimen Clientschlüssels, damit Sie später in diesem Tutorial die Datei application.properties konfigurieren können. (Sie können diesen Wert später nicht abrufen.)
Wählen Sie auf der Hauptseite für Ihre App-Registrierung die Option Authentifizierung und dann Plattform hinzufügen aus. Wählen Sie anschließend Webanwendungen aus.
Geben Sie als neuen
http://localhost:8080/login/oauth2/code/ein, und wählen Sie dann Konfigurieren aus.Wenn Sie die pom.xml-Datei so geändert haben, dass eine Microsoft Entra Startversion vor 3.0.0 verwendet wird: Wählen Sie unter impliziter Erteilung und HybridflüsseID-Token (für implizite und hybride Flüsse verwendet) aus, und wählen Sie dann "Speichern" aus.
Hinzufügen eines Benutzerkontos und Zuweisen einer Microsoft Entra App-Rolle
Wählen Sie auf der Seite "Übersicht" Ihres Microsoft Entra ID-Mandanten "Benutzer" und dann " Neuer Benutzer" aus.
Geben Sie im angezeigten Bereich Benutzer den Benutzernamen und den Namen ein. Wählen Sie dann Erstellen aus.
Anmerkung
Sie müssen Ihre Verzeichnis-URL aus früheren Teilen dieses Tutorials angeben, wenn Sie den Benutzernamen eingeben. Zum Beispiel:
test-user@azuresampledirectory.onmicrosoft.comWählen Sie auf der Hauptseite für Ihre App-Registrierung App-Rollen und dann " App-Rolle erstellen" aus. Geben Sie Werte für die Formularfelder ein, wählen Sie "Möchten Sie diese App-Rolle aktivieren?", und wählen Sie dann "Übernehmen" aus.
Wählen Sie auf der Seite Übersicht des Microsoft Entra-Verzeichnisses die Option Unternehmensanwendungen aus.
Wählen Sie "Alle Anwendungen" und dann die Anwendung aus, der Sie die App-Rolle in einem vorherigen Schritt hinzugefügt haben.
Wählen Sie "Benutzer und Gruppen" und dann " Benutzer/Gruppe hinzufügen" aus.
Wählen Sie unter Benutzer die Option Keine Elemente ausgewählt aus. Wählen Sie den Benutzer aus, den Sie zuvor erstellt haben, wählen Sie "Auswählen" und dann " Zuweisen" aus. Wenn Sie zuvor mehrere App-Rollen erstellt haben, wählen Sie eine Rolle aus.
Wechseln Sie zurück zum Benutzerbereich , wählen Sie Ihren Testbenutzer aus, und wählen Sie "Kennwort zurücksetzen" aus. Kopieren Sie das Kennwort. Sie verwenden das Kennwort, wenn Sie sich später in diesem Lernprogramm bei Ihrer Anwendung anmelden.
Konfigurieren und Kompilieren Ihrer App
Extrahieren Sie die Dateien aus dem Projektarchiv, das Sie erstellt und zuvor in diesem Lernprogramm heruntergeladen haben, in ein Verzeichnis.
Wechseln Sie in Ihrem Projekt zum Ordner "src/main/resources ", und öffnen Sie dann die Datei "application.properties " in einem Text-Editor.
Geben Sie die Einstellungen für ihre App-Registrierung mithilfe der zuvor erstellten Werte an. Zum Beispiel:
# 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>Wo:
Parameter Beschreibung spring.cloud.azure.active-directory.enabledAktiviert die von spring-cloud-azure-starter-active-directory.spring.cloud.azure.active-directory.profile.tenant-idEnthält die Mandanten-ID Ihres Microsoft Entra-ID-Mandanten von zuvor. spring.cloud.azure.active-directory.credential.client-idEnthält die Anwendungs-ID aus der zuvor durchgeführten App-Registrierung. spring.cloud.azure.active-directory.credential.client-secretEnthält den Wert aus dem zuvor erstellten App-Registrierungsschlüssel. Speichern und schließen Sie die application.properties Datei.
Erstellen Sie einen Ordner mit dem Namen Controller im Java-Quellordner für Ihre Anwendung. Beispiel: src/main/java/com/wingtiptoys/security/controller.
Erstellen Sie eine neue Java-Datei namens HelloController.java im Controller- Ordner, und öffnen Sie sie in einem Text-Editor.
Geben Sie den folgenden Code ein, und speichern Und schließen Sie die Datei:
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"; } }
Erstellen und Testen Ihrer App
Öffnen Sie eine Eingabeaufforderung, und wechseln Sie zu dem Ordner, in dem sich die Datei pom.xml Ihrer App befindet.
Erstellen Sie Ihre Spring Boot-Anwendung mit Maven, und führen Sie sie aus. Zum Beispiel:
mvn clean package mvn spring-boot:runNachdem Maven Ihre Anwendung erstellt und gestartet hat, öffnen
http://localhost:8080/AdminSie sie in einem Webbrowser. Sie werden aufgefordert, einen Benutzernamen und ein Kennwort einzugeben.
Anmerkung
Möglicherweise werden Sie aufgefordert, Ihr Kennwort zu ändern, wenn dies die erste Anmeldung für ein neues Benutzerkonto ist.
Nachdem Sie sich erfolgreich angemeldet haben, wird der Text "Administratornachricht" vom Controller angezeigt.
Zusammenfassung
In diesem Lernprogramm haben Sie mithilfe des Microsoft Entra Starters eine neue Java Webanwendung erstellt, einen neuen Microsoft Entra Mandanten konfiguriert, eine neue Anwendung im Mandanten registriert und dann Ihre Anwendung so konfiguriert, dass die Spring-Anmerkungen und -Klassen zum Schutz der Web-App verwendet werden.
Weitere Informationen
- Informationen zu neuen UI-Optionen finden Sie im Schulungshandbuch zur Registrierung neuer Azure-Portal-Apps.
Nächste Schritte
Um mehr über Spring und Azure zu erfahren, fahren Sie mit dem Spring on Azure-Dokumentationscenter fort.