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 anmeldeseite Microsoft Entra um, wenn anonym darauf zugegriffen wird. Der folgende Screenshot zeigt die Microsoft Entra-Anmeldeseite:

Screenshot der Microsoft Entra Anmeldeseite für die Spring Web App.

Voraussetzungen

Damit Sie die in diesem Artikel aufgeführten Schritte ausführen können, benötigen Sie Folgendes:

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

  1. Wechseln Sie zu https://start.spring.io/.

  2. Geben Sie an, dass Sie ein Maven-Projekt mit Java generieren möchten. Geben Sie die Gruppen - und Artefaktnamen für Ihre Anwendung ein.

  3. Fügen Sie Abhängigkeiten für Spring Web und OAuth2-Client hinzu.

  4. Wählen Sie unten auf der Seite die Schaltfläche GENERIEREN aus.

  5. Laden Sie das Projekt nach entsprechender Aufforderung unter einem Pfad auf dem lokalen Computer herunter.

Hinzufügen der Microsoft Entra-Abhängigkeit

  1. Extrahieren Sie die heruntergeladenen Projektdateien in ein Verzeichnis auf Ihrem lokalen Computer.

  2. Öffnen Sie die pom.xml Datei in einem Text-Editor.

  3. 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>
    
  4. 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>
    
  5. 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.

  1. Melden Sie sich bei https://portal.azure.com an.

  2. Wählen Sie Alle Dienste aus, dann Identität und dann Microsoft Entra ID.

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

  4. Wählen Sie nach Abschluss des Vorgangs den angezeigten Link aus, um auf das neue Verzeichnis zuzugreifen.

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

  1. Wählen Sie im Portalmenü App-Registrierungen und dann Anwendung registrieren aus.

  2. Geben Sie Ihre Anwendung an, und wählen Sie dann Registrieren aus.

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

  4. Wählen Sie im Navigationsbereich Zertifikate & Geheimnisse. Wählen Sie dann Neuen Client-Geheimschlüsselaus.

    Screenshot: Bildschirm „Zertifikate & Geheimnisse“ mit hervorgehobener Option „Neuer geheimer Clientschlüssel“

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

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

    Screenshot: Anwendung mit hervorgehobenem neuen geheimen Clientschlüssel

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

  8. Geben Sie als neuen http://localhost:8080/login/oauth2/code/ ein, und wählen Sie dann Konfigurieren aus.

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

  1. Wählen Sie auf der Seite "Übersicht" Ihres Microsoft Entra ID-Mandanten "Benutzer" und dann " Neuer Benutzer" aus.

  2. Geben Sie im angezeigten Bereich Benutzer den Benutzernamen und den Namen ein. Wählen Sie dann Erstellen aus.

    Screenshot des Dialogfelds

    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

  3. Wä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.

    Screenshot: Bildschirm „App-Rollen“ der Anwendung mit angezeigtem Bereich „App-Rolle erstellen“

  4. Wählen Sie auf der Seite Übersicht des Microsoft Entra-Verzeichnisses die Option Unternehmensanwendungen aus.

  5. Wählen Sie "Alle Anwendungen" und dann die Anwendung aus, der Sie die App-Rolle in einem vorherigen Schritt hinzugefügt haben.

  6. Wählen Sie "Benutzer und Gruppen" und dann " Benutzer/Gruppe hinzufügen" aus.

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

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

  1. Extrahieren Sie die Dateien aus dem Projektarchiv, das Sie erstellt und zuvor in diesem Lernprogramm heruntergeladen haben, in ein Verzeichnis.

  2. Wechseln Sie in Ihrem Projekt zum Ordner "src/main/resources ", und öffnen Sie dann die Datei "application.properties " in einem Text-Editor.

  3. 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.enabled Aktiviert die von spring-cloud-azure-starter-active-directory.
    spring.cloud.azure.active-directory.profile.tenant-id Enthält die Mandanten-ID Ihres Microsoft Entra-ID-Mandanten von zuvor.
    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.
  4. Speichern und schließen Sie die application.properties Datei.

  5. Erstellen Sie einen Ordner mit dem Namen Controller im Java-Quellordner für Ihre Anwendung. Beispiel: src/main/java/com/wingtiptoys/security/controller.

  6. Erstellen Sie eine neue Java-Datei namens HelloController.java im Controller- Ordner, und öffnen Sie sie in einem Text-Editor.

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

  1. Öffnen Sie eine Eingabeaufforderung, und wechseln Sie zu dem Ordner, in dem sich die Datei pom.xml Ihrer App befindet.

  2. Erstellen Sie Ihre Spring Boot-Anwendung mit Maven, und führen Sie sie aus. Zum Beispiel:

    mvn clean package
    mvn spring-boot:run
    
  3. Nachdem Maven Ihre Anwendung erstellt und gestartet hat, öffnen http://localhost:8080/Admin Sie sie in einem Webbrowser. Sie werden aufgefordert, einen Benutzernamen und ein Kennwort einzugeben.

    Screenshot des Dialogfelds

    Anmerkung

    Möglicherweise werden Sie aufgefordert, Ihr Kennwort zu ändern, wenn dies die erste Anmeldung für ein neues Benutzerkonto ist.

    Screenshot des Dialogfelds

  4. Nachdem Sie sich erfolgreich angemeldet haben, wird der Text "Administratornachricht" vom Controller angezeigt.

    Screenshot der Nachricht des Anwendungsadministrators.

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

Nächste Schritte

Um mehr über Spring und Azure zu erfahren, fahren Sie mit dem Spring on Azure-Dokumentationscenter fort.