Java JBoss EAP-apps implementeren in Azure App Service
In dit artikel leest u hoe u een JBoss EAP-app implementeert met aanmelding door een Microsoft Entra-account in Azure App Service.
In dit artikel wordt ervan uitgegaan dat u een van de volgende artikelen hebt voltooid met behulp van alleen het tabblad Lokaal uitvoeren en u nu wilt implementeren in Azure. Deze instructies zijn hetzelfde als de instructies in het tabblad Implementeren in Azure in deze artikelen:
- aanmelding inschakelen voor Java JBoss EAP-apps met behulp van Microsoft Entra ID
- Aanmelding inschakelen voor Java JBoss EAP-apps met MSAL4J met Azure Active Directory B2C
- Java JBoss EAP-apps inschakelen om gebruikers aan te melden en toegang te krijgen tot Microsoft Graph
- Java JBoss EAP-apps beveiligen met behulp van rollen en rolclaims
- Java JBoss EAP-apps beveiligen met behulp van groepen en groepsclaims
Voorwaarden
Maven-invoegtoepassing voor Azure App Service-apps
Als Maven niet uw favoriete ontwikkelhulpprogramma is, raadpleegt u de volgende vergelijkbare zelfstudies die gebruikmaken van andere hulpprogramma's:
De Maven-invoegtoepassing configureren
Het implementatieproces naar Azure App Service maakt automatisch gebruik van uw Azure-referenties vanuit de Azure CLI. Als de Azure CLI niet lokaal is geïnstalleerd, verifieert de Maven-invoegtoepassing zich met OAuth of apparaataanmelding. Zie verificatie met Maven-invoegtoepassingenvoor meer informatie.
Gebruik de volgende stappen om de invoegtoepassing te configureren:
Voer de Maven-opdracht uit die wordt weergegeven naast het configureren van de implementatie. Met deze opdracht kunt u het App Service-besturingssysteem, de Java-versie en de Tomcat-versie instellen.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
Druk voor Nieuwe uitvoeringsconfiguratie makenop Y-en druk vervolgens op Enter-.
Druk voor Waarde definiëren voor het besturingssysteemop 2 voor Linux en druk vervolgens op Enter-.
Druk op om de waarde voor javaVersion te definiëren, druk op 2 voor Java 11 en druk vervolgens op Enter.
Druk voor Waarde definiëren voor webContainerop 1 voor JBosseap7 en druk vervolgens op Enter-.
Druk voor Waarde definiëren voor pricingTierop Enter- om de standaardlaag P1v3 te selecteren.
Druk voor Bevestigenop Yen druk vervolgens op Enter.
In het volgende voorbeeld ziet u de uitvoer van het implementatieproces:
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] ------------------------------------------------------------------------
Nadat u uw keuzes hebt bevestigd, voegt de invoegtoepassing de configuratie van de invoegtoepassing en de vereiste instellingen toe aan het pom.xml-bestand van uw project om uw app te configureren voor uitvoering in Azure App Service.
Het relevante gedeelte van het pom.xml-bestand moet er ongeveer uitzien als in het volgende voorbeeld:
<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>
U kunt de configuraties voor App Service rechtstreeks in uw pom.xmlwijzigen. Enkele algemene configuraties worden vermeld in de volgende tabel:
Eigenschap | Vereist | Beschrijving | Versie |
---|---|---|---|
schemaVersion |
vals | De versie van het configuratieschema. Ondersteunde waarden zijn v1 en v2 . |
1.5.2 |
subscriptionId |
vals | De ID van het abonnement. | 0.1.0+ |
resourceGroup |
waar | De Azure-resourcegroep voor uw app. | 0.1.0+ |
appName |
waar | De naam van uw app. | 0.1.0+ |
region |
vals | De regio waarin u uw app wilt hosten. De standaardwaarde is centralus . Zie Ondersteunde regio'svoor geldige regio's. |
0.1.0+ |
pricingTier |
vals | De prijscategorie voor uw app. De standaardwaarde is P1v2- voor een productieworkload. De aanbevolen minimumwaarde voor Java-ontwikkeling en -testen is B2 . Zie App Service-prijzen voor meer informatie |
0.1.0+ |
runtime |
vals | De configuratie van de runtime-omgeving. Zie Configuratiedetailsvoor meer informatie. | 0.1.0+ |
deployment |
vals | De uitrolconfiguratie. Zie Configuratiedetailsvoor meer informatie. | 0.1.0+ |
Zie de referentiedocumentatie van de invoegtoepassing voor de volledige lijst met configuraties. Alle Azure Maven-invoegtoepassingen delen een algemene set configuraties. Zie Common Configurationsvoor deze configuraties. Zie Azure-app voor configuraties die specifiek zijn voor Azure App Service: Configuratiedetails.
Bewaar de appName
en resourceGroup
waarden voor later gebruik.
De app voorbereiden voor implementatie
Wanneer u uw toepassing implementeert in App Service, verandert uw omleidings-URL in de omleidings-URL van uw geïmplementeerde app-exemplaar. Gebruik de volgende stappen om deze instellingen in het eigenschappenbestand te wijzigen:
Navigeer naar het bestand authentication.properties van uw app bestand en wijzig de waarde van
app.homePage
in de domeinnaam van uw geïmplementeerde app, zoals wordt weergegeven in het volgende voorbeeld. Als u bijvoorbeeldexample-domain
hebt gekozen voor de naam van uw app in de vorige stap, moet u nuhttps://example-domain.azurewebsites.net
gebruiken voor deapp.homePage
waarde. Zorg ervoor dat u het protocol ook hebt gewijzigd vanhttp
inhttps
.# 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
Nadat u dit bestand hebt opgeslagen, gebruikt u de volgende opdracht om uw app opnieuw te bouwen:
mvn clean package
De registratie van uw Microsoft Entra ID-app bijwerken
Omdat de omleidings-URI wordt gewijzigd in uw geïmplementeerde app in Azure App Service, moet u ook de omleidings-URI wijzigen in de registratie van uw Microsoft Entra ID-app. Gebruik de volgende stappen om deze wijziging aan te brengen:
Navigeer naar het Microsoft Identity Platform voor ontwikkelaars App-registraties-pagina.
Gebruik het zoekvak om te zoeken naar uw app-registratie, bijvoorbeeld
java-servlet-webapp-authentication
.Open uw app-registratie door de naam te selecteren.
Selecteer Authentication in het menu.
Selecteer in de sectie Web - Redirect URI's de optie Voeg URI toe.
Vul de URI van uw app in, waarbij u
/auth/redirect
toevoegt, bijvoorbeeldhttps://<your-app-name>.azurewebsites.net/auth/redirect
.Selecteer opslaan.
De app implementeren
U bent nu klaar om uw app te implementeren in Azure App Service. Gebruik de volgende opdracht om ervoor te zorgen dat u bent aangemeld bij uw Azure-omgeving om de implementatie uit te voeren:
az login
Nu alle configuraties klaar zijn in uw pom.xml-bestand, kunt u nu de volgende opdracht gebruiken om uw Java-app te implementeren in Azure:
mvn package azure-webapp:deploy
Nadat de implementatie is voltooid, is uw toepassing klaar op http://<your-app-name>.azurewebsites.net/
. Open de URL met uw lokale webbrowser, waar u de startpagina van de msal4j-servlet-auth
toepassing zou moeten zien.
Geheime waarden verwijderen
Het bestand authentication.properties van de toepassing bevat momenteel de waarde van uw clientgeheim in de parameter aad.secret
. Het is niet raadzaam om deze waarde in dit bestand te bewaren. Mogelijk neemt u ook een risico als u deze doorvoert in een Git-opslagplaats.
Als extra beveiligingsstap kunt u deze waarde opslaan in Azure Key Vault- en Key Vault-verwijzingen gebruiken om deze beschikbaar te maken in uw toepassing.
Gebruik de volgende stappen om de waarde van aad.secret
naar Key Vault te verplaatsen en deze in uw code te gebruiken:
Gebruik de volgende opdrachten om een Azure Key Vault-exemplaar te maken:
export RESOURCE_GROUP=<your-resource-group-name> export KEY_VAULT=<your-key-vault-name> az keyvault create \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT
Gebruik de volgende opdrachten om de geheime waarde van
aad.secret
als een nieuw geheim toe te voegen aan uw sleutelkluis:az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"
U moet nu uw app toegang geven tot uw sleutelkluis. Als u deze taak wilt uitvoeren, maakt u eerst een nieuwe identiteit voor uw app met behulp van de volgende opdrachten:
export WEB_APP_NAME=<your-web-app-name> az webapp identity assign \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME
Gebruik de volgende opdrachten om deze identiteit
get
enlist
machtiging te geven voor de geheimen in uw 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
Gebruik de volgende opdracht om een toepassingsinstelling te maken in uw app die gebruikmaakt van een sleutelkluisverwijzing naar het geheim in uw sleutelkluis. Met deze instelling wordt de waarde van het geheim beschikbaar voor uw app als omgevingsvariabele.
az webapp config appsettings set \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
Gebruik de volgende code om deze waarde uit de omgevingsvariabelen te laden. Wijzig in het bestand \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java, op regel 41, de huidige instructie naar de volgende regel:
public static final String SECRET = System.getenv("AADSECRET");
U kunt nu de
sleutel en waarde uit het bestand authentication.properties verwijderen. Bouw de code opnieuw met behulp van de volgende opdracht:
mvn clean package
Implementeer de toepassing opnieuw met behulp van de volgende opdracht:
mvn package azure-webapp:deploy
Uw implementatie is nu voltooid.