Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan helyezhet üzembe Egy Tomcat-alkalmazást a Microsoft Entra-fiók által az Azure App Service-be való bejelentkezéssel.
Ez a cikk feltételezi, hogy az alábbi cikkek közül az egyiket csak a Helyi futtatás lapon teljesítette, és most az Azure-ba történő üzembe helyezést szeretné elvégezni. Ezek az utasítások ugyanazok, mint a Üzembe helyezés az Azure-ban lapon szereplők ezekben a cikkekben:
- Java Tomcat-alkalmazások bejelentkezésének engedélyezése a Microsoft Entra ID által
- Bejelentkezés engedélyezése Java Tomcat-alkalmazásokhoz az MSAL4J és az Azure Active Directory B2C segítségével
- A Java Tomcat-alkalmazások engedélyezése a felhasználók bejelentkezésére és a Microsoft Graph elérésére
- Java Tomcat-alkalmazások védelme szerepkörökkel és szerepkör-jogcímekkel
- Java Tomcat-alkalmazások védelme csoportok és csoportjogcímek használatával
Előfeltételek
Maven beépülő modul az Azure App Service alkalmazásokhoz
Ha nem a Maven az előnyben részesített fejlesztési eszköz, tekintse meg az alábbi hasonló oktatóanyagokat, amelyek más eszközöket használnak:
A Maven beépülő modul konfigurálása
Az Azure App Service-ben való üzembe helyezéskor az üzembe helyezés automatikusan az Azure CLI-ből származó Azure-hitelesítő adatokat használja. Ha az Azure CLI nincs helyileg telepítve, akkor a Maven beépülő modul az OAuth vagy az eszköz bejelentkezésével hitelesít. További információ található a Maven beépülő modulok hitelesítéséről: .
A beépülő modul konfigurálásához kövesse az alábbi lépéseket:
Futtassa a következő parancsot az üzembe helyezés konfigurálásához. Ez a parancs segít az Azure App Service operációs rendszerének, a Java-verziónak és a Tomcat-verziónak a beállításában.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:configHa Új futtatási konfiguráció létrehozása, nyomja le a Ygombot, majd nyomja le az Enterbillentyűt.
Ha Operációsrendszer-értékének meghatározása, nyomja le 1 windowsos vagy 2 Linux esetén, majd nyomja le Enterbillentyűt.
A javaVersionértékének definiálása
esetén nyomja le a Java 11 2 billentyűkombinációt, majd nyomja leEnter billentyűt.A WebContainerértékének meghatározásához, nyomja le a 4 billentyűt a Tomcat 9.0 esetén, majd nyomja le az Enterbillentyűt.
A PricingTierértékének meghatározásához nyomja le az Enter billentyűkombinációt az alapértelmezett P1v2 szint kiválasztásához.
Nyomja le a Erősítse megbillentyűt, majd nyomja le a Ybillentyűt, végül nyomja le a Enterbillentyűt.
Az alábbi példa az üzembehelyezési folyamat kimenetét mutatja be:
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] ------------------------------------------------------------------------
Miután megerősítette a választási lehetőségeket, a beépülő modul hozzáadja a szükséges beépülő modulelemet és -beállításokat a projekt pom.xml fájljához, hogy konfigurálja az alkalmazást az Azure App Service-ben való futtatásra.
A pom.xml fájl releváns részének az alábbi példához hasonlóan kell kinéznie:
<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>
Közvetlenül a pom.xml-ban módosíthatja az App Service konfigurációit. Néhány gyakori konfiguráció az alábbi táblázatban található:
| Ingatlan | Szükséges | Leírás |
|---|---|---|
subscriptionId |
téves | Az előfizetés azonosítója. |
resourceGroup |
igaz | Az alkalmazás Azure-erőforráscsoportja. |
appName |
igaz | Az alkalmazás neve. |
region |
téves | Az a régió, amelyben az alkalmazást üzemeltetni szeretné. Az alapértelmezett érték a centralus. Érvényes régiókat Támogatott régiókcímű témakörben talál. |
pricingTier |
téves | Az alkalmazás tarifacsomagja. Az alapértelmezett érték egy termelési feladathoz: P1v2. A Java-fejlesztés és -tesztelés ajánlott minimális értéke B2. További információért lásd: App Service díjszabás. |
runtime |
téves | A futtatókörnyezet konfigurációja. További információ: Konfiguráció részletei. |
deployment |
téves | Az üzembehelyezési konfiguráció. További információ: Konfiguráció részletei. |
A konfigurációk teljes listáját a beépülő modul referenciadokumentációjában találja. Az összes Azure Maven beépülő modul egy közös konfigurációs készletet használ. Ezekről a konfigurációkról Gyakori konfigurációkcímű témakörben olvashat. Az Azure App Service-hez kapcsolódó konfigurációkért lásd Azure-alkalmazás: Konfiguráció részletei.
Ne felejtse el félretenni a appName és resourceGroup értékeket későbbi használatra.
Az alkalmazás előkészítése az üzembe helyezéshez
Amikor üzembe helyezi az alkalmazást az App Service-ben, az átirányítási URL-cím az üzembe helyezett alkalmazáspéldány átirányítási URL-címére változik. A tulajdonságok fájljában a következő lépésekkel módosíthatja ezeket a beállításokat:
Keresse meg az alkalmazás authentication.properties fájlját, és módosítsa a
app.homePageértékét az üzembe helyezett alkalmazás tartománynevére az alábbi példában látható módon. Ha például az előző lépésben az alkalmazás nevének aexample-domain-t választotta, akkor most ahttps://example-domain.azurewebsites.net-et kell használnia aapp.homePageértékéhez. Győződjön meg arról, hogy a protokollthttp-rólhttps-ra módosította.# 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.netA fájl mentése után használja az alábbi parancsot az alkalmazás újraépítéséhez:
mvn clean package
A Microsoft Entra ID alkalmazásregisztráció frissítése
Mivel a telepített alkalmazás átirányítási URI-ja az Azure App Service-be módosul, az átirányítási URI-t is módosítania kell a Microsoft Entra ID-alkalmazásregisztrációban. A módosítás végrehajtásához kövesse az alábbi lépéseket:
Navigáljon a Microsoft identitásplatform fejlesztőknek alkalmazásregisztrációk oldalára.
A keresőmezővel keresse meg az alkalmazásregisztrációt – például
java-servlet-webapp-authentication.Nyissa meg az alkalmazásregisztrációt a nevének kiválasztásával.
Válassza Hitelesítési lehetőséget a menüből.
A Web - Átirányítási URI-k szakaszban válassza az URI-hozzáadása lehetőséget.
Töltse ki az alkalmazás URI-ját, hozzáfűzve
/auth/redirect- példáulhttps://<your-app-name>.azurewebsites.net/auth/redirect.Válassza Mentéslehetőséget.
Az alkalmazás üzembe helyezése
Most már készen áll az alkalmazás Azure App Service-ben való üzembe helyezésére. Az alábbi paranccsal győződjön meg arról, hogy bejelentkezett az Azure-környezetbe az üzembe helyezés végrehajtásához:
az login
Ha az összes konfiguráció készen áll a pom.xml fájlban, a következő paranccsal helyezheti üzembe a Java-alkalmazást az Azure-ban:
mvn package azure-webapp:deploy
Az üzembe helyezés befejezése után az alkalmazás készen áll a http://<your-app-name>.azurewebsites.net/. Nyissa meg az URL-címet a helyi webböngészővel, ahol meg kell jelennie a msal4j-servlet-auth alkalmazás kezdőlapjának.
Titkos kódok eltávolítása
Az alkalmazás authentication.properties fájlja jelenleg az ügyfél titkos kódjának értékét tartalmazza a aad.secret paraméterben. Ez az érték nem ajánlott ebben a fájlban tartani. Kockázatot is vállalhat, ha véglegesíti azt egy Git-adattárban.
Biztonsági extra lépésként ezt az értéket Azure Key Vault tárolhatja, és Key Vault-referenciákkal elérhetővé teheti az alkalmazásban.
A következő lépésekkel helyezze át a aad.secret értékét a Key Vaultba, és használja azt a kódban:
Azure Key Vault-példány létrehozásához használja a következő parancsokat:
export RESOURCE_GROUP=<your-resource-group-name> export KEY_VAULT=<your-key-vault-name> az keyvault create \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULTA következő parancsokkal új titkos kódként adja hozzá a
aad.secrettitkos értékét a kulcstartóhoz:az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"Most hozzáférést kell adnia az alkalmazásnak a kulcstárolóhoz. A feladat elvégzéséhez először hozzon létre egy új identitást az alkalmazáshoz az alábbi parancsokkal:
export WEB_APP_NAME=<your-web-app-name> az webapp identity assign \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAMEAz alábbi parancsokkal adhat engedélyt ennek az identitásnak
getéslistszámára, hogy hozzáférjenek a Key Vault titkaihoz.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 $IDENTITYAz alábbi paranccsal hozzon létre az alkalmazásában egy olyan alkalmazásbeállítást, amely kulcstár hivatkozást használ a kulcstárban lévő titokhoz. Ez a beállítás környezeti változóként teszi elérhetővé az alkalmazás számára a titkos kód értékét.
az webapp config appsettings set \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'Az alábbi kóddal töltse be ezt az értéket a környezeti változókból. A \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java fájlban a 41. sorban módosítsa az aktuális utasítást a következő sorra:
public static final String SECRET = System.getenv("AADSECRET");Most már törölheti a
aad.secretkulcsot és értéket a authentication.properties fájlból.A kód újraépítése a következő paranccsal:
mvn clean packageAz alkalmazás ismételt üzembe helyezése a következő paranccsal:
mvn package azure-webapp:deploy
Az üzembe helyezés befejeződött.
További információ
- Microsoft Authentication Library (MSAL) a Java-hoz
- Microsoft Identity Platform (Microsoft Entra ID fejlesztőknek)
- rövid útmutató: Alkalmazás regisztrálása a Microsoft identitásplatformon
- A Microsoft Entra ID-alkalmazás hozzájárulási élményének ismertetése
- Felhasználói és rendszergazdai hozzájárulás ismertetése
- MSAL-kódminták