Nasazení aplikací EAP Java JBoss do služby Aplikace Azure Service
V tomto článku se dozvíte, jak nasadit aplikaci JBoss EAP s přihlášením pomocí účtu Microsoft Entra do služby Aplikace Azure Service.
Tento článek předpokládá, že jste dokončili jeden z následujících článků pouze pomocí karty Spustit místně a teď chcete nasadit do Azure. Tyto pokyny jsou stejné jako pokyny na kartě Nasazení do Azure v těchto článcích:
- Povolení přihlašování pro aplikace EAP Java JBoss pomocí Microsoft Entra ID
- Povolení přihlašování pro aplikace Java JBoss EAP pomocí MSAL4J s Azure Active Directory B2C
- Povolení aplikací EAP Java JBoss pro přihlášení uživatelů a přístup k Microsoft Graphu
- Zabezpečení aplikací EAP Java JBoss pomocí rolí a deklarací identity rolí
- Zabezpečení aplikací EAP Java JBoss pomocí skupin a deklarací identity skupin
Požadavky
Modul plug-in Maven pro aplikace Aplikace Azure Service
Pokud maven není vaším upřednostňovaným nástrojem pro vývoj, projděte si následující podobné kurzy, které používají jiné nástroje:
Konfigurace modulu plug-in Maven
Proces nasazení do služby Aplikace Azure Service používá vaše přihlašovací údaje Azure z Azure CLI automaticky. Pokud se Azure CLI nenainstaluje místně, pak se modul plug-in Maven ověří pomocí OAuth nebo přihlášení zařízení. Další informace najdete v tématu ověřování pomocí modulů plug-in Maven.
Ke konfiguraci modulu plug-in použijte následující postup:
Spuštěním příkazu Maven zobrazeného vedle konfigurace nasazení Tento příkaz vám pomůže nastavit operační systém služby App Service, verzi Javy a verzi Tomcat.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
Pokud chcete vytvořit novou konfiguraci spuštění, stiskněte Y a pak stiskněte Enter.
Pro definování hodnoty pro operační systém stiskněte 2 pro Linux a pak stiskněte Enter.
Pro definici hodnoty javaVersion stiskněte 2 pro Javu 11 a pak stiskněte Enter.
Pro define value for webContainer, press 1 for JBosseap7, then press Enter.
Pokud chcete definovat hodnotu pro pricingTier, stiskněte Enter a vyberte výchozí úroveň P1v3 .
Potvrďte akci stisknutím klávesy Y a pak stiskněte Enter.
Následující příklad ukazuje výstup procesu nasazení:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707220080695
ResourceGroup : msal4j-servlet-auth-1707220080695-rg
Region : centralus
PricingTier : P1v3
OS : Linux
Java Version: Java 11
Web server stack: JBosseap 7
Deploy to slot : false
Confirm (Y/N) [Y]:
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.196 s
[INFO] Finished at: 2024-02-06T11:48:16Z
[INFO] ------------------------------------------------------------------------
Jakmile potvrdíte volby, modul plug-in přidá konfiguraci modulu plug-in a požadované nastavení do souboru pom.xml projektu a nakonfiguruje aplikaci tak, aby běžela ve službě Aplikace Azure Service.
Relevantní část souboru pom.xml by měla vypadat podobně jako v následujícím příkladu:
<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>
Konfigurace služby App Service můžete upravit přímo ve vašem pom.xml. Některé běžné konfigurace jsou uvedeny v následující tabulce:
Vlastnost | Požadováno | Popis | Verze |
---|---|---|---|
schemaVersion |
false (nepravda) | Verze schématu konfigurace. Podporované hodnoty jsou v1 a v2 . |
1.5.2 |
subscriptionId |
false (nepravda) | ID předplatného. | 0.1.0+ |
resourceGroup |
true | Skupina prostředků Azure pro vaši aplikaci. | 0.1.0+ |
appName |
true | Název aplikace. | 0.1.0+ |
region |
false (nepravda) | Oblast, ve které se má aplikace hostovat. Výchozí hodnota je centralus . Platné oblasti najdete v tématu Podporované oblasti. |
0.1.0+ |
pricingTier |
false (nepravda) | Cenová úroveň vaší aplikace. Výchozí hodnota je P1v2 pro produkční úlohu. Doporučená minimální hodnota pro vývoj a testování v Javě je B2 . Další informace najdete v tématu Ceny služby App Service. |
0.1.0+ |
runtime |
false (nepravda) | Konfigurace prostředí runtime. Další informace najdete v tématu Podrobnosti o konfiguraci. | 0.1.0+ |
deployment |
false (nepravda) | Konfigurace nasazení. Další informace najdete v tématu Podrobnosti o konfiguraci. | 0.1.0+ |
Úplný seznam konfigurací najdete v referenční dokumentaci k modulu plug-in. Všechny moduly plug-in Azure Maven sdílejí společnou sadu konfigurací. Informace o těchto konfiguracích najdete v tématu Běžné konfigurace. Informace o konfiguracích specifických pro službu Aplikace Azure Najdete v tématu Aplikace Azure: Podrobnosti konfigurace.
Nezapomeňte uložit stranou appName
a resourceGroup
hodnoty pro pozdější použití.
Příprava aplikace na nasazení
Když nasadíte aplikaci do služby App Service, adresa URL pro přesměrování se změní na adresu URL pro přesměrování vaší nasazené instance aplikace. Pomocí následujícího postupu změňte tato nastavení v souboru vlastností:
Přejděte do souboru authentication.properties vaší aplikace a změňte hodnotu
app.homePage
na název domény nasazené aplikace, jak je znázorněno v následujícím příkladu. Pokud jste například v předchozím kroku zvoliliexample-domain
název aplikace, musíte tuto hodnotu použíthttps://example-domain.azurewebsites.net
app.homePage
. Ujistěte se, že jste také změnili protokol zhttp
nahttps
.# 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
Po uložení tohoto souboru pomocí následujícího příkazu znovu sestavte aplikaci:
mvn clean package
Aktualizace registrace aplikace Microsoft Entra ID
Vzhledem k tomu, že identifikátor URI přesměrování se změní na nasazenou aplikaci na službu Aplikace Azure Service, musíte také změnit identifikátor URI přesměrování v registraci aplikace Microsoft Entra ID. K provedení této změny použijte následující postup:
Přejděte na stránku Microsoft identity platform pro vývojáře Registrace aplikací.
Pomocívyhledávacího
java-servlet-webapp-authentication
Výběrem jejího názvu otevřete registraci aplikace.
Zvolte Ověřování z nabídky příkazů.
V části Identifikátory URI pro přesměrování webu - vyberte Přidat identifikátor URI.
Vyplňte identifikátor URI aplikace a připojte
/auth/redirect
ho ,https://<your-app-name>.azurewebsites.net/auth/redirect
například .Zvolte Uložit.
Nasazení aplikace
Teď jste připraveni nasadit aplikaci do služby Aplikace Azure Service. Pomocí následujícího příkazu se ujistěte, že jste přihlášení ke svému prostředí Azure a spusťte nasazení:
az login
S veškerou konfigurací připravenou v souboru pom.xml teď můžete pomocí následujícího příkazu nasadit aplikaci v Javě do Azure:
mvn package azure-webapp:deploy
Po dokončení nasazení je vaše aplikace připravená na http://<your-app-name>.azurewebsites.net/
adrese . Otevřete adresu URL v místním webovém prohlížeči, kde byste měli vidět úvodní stránku msal4j-servlet-auth
aplikace.
Odebrání tajných hodnot
Soubor authentication.properties aplikace aktuálně obsahuje hodnotu tajného klíče klienta v parametru aad.secret
. Tuto hodnotu v tomto souboru není vhodné zachovat. Můžete také riskovat, pokud ho potvrdíte do úložiště Git.
Jako další krok zabezpečení můžete tuto hodnotu uložit ve službě Azure Key Vault a pomocí odkazů služby Key Vault ji zpřístupnit ve vaší aplikaci.
Pomocí následujících kroků přesuňte hodnotu aad.secret
do služby Key Vault a použijte ji ve svém kódu:
K vytvoření instance služby Azure Key Vault použijte následující příkazy:
export RESOURCE_GROUP=<your-resource-group-name> export KEY_VAULT=<your-key-vault-name> az keyvault create \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT
Pomocí následujících příkazů přidejte do trezoru klíčů hodnotu tajného
aad.secret
kódu jako nový tajný klíč:az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"
Teď potřebujete aplikaci udělit přístup k trezoru klíčů. K provedení této úlohy nejprve vytvořte novou identitu aplikace pomocí následujících příkazů:
export WEB_APP_NAME=<your-web-app-name> az webapp identity assign \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME
Pomocí následujících příkazů dejte této identitě
get
alist
oprávnění k tajným kódům ve službě Key Vault: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
Pomocí následujícího příkazu vytvořte v aplikaci nastavení aplikace, které používá odkaz na trezor klíčů na tajný klíč ve vašem trezoru klíčů. Toto nastavení zpřístupňuje hodnotu tajného kódu vaší aplikaci jako proměnnou prostředí.
az webapp config appsettings set \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
K načtení této hodnoty z proměnných prostředí použijte následující kód. V souboru \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java na řádku 41 změňte aktuální příkaz na následující řádek:
public static final String SECRET = System.getenv("AADSECRET");
Klíč a hodnotu teď můžete odstranit
aad.secret
ze souboru authentication.properties .Znovu sestavte kód pomocí následujícího příkazu:
mvn clean package
Znovu nasaďte aplikaci pomocí následujícího příkazu:
mvn package azure-webapp:deploy
Vaše nasazení je teď hotové.