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:
- Java Development Kit (JDK) 8 oder höher.
- Maven.
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
- Wechseln Sie mindestens als Cloudanwendungsadministrator zur Schnellstartbenutzeroberfläche Microsoft Entra Admin Center – App-Registrierungen.
- Geben Sie einen Namen für Ihre Anwendung ein, und klicken Sie auf Registrieren.
- 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:
- Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloudanwendungsadministrator an.
- 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.
- Wechseln Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie Neue Registrierung aus.
- 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.
- Wählen Sie Registrieren.
- 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.
- Wählen Sie unter Verwalten die Option Authentifizierung aus.
- Wählen Sie Plattform hinzufügen>Web aus.
- Geben Sie im Abschnitt Umleitungs-URIs den URI
https://localhost:8443/msal4jsample/secure/aad
ein. - Wählen Sie Konfigurierenaus.
- Geben Sie im Abschnitt Web unter Umleitungs-URIs den URI
https://localhost:8443/msal4jsample/graph/me
als zweiten Umleitungs-URI ein. - 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.
- Geben Sie eine Schlüsselbeschreibung (z. B. App-Geheimnis) ein, behalten Sie den Standardablauf bei, und wählen Sie Hinzufügen aus.
- 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
Extrahieren Sie die ZIP-Datei in einen lokalen Ordner.
Optional. Öffnen Sie das Beispiel in dieser Umgebung, wenn Sie eine integrierte Entwicklungsumgebung verwenden.
Ö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
undaad.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.
- 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
- 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..
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.
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.
Ö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); } }
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"/>
Öffnen Sie ein Eingabeaufforderungsfenster. Navigieren Sie zum Stammordner dieses Beispiels (in dem sich die Datei
pom.xml
befindet), und führen Siemvn 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.
- Um die Datei
- Mit diesem Befehl wird eine Datei namens
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
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: