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 Tomcat-App mit der Anmeldung mit dem Microsoft Entra-Konto bei Azure App Service bereitstellen.
In diesem Artikel wird davon ausgegangen, dass Sie einen der folgenden Dokumente nur mit der Registerkarte "Lokal ausführen" abgeschlossen haben und jetzt in Azure deployen möchten. Diese Anweisungen entsprechen denen auf der Registerkarte Bereitstellen in Azure in diesen Artikeln:
- Aktivieren der Anmeldung für Java Tomcat-Apps mithilfe der Microsoft Entra-ID
- Aktivieren der Anmeldung für Java Tomcat-Apps mit MSAL4J mit Azure Active Directory B2C
- Aktivieren von Java Tomcat-Apps zum Anmelden von Benutzern und Zugreifen auf Microsoft Graph
- Sichern von Java Tomcat-Apps mithilfe von Rollen und Rollenansprüchen
- Sichern von Java Tomcat-Apps mithilfe von Gruppen und Gruppenansprüchen
Voraussetzungen
Maven-Plug-In für Azure App Service-Apps
Wenn Maven nicht Ihr bevorzugtes Entwicklungstool ist, lesen Sie die folgenden ähnlichen Lernprogramme, die andere Tools verwenden:
Konfigurieren des Maven-Plug-Ins
Wenn Sie azure App Service bereitstellen, verwendet die Bereitstellung automatisch Ihre Azure-Anmeldeinformationen aus der Azure CLI. Wenn die Azure CLI nicht lokal installiert ist, führt das Maven-Plug-In die Authentifizierung über OAuth oder die Geräteanmeldung durch. Weitere Informationen finden Sie unter Authentifizierung mit Maven-Plug-Ins.
Führen Sie die folgenden Schritte aus, um das Plug-In zu konfigurieren:
Führen Sie den folgenden Befehl aus, um die Bereitstellung zu konfigurieren. Mit diesem Befehl können Sie das Betriebssystem Azure App Service, die Java-Version und die Tomcat-Version einrichten.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
Drücken Sie für Neue Ausführungskonfiguration erstellen die Taste Y und dann die Eingabetaste.
Drücken Sie zum Definieren des Werts für das Betriebssystem1 für Windows oder 2 für Linux, und drücken Sie dann die EINGABETASTE.
Drücken Sie für Wert für javaVersion definieren die Taste 2 für Java 11 und dann die Eingabetaste.
Drücken Sie für Wert definieren für webContainer die Taste 4 für Tomcat 9.0 und dann die Eingabetaste.
Drücken Sie die EINGABETASTE, um den Wert für "pricingTier" zu definieren und die Standardebene P1v2 auszuwählen.
Drücken Sie Bestätigen mit Y und dann Enter.
Das folgende Beispiel zeigt das Ergebnis des Bereitstellungsprozesses:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707209552268
ResourceGroup : msal4j-servlet-auth-1707209552268-rg
Region : centralus
PricingTier : P1v2
OS : Linux
Java Version: Java 11
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: [INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.112 s
[INFO] Finished at: 2024-02-06T08:53:02Z
[INFO] ------------------------------------------------------------------------
Nachdem Sie Ihre Auswahl bestätigt haben, fügt das Plug-In das erforderliche Plug-In-Element und die Einstellungen zur pom.xml Datei Ihres Projekts hinzu, um Ihre App für die Ausführung in Azure App Service zu konfigurieren.
Der relevante Teil der dateipom.xml sollte dem folgenden Beispiel ähneln:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
Sie können die Konfigurationen für App Service direkt in der Datei pom.xml ändern. Einige gängige Konfigurationen sind in der folgenden Tabelle aufgeführt:
Eigentum | Erforderlich | BESCHREIBUNG |
---|---|---|
subscriptionId |
Falsch | Die Abonnement-ID. |
resourceGroup |
Wahr | Die Azure-Ressourcengruppe für Ihre App. |
appName |
Wahr | Der Name Ihrer App. |
region |
Falsch | Die Region, in der Ihre App gehostet werden soll. Der Standardwert ist centralus . Gültige Regionen finden Sie unter "Unterstützte Regionen". |
pricingTier |
Falsch | Das Preisniveau für Ihre App. Der Standardwert ist P1v2 für eine Produktionsauslastung. Der empfohlene Mindestwert für die Java-Entwicklung und -Tests ist B2 . Weitere Informationen finden Sie unter App Service Pricing. |
runtime |
Falsch | Die Laufzeitumgebungskonfiguration. Weitere Informationen finden Sie unter Konfigurationsdetails. |
deployment |
Falsch | Die Bereitstellungskonfiguration. Weitere Informationen finden Sie unter Konfigurationsdetails. |
Eine vollständige Liste der Konfigurationen finden Sie in der Dokumentation zur Plug-In-Referenz. Alle Azure Maven-Plug-Ins teilen einen gemeinsamen Satz von Konfigurationen. Informationen zu diesen Konfigurationen finden Sie unter "Allgemeine Konfigurationen". Konfigurationen speziell für Azure App Service finden Sie unter Azure App: Konfigurationsdetails.
Achten Sie darauf, die Werte für appName
und resourceGroup
für eine spätere Verwendung beiseite zu legen.
Vorbereiten der App für die Bereitstellung
Wenn Sie Ihre Anwendung im App-Dienst bereitstellen, ändert sich ihre Umleitungs-URL in die Umleitungs-URL Ihrer bereitgestellten App-Instanz. Führen Sie die folgenden Schritte aus, um diese Einstellungen in der Eigenschaftendatei zu ändern:
Navigieren Sie zur Datei authentication.properties, und ändern Sie den Wert
app.homePage
des Domänennamens Ihrer bereitgestellten App hinzu, wie im folgenden Beispiel gezeigt. Wenn Sie z. B. im vorherigen Schrittexample-domain
als Ihren App-Namen ausgewählt haben, müssen Sie jetzthttps://example-domain.azurewebsites.net
für denapp.homePage
Wert verwenden. Stellen Sie sicher, dass Sie das Protokoll auch vonhttp
aufhttps
geändert haben.# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.net
Verwenden Sie nach dem Speichern dieser Datei den folgenden Befehl, um Ihre App neu zu erstellen:
mvn clean package
Aktualisieren Ihrer Microsoft Entra ID-App-Registrierung
Da sich der Umleitungs-URI für die App, die Sie für den Azure App Service bereitgestellt haben, ändert, müssen Sie auch den Umleitungs-URI in Ihrer Microsoft Entra ID-App-Registrierung ändern. Führen Sie die folgenden Schritte aus, um diese Änderung vorzunehmen:
Navigieren Sie zur Seite App-Registrierungen von Microsoft Identity Platform für Entwickler.
Verwenden Sie das Suchfeld, um nach Ihrer App-Registrierung zu suchen , z. B.
java-servlet-webapp-authentication
.Öffnen Sie die App-Registrierung, indem Sie den Namen auswählen.
Wählen Sie im oberen Menü Authentifizierung aus.
Wählen Sie unter Web - Umleitungs-URIs die Option URI hinzufügen aus.
Tragen Sie die URI Ihrer App ein, indem Sie
/auth/redirect
anhängen – z. B.https://<your-app-name>.azurewebsites.net/auth/redirect
.Wählen Sie Speichern aus.
Bereitstellen der App
Sie sind jetzt bereit, Ihre App für Azure App Service bereitzustellen. Verwenden Sie den folgenden Befehl, um sicherzustellen, dass Sie bei Ihrer Azure-Umgebung angemeldet sind, um die Bereitstellung auszuführen:
az login
Wenn alle Konfigurationen in Ihrer pom.xml-Datei bereit sind, können Sie jetzt den folgenden Befehl verwenden, um Ihre Java-App in Azure bereitzustellen:
mvn package azure-webapp:deploy
Nach Abschluss der Bereitstellung ist Ihre Anwendung bereit unter http://<your-app-name>.azurewebsites.net/
. Öffnen Sie die URL mit Ihrem lokalen Webbrowser, in dem die Startseite der msal4j-servlet-auth
Anwendung angezeigt werden soll.
Entfernen geheimer Werte
Die Datei "authentication.properties" der Anwendung enthält derzeit den Wert Ihres geheimen Clientschlüssels im aad.secret
Parameter. Es empfiehlt sich nicht, diesen Wert in dieser Datei beizubehalten. Sie können auch ein Risiko eingehen, wenn Sie es auf ein Git-Repository übernehmen.
Als zusätzlicher Sicherheitsschritt können Sie diesen Wert in Azure Key Vault speichern und Key Vault-Verweise verwenden, um ihn in Ihrer Anwendung verfügbar zu machen.
Führen Sie die folgenden Schritte aus, um den Wert von aad.secret
in den Key Vault zu übertragen und anschließend in Ihrem Code zu verwenden.
Verwenden Sie die folgenden Befehle, um eine Azure Key Vault-Instanz zu erstellen:
export RESOURCE_GROUP=<your-resource-group-name> export KEY_VAULT=<your-key-vault-name> az keyvault create \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT
Verwenden Sie die folgenden Befehle, um den Secret-Wert
aad.secret
als neues Secret zu Ihrem Key Vault hinzuzufügen:az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"
Sie müssen nun Ihrer App Zugriff auf Ihren Key Vault geben. Erstellen Sie zunächst mithilfe der folgenden Befehle eine neue Identität für Ihre App:
export WEB_APP_NAME=<your-web-app-name> az webapp identity assign \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME
Verwenden Sie die folgenden Befehle, um dieser Identität
get
undlist
Berechtigung auf die Secrets in Ihrem Key Vault zu geben:export IDENTITY=$(az webapp identity show \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --query principalId \ --output tsv) az keyvault set-policy \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT \ --secret-permissions get list \ --object-id $IDENTITY
Verwenden Sie den folgenden Befehl, um eine Anwendungseinstellung in Ihrer App zu erstellen, die eine Key Vault-Referenz auf das Geheimnis in Ihrem Key Vault verwendet. Mit dieser Einstellung wird der Wert des geheimen Schlüssels für Ihre App als Umgebungsvariable verfügbar.
az webapp config appsettings set \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
Verwenden Sie den folgenden Code, um diesen Wert aus den Umgebungsvariablen zu laden. Ändern Sie in der Datei \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java in Zeile 41 die aktuelle Anweisung in die folgende Zeile:
public static final String SECRET = System.getenv("AADSECRET");
Sie können nun den
aad.secret
Schlüssel und Wert aus der Datei "authentication.properties " löschen.Erstellen Sie den Code mithilfe des folgenden Befehls neu:
mvn clean package
Stellen Sie die Anwendung mithilfe des folgenden Befehls erneut zur Bereitstellung vor:
mvn package azure-webapp:deploy
Die Bereitstellung ist jetzt abgeschlossen.
Mehr Informationen
- MSAL (Microsoft Authentication Library) für Java
- Microsoft Identity Platform (Microsoft Entra ID für Entwickler)
- Schnellstart: Registrieren einer Anwendung bei der Microsoft Identity Platform
- Grundlegendes zu Einwilligungserfahrungen für Microsoft Entra ID-Anwendungen
- Benutzer- und Administratorzustimmung verstehen
- MSAL Codebeispiele