Schnellstart: Benutzeranmeldung und Aufrufen der Microsoft Graph-API aus einer Java-Webanwendung

In diesem Schnellstart laden Sie ein Codebeispiel herunter und führen es aus, das zeigt, wie eine Java-Webanwendung Benutzer anmelden und die Microsoft Graph-API aufrufen kann. Benutzer*innen aus einem beliebigen Microsoft Entra-Organisation können sich bei der Anwendung anmelden.

Eine Abbildung finden Sie unter Funktionsweise des Beispiels.

Voraussetzungen

Für dieses Beispiel benötigen Sie Folgendes:

Registrieren und Herunterladen Ihrer Schnellstart-App

Tipp

Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.

Sie haben zwei Möglichkeiten, um Ihre Schnellstartanwendung zu starten: „Express“ (Option 1) oder „Manuell“ (Option 2).

Option 1: Registrieren und automatisches Konfigurieren Ihrer App und anschließendes Herunterladen des Codebeispiels

  1. Wechseln Sie mindestens als Cloudanwendungsadministrator zur Schnellstartbenutzeroberfläche Microsoft Entra Admin Center – App-Registrierungen.
  2. Geben Sie einen Namen für Ihre Anwendung ein, und klicken Sie auf Registrieren.
  3. Folgen Sie den Anweisungen in der Schnellstartumgebung des Portals, um den automatisch konfigurierten Anwendungscode herunterzuladen.

Option 2: Registrieren und manuelles Konfigurieren Ihrer Anwendung und des Codebeispiels

Schritt 1: Anwendung registrieren

Führen Sie die folgenden Schritte aus, um Ihre Anwendung zu registrieren und die Registrierungsinformationen Ihrer App manuell hinzuzufügen:

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloudanwendungsadministrator an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol für Einstellungen im oberen Menü, um zum Mandanten zu wechseln, in dem Sie die Anwendung über das Menü Verzeichnisse + Abonnements registrieren möchten.
  3. Wechseln Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie Neue Registrierung aus.
  4. Geben Sie unter Name einen Namen für Ihre Anwendung ein, z. B. java-webapp. Dieser Name wird Benutzern Ihrer App ggf. angezeigt. Sie können ihn später noch ändern.
  5. Wählen Sie Registrieren.
  6. Notieren Sie sich auf der Seite Übersicht die Werte für Anwendungs-ID (Client) und Verzeichnis-ID (Mandant) . Sie benötigen diese Werte später noch.
  7. Wählen Sie unter Verwalten die Option Authentifizierung aus.
  8. Wählen Sie Plattform hinzufügen>Web aus.
  9. Geben Sie im Abschnitt Umleitungs-URIs den URI https://localhost:8443/msal4jsample/secure/aad ein.
  10. Wählen Sie Konfigurierenaus.
  11. Geben Sie im Abschnitt Web unter Umleitungs-URIs den URI https://localhost:8443/msal4jsample/graph/me als zweiten Umleitungs-URI ein.
  12. Wählen Sie unter Verwalten die Option Zertifikate und Geheimnisse aus. Wählen Sie im Abschnitt Geheime Clientschlüssel die Option Neuer geheimer Clientschlüssel aus.
  13. Geben Sie eine Schlüsselbeschreibung (z. B. App-Geheimnis) ein, behalten Sie den Standardablauf bei, und wählen Sie Hinzufügen aus.
  14. Notieren Sie sich den Wert des geheimen Clientschlüssels. Sie benötigen die Information später.

Schritt 2: Herunterladen des Codebeispiels

Laden Sie das Codebeispiel herunter.

Schritt 3: Konfigurieren des Codebeispiels

  1. Extrahieren Sie die ZIP-Datei in einen lokalen Ordner.

  2. Optional. Öffnen Sie das Beispiel in dieser Umgebung, wenn Sie eine integrierte Entwicklungsumgebung verwenden.

  3. Öffnen Sie die Datei application.properties. Sie befindet sich im Ordner src/main/resources/ . Ersetzen Sie die Werte in den Feldern aad.clientId, aad.authority und aad.secretKey durch die Werte für die Anwendungs-ID, Mandanten-ID und den geheimen Clientschlüssel. Dies sollte wie folgt aussehen:

     aad.clientId=Enter_the_Application_Id_here
     aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/
     aad.secretKey=Enter_the_Client_Secret_Here
     aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad
     aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me
     aad.msGraphEndpointHost="https://graph.microsoft.com/"
    

Im vorherigen Code:

  • Enter_the_Application_Id_here ist die Anwendungs-ID für die von Ihnen registrierte Anwendung.
  • Enter_the_Client_Secret_Here ist der geheime Clientschlüssel, den Sie unter Zertifikate und Geheimnisse für die registrierte Anwendung erstellt haben.
  • Enter_the_Tenant_Info_Here ist der Wert der Verzeichnis-ID (Mandant) der Anwendung, die Sie registriert haben.
  1. Geben Sie die server.ssl.key-Eigenschaften an, um HTTPS mit localhost zu verwenden. Verwenden Sie zum Generieren eines selbstsignierten Zertifikats das keytool-Hilfsprogramm (in JRE enthalten).

Hier sehen Sie ein Beispiel:

keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password

server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
  1. Speichern Sie die generierte Keystore-Datei im Ordner resources.

Schritt 4: Ausführen des Codebeispiels

Führen Sie zum Ausführen des Projekts einen der folgenden Schritte aus:

  • Führen Sie das Codebeispiel direkt über Ihre IDE aus, indem Sie den eingebetteten Spring Boot-Server verwenden.
  • Nutzen Sie das Verpacken als WAR-Datei, indem Sie Maven verwenden und dann die Bereitstellung in einer J2EE-Containerlösung wie Apache Tomcat durchführen.
Ausführen des Projekts aus einer IDE

Wählen Sie zum Ausführen der Webanwendung aus einer IDE den Befehl „run“ aus, und navigieren Sie dann zur Startseite des Projekts. In diesem Beispiel lautet die Standard-URL der Startseite https://localhost:8443..

  1. Wählen Sie auf der ersten Seite die Schaltfläche Anmelden aus, um Benutzer*innen zu Microsoft Entra ID umzuleiten und zum Eingeben der Anmeldeinformationen aufzufordern.

  2. Nachdem die Benutzer authentifiziert wurden, werden sie an https://localhost:8443/msal4jsample/secure/aad umgeleitet. Der Benutzer ist nun angemeldet, und auf der Seite werden Informationen zum Benutzerkonto angezeigt. Die Beispielbenutzeroberfläche enthält die folgenden Schaltflächen:

    • Sign Out (Abmelden): Meldet den aktuellen Benutzer von der Anwendung ab und leitet ihn zur Startseite um.
    • Show User Info (Benutzerinformationen anzeigen): Ruft ein Token für Microsoft Graph ab und ruft Microsoft Graph mit einer Anforderung auf, die das Token enthält, woraufhin grundlegende Informationen zum angemeldeten Benutzer zurückgegeben werden.
Ausführen des Projekts über Tomcat

Wenn Sie das Webbeispiel in Tomcat bereitstellen möchten, müssen Sie einige Änderungen am Quellcode vornehmen.

  1. Öffnen Sie ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.

    • Löschen Sie den gesamten Quellcode, und ersetzen Sie ihn durch den folgenden Code:

       package com.microsoft.azure.msalwebsample;
      
       import org.springframework.boot.SpringApplication;
       import org.springframework.boot.autoconfigure.SpringBootApplication;
       import org.springframework.boot.builder.SpringApplicationBuilder;
       import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
       @SpringBootApplication
       public class MsalWebSampleApplication extends SpringBootServletInitializer {
      
        public static void main(String[] args) {
         SpringApplication.run(MsalWebSampleApplication.class, args);
        }
      
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MsalWebSampleApplication.class);
        }
       }
      
  2. Der HTTP-Standardport von Tomcat ist 8080. Sie benötigen aber eine HTTPS-Verbindung über Port 8443. Konfigurieren Sie diese Einstellung wie folgt:

    • Navigieren Sie zu tomcat/conf/server.xml.

    • Suchen Sie nach dem Tag <connector>, und ersetzen Sie den vorhandenen Connector durch diesen Connector:

      <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword"
               clientAuth="false" sslProtocol="TLS"/>
      
  3. Öffnen Sie ein Eingabeaufforderungsfenster. Navigieren Sie zum Stammordner dieses Beispiels (in dem sich die Datei pom.xml befindet), und führen Sie mvn package aus, um das Projekt zu erstellen.

    • Mit diesem Befehl wird eine Datei namens msal-web-sample-0.1.0.war im Verzeichnis /targets generiert.
    • Benennen Sie diese Datei in msal4jsample.war um.
    • Stellen Sie diese WAR-Datei mit Tomcat oder einer beliebigen anderen J2EE-Containerlösung bereit.
      • Um die Datei msal4jsample.war bereitzustellen, kopieren Sie sie in das Verzeichnis /webapps/ Ihrer Tomcat-Installation und starten dann den Tomcat-Server.
  4. Navigieren Sie nach dem Bereitstellen der Datei in einem Browser zu https://localhost:8443/msal4jsample.

Wichtig

Für die Anwendung in dieser Schnellstartanleitung wird ein Clientgeheimnis verwendet, um sich selbst als vertraulicher Client zu identifizieren. Da der geheime Clientschlüssel Ihren Projektdateien im Nur-Text-Format hinzugefügt wird, empfehlen wir Ihnen, aus Sicherheitsgründen ein Zertifikat anstelle eines Clientgeheimnisses zu verwenden, bevor Sie die Anwendung in einer Produktionsumgebung nutzen. Weitere Informationen zur Verwendung eines Zertifikats finden Sie unter Zertifikatanmeldeinformationen für die Anwendungsauthentifizierung.

Weitere Informationen

Funktionsweise des Beispiels

Diagram that shows how the sample app generated by this quickstart works.

Abrufen von MSAL

MSAL für Java (MSAL4J) ist die Java-Bibliothek zum Anmelden von Benutzern und Anfordern von Token, die für den Zugriff auf eine durch Microsoft Identity Platform geschützte API verwendet wird.

Sie können Ihrer Anwendung MSAL4J hinzufügen, indem Sie Maven oder Gradle für die Verwaltung Ihrer Abhängigkeiten verwenden. Hierzu sind in Ihrer Anwendung folgende Änderungen an der Datei „pom.xml“ (Maven) oder „build.gradle“ (Gradle) erforderlich:

In „pom.xml“:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

In „build.gradle“:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

MSAL initialisieren

Fügen Sie einen Verweis auf MSAL für Java hinzu, indem Sie am Anfang der Datei, in der Sie MSAL4J verwenden möchten, den folgenden Code hinzufügen:

import com.microsoft.aad.msal4j.*;

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.

Nächste Schritte

Eine ausführlichere Erläuterung zum Entwickeln von Web-Apps, die Benutzer bei Microsoft Identity Platform anmelden, finden Sie in unserer mehrteiligen Szenarioreihe: