Hinzufügen der Anmeldung mit einem Microsoft Entra-Konto zu einer Spring-Web-App
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 Microsoft Entra-Anmeldeseite um, wenn anonym darauf zugegriffen wird. Der folgende Screenshot zeigt die Microsoft Entra-Anmeldeseite:
Voraussetzungen
Die folgenden Voraussetzungen sind erforderlich, um die Schritte in diesem Artikel auszuführen:
- 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, und geben Sie die Namen für Gruppe und Artefakt für Ihre Anwendung ein.
Fügen Sie Abhängigkeiten für Spring Web, Microsoft Entra ID 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.
Erstellen einer Microsoft Entra-Instanz
Erstellen der Active Directory-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.
Kopieren Sie auf der angezeigten Seite für Ihre App-Registrierung den Wert für Anwendungs-ID (Client) und Verzeichnis-ID (Mandant). Sie verwenden diese Werte, um Ihre application.properties Datei später in diesem Tutorial 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
http://localhost:8080/login/oauth2/code/
als neuen Umleitungs-URI ein, und wählen Sie dann Konfigurieren aus.Wenn Sie die Datei pom.xml so geändert haben, dass sie eine ältere Microsoft Entra-Starterversion als 3.0.0 verwendet, wählen Sie unter Implizite Genehmigung und Hybridflows die Option ID-Token (für implizite und Hybridflows verwendet) und dann Speichern aus.
Hinzufügen eines Benutzerkontos zu Ihrem Verzeichnis und Hinzufügen dieses Kontos zu einer App-Rolle
Wählen Sie auf der Seite Übersicht Ihrer Active Directory-Instanz die Option 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.com
Wählen Sie auf der Hauptseite für Ihre App-Registrierung die Option App-Rollen und dann App-Rolle erstellen aus. Geben Sie Werte für die Formularfelder an, aktivieren Sie Do you want to enable this app role? (Möchten Sie diese App-Rolle aktivieren?), und wählen Sie dann Anwenden aus.
Wählen Sie auf der Seite Übersicht des Microsoft Entra-Verzeichnisses die Option Unternehmensanwendungen aus.
Wählen Sie Alle Anwendungenaus, und wählen Sie 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, und wählen Sie dann Auswählen und Zuweisen aus. Wenn Sie zuvor mehrere App-Rollen erstellt haben, wählen Sie eine Rolle aus.
Navigieren Sie zurück zum Bereich Benutzer, wählen Sie Ihren Testbenutzer und die Option Kennwort zurücksetzen aus, und kopieren Sie das Kennwort. Sie verwenden das Kennwort, wenn Sie sich später in diesem Tutorial 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.
Navigieren Sie zum src/main/resources Ordner in Ihrem Projekt, und öffnen Sie dann die datei application.properties in einem Text-Editor.
Geben Sie die Einstellungen für die App-Registrierung mit den Werten an, die Sie zuvor erstellt haben. Zum Beispiel:
# 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>
Wo:
Parameter Beschreibung spring.cloud.azure.active-directory.enabled
Aktivieren Sie die Features, die von spring-cloud-azure-starter-active-directory bereitgestellt werden. spring.cloud.azure.active-directory.profile.tenant-id
Enthält die Verzeichnis-ID Ihrer Active Directory-Instanz von vorhin. spring.cloud.azure.active-directory.credential.client-id
Enthält die Anwendungs-ID aus der zuvor durchgeführten App-Registrierung. spring.cloud.azure.active-directory.credential.client-secret
Enthä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, 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:run
Nachdem Ihre Anwendung von Maven erstellt und gestartet wurde, öffnen Sie
http://localhost:8080/Admin
in einem Webbrowser. Sie sollten aufgefordert werden, 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.
Nach erfolgreicher Anmeldung sollte der Beispieltext „Hello Admin“ des Controllers angezeigt werden.
Zusammenfassung
In diesem Tutorial haben Sie eine neue Java-Webanwendung mit dem Microsoft Entra Starter erstellt, einen neuen Microsoft Entra-Mandanten konfiguriert und eine neue Anwendung im Mandanten registriert. Anschließend haben Sie Ihre Anwendung so konfiguriert, dass die Spring-Annotationen und -Klassen zum Schutz der Webanwendung verwendet werden.
Weitere Informationen
- Informationen zu neuen Benutzeroberflächenoptionen 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.