Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du distribuerar en JBoss EAP-app med inloggning av Microsoft Entra-konto till Azure App Service.
Den här artikeln förutsätter att du har slutfört någon av följande artiklar med hjälp av fliken Kör lokalt och att du nu vill distribuera till Azure. De här anvisningarna är desamma som på fliken Distribuera till Azure i följande artiklar:
- Aktivera inloggning för Java JBoss EAP-appar med Microsoft Entra-ID
- Aktivera inloggning för Java JBoss EAP-appar med MSAL4J med Azure Active Directory B2C
- Aktivera Java JBoss EAP-appar för att logga in användare och få åtkomst till Microsoft Graph
- Skydda Java JBoss EAP-appar med hjälp av roller och rollanspråk
- Skydda Java JBoss EAP-appar med hjälp av grupper och gruppanspråk
Förutsättningar
- Maven-plugin-program för Azure App Service-appar - Om Maven inte är det utvecklingsverktyg du föredrar kan du läsa följande liknande självstudier som använder andra verktyg: 
Konfigurera Maven-plugin-programmet
Distributionsprocessen till Azure App Service använder dina Azure-autentiseringsuppgifter från Azure CLI automatiskt. Om Azure CLI inte installeras lokalt autentiseras Maven-plugin-programmet med OAuth eller enhetsinloggning. Mer information finns i autentisering med Maven-plugin-program.
Använd följande steg för att konfigurera plugin-programmet:
- Kör maven-kommandot som visas bredvid för att konfigurera distributionen. Det här kommandot hjälper dig att konfigurera App Service-operativsystemet, Java-versionen och Tomcat-versionen. - mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
- Tryck på Y för Skapa ny körningskonfiguration och tryck sedan på Retur. 
- För Definiera värde för operativsystem trycker du på 2 för Linux och trycker sedan på Retur. 
- För Definiera värde för javaVersion trycker du på 2 för Java 11 och trycker sedan på Retur. 
- För Definiera värde för webContainer trycker du på 1 för JBosseap7 och trycker sedan på Retur. 
- För Definiera värde för pricingTier trycker du på Retur för att välja standardnivån P1v3 . 
- Tryck på Y för Bekräfta och tryck sedan på Retur. 
I följande exempel visas utdata från distributionsprocessen:
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] ------------------------------------------------------------------------
När du har bekräftat dina val lägger plugin-programmet till konfigurationen av plugin-programmet och nödvändiga inställningar i projektets pom.xml-fil för att konfigurera appen så att den körs i Azure App Service.
Den relevanta delen av pom.xml-filen bör se ut ungefär som i följande exempel:
<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>
Du kan ändra konfigurationerna för App Service direkt i pom.xml. Några vanliga konfigurationer visas i följande tabell:
| Fastighet | Krävs | Beskrivning | Utgåva | 
|---|---|---|---|
| schemaVersion | falskt | Versionen av konfigurationsschemat. Värden som stöds är v1ochv2. | 1.5.2 | 
| subscriptionId | falskt | Prenumerations-ID:t. | 0.1.0+ | 
| resourceGroup | sann | Azure-resursgruppen för din app. | 0.1.0+ | 
| appName | sann | Namnet på din app. | 0.1.0+ | 
| region | falskt | Den region där appen ska vara värd. Standardvärdet är centralus. Giltiga regioner finns i Regioner som stöds. | 0.1.0+ | 
| pricingTier | falskt | Prisnivån för din app. Standardvärdet är P1v2 för en produktionsarbetsbelastning. Det rekommenderade minimivärdet för Java-utveckling och -testning är B2. Mer information finns i Priser för App Service | 0.1.0+ | 
| runtime | falskt | Konfigurationen av körningsmiljön. Mer information finns i Konfigurationsinformation. | 0.1.0+ | 
| deployment | falskt | Distributionskonfigurationen. Mer information finns i Konfigurationsinformation. | 0.1.0+ | 
En fullständig lista över konfigurationer finns i referensdokumentationen för plugin-programmet. Alla Azure Maven-plugin-program delar en gemensam uppsättning konfigurationer. De här konfigurationerna finns i Vanliga konfigurationer. Konfigurationer som är specifika för Azure App Service finns i Azure-app: Konfigurationsinformation.
Se till att spara värdena appName och resourceGroup för senare användning.
Förbereda appen för distribution
När du distribuerar programmet till App Service ändras omdirigerings-URL:en till omdirigerings-URL:en för din distribuerade appinstans. Använd följande steg för att ändra de här inställningarna i egenskapsfilen:
- Gå till appens authentication.properties fil och ändra värdet för - app.homePagetill den distribuerade appens domännamn, som du ser i följande exempel. Om du till exempel valde- example-domainför ditt appnamn i föregående steg måste du nu använda- https://example-domain.azurewebsites.netför- app.homePagevärdet. Se till att du också har ändrat protokollet från- httptill- https.- # 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
- När du har sparat den här filen använder du följande kommando för att återskapa din app: - mvn clean package
Uppdatera din Microsoft Entra ID-appregistrering
Eftersom omdirigerings-URI:n ändras till din distribuerade app till Azure App Service måste du också ändra omdirigerings-URI:n i din Microsoft Entra ID-appregistrering. Gör den här ändringen med hjälp av följande steg:
- Gå till sidan för appregistreringar på Microsofts identitetsplattform för utvecklare . 
- Använd sökrutan för att söka efter din appregistrering , till exempel - java-servlet-webapp-authentication.
- Öppna appregistreringen genom att välja dess namn. 
- Markera Autentisering på kommandomenyn. 
- I avsnittet Web - Redirect URI:er väljer du Lägg till URI. 
- Fyll i URI:n för din app och lägg till - /auth/redirect– till exempel- https://<your-app-name>.azurewebsites.net/auth/redirect.
- Välj Spara. 
Driftsätt appen
Nu är du redo att distribuera din app till Azure App Service. Använd följande kommando för att se till att du är inloggad i Azure-miljön för att köra distributionen:
az login
Med all konfiguration klar i din pom.xml-fil kan du nu använda följande kommando för att distribuera din Java-app till Azure:
mvn package azure-webapp:deploy
När distributionen är klar är programmet redo på http://<your-app-name>.azurewebsites.net/. Öppna URL:en med din lokala webbläsare, där du bör se programmets msal4j-servlet-auth startsida.
Ta bort hemliga värden
Filen authentication.properties för programmet innehåller för närvarande värdet för din klienthemlighet i parametern aad.secret . Det är inte bra att behålla det här värdet i den här filen. Du kan också ta en risk om du checkar in den på en Git-lagringsplats.
Som ett extra säkerhetssteg kan du lagra det här värdet i Azure Key Vault och använda Key Vault-referenser för att göra det tillgängligt i ditt program.
Använd följande steg för att flytta värdet aad.secret för till Key Vault och använda det i koden:
- Använd följande kommandon för att skapa en Azure Key Vault-instans: - export RESOURCE_GROUP=<your-resource-group-name> export KEY_VAULT=<your-key-vault-name> az keyvault create \ --resource-group $RESOURCE_GROUP \ --name $KEY_VAULT
- Använd följande kommandon för att lägga till det hemliga värdet för - aad.secreti nyckelvalvet som en ny hemlighet:- az keyvault secret set \ --vault-name $KEY_VAULT \ --name "AADSECRET" \ --value "<the-value-of-your-client-secret>"
- Nu måste du ge din app åtkomst till din key vault. Om du vill utföra den här uppgiften skapar du först en ny identitet för din app med hjälp av följande kommandon: - export WEB_APP_NAME=<your-web-app-name> az webapp identity assign \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME
- Använd följande kommandon för att ge den här identiteten - getoch- listbehörigheten för hemligheterna i ditt 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
- Använd följande kommando för att skapa en programinställning i din app som använder en nyckelvalvsreferens till hemligheten i ditt nyckelvalv. Den här inställningen gör hemlighetens värde tillgängligt för din app som en miljövariabel. - az webapp config appsettings set \ --resource-group $RESOURCE_GROUP \ --name $WEB_APP_NAME \ --settings AADSECRET='@Microsoft.KeyVault(VaultName=$KEY_VAULT;SecretName=AADSECRET)'
- Använd följande kod för att läsa in det här värdet från miljövariablerna. Ändra den aktuella instruktionen till följande rad på rad 41 i filen \src\main\java\com\microsoft\azuresamples\msal4j\helpers\Config.java : - public static final String SECRET = System.getenv("AADSECRET");
- Nu kan du ta bort - aad.secretnyckeln och värdet från filen authentication.properties .
- Återskapa koden med hjälp av följande kommando: - mvn clean package
- Distribuera om programmet med hjälp av följande kommando: - mvn package azure-webapp:deploy
Distributionen är nu klar.