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 Java Spring Boot-app med inloggning av Microsoft Entra-konto till Azure Container Apps.
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:
- Skydda Java Spring Boot-appar med Microsoft Entra-ID
- Skydda Java Spring Boot-appar med Azure Active Directory B2C
- Aktivera Java Spring Boot-appar för att logga in användare och få åtkomst till Microsoft Graph
- Skydda Java Spring Boot-appar med hjälp av roller och rollanspråk
- Skydda Java Spring Boot-appar med hjälp av grupper och gruppanspråk
Förutsättningar
- Ett Azure-konto. Om du inte har en skapar du ett kostnadsfritt konto. Du behöver
ContributorellerOwnerbehörighet för Azure-prenumerationen för att kunna fortsätta. Mer information finns i Tilldela Azure-roller med Azure-portalen. - Azure CLI.
- Azure Container Apps CLI-tillägget, version
0.3.47eller senare. Om du vill installera den senaste versionen använder duaz extension add --name containerapp --upgrade --allow-previewkommandot . - Java Development Kit, version 17 eller senare.
- Maven.
Förbereda Spring-projektet
Använd följande steg för att förbereda projektet:
Använd följande Maven-kommando för att skapa projektet:
mvn clean verifyKör exempelprojektet lokalt med hjälp av följande kommando:
mvn spring-boot:run
Ställ in
Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.
az login
Kör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.
az upgrade
Installera eller uppdatera sedan Azure Container Apps-tillägget för CLI.
Om du får fel om saknade parametrar när du kör az containerapp kommandon i Azure CLI kontrollerar du att den senaste versionen av Azure Container Apps-tillägget är installerad.
az extension add --name containerapp --upgrade
Kommentar
Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med --allow-preview true.
az extension add --name containerapp --upgrade --allow-preview true
Nu när det aktuella tillägget eller modulen har installerats registrerar du Microsoft.App namnrymderna och Microsoft.OperationalInsights .
Kommentar
Azure Container Apps-resurser har migrerats från Microsoft.Web namnområdet till Microsoft.App namnområdet. Mer information finns i Namnområdesmigrering från Microsoft.Web till Microsoft.App i mars 2022.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Skapa Azure Container Apps-miljön
Nu när azure CLI-installationen är klar kan du definiera de miljövariabler som används i hela den här artikeln.
Definiera följande variabler i bash-gränssnittet.
export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"
Skapa en resursgrupp.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Skapa en miljö med en automatiskt genererad Log Analytics-arbetsyta.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Visa standarddomänen för containerappmiljön. Anteckna den här domänen som ska användas i senare avsnitt.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Förbereda appen för distribution
När du distribuerar ditt program till Azure Container Apps ändras omdirigerings-URL:en till omdirigerings-URL:en för din distribuerade appinstans i Azure Container Apps. Använd följande steg för att ändra de här inställningarna i din application.yml-fil :
Gå till appens src\main\resources\application.yml-fil och ändra värdet
post-logout-redirect-uriför till den distribuerade appens domännamn, som du ser i följande exempel. Se till att ersätta<API_NAME>och<default-domain-of-container-app-environment>med dina faktiska värden. Med standarddomänen för din Azure Container App-miljö från föregående steg ochms-identity-apiför ditt appnamn använderhttps://ms-identity-api.<default-domain>du till exempel värdetpost-logout-redirect-uri.post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>När du har sparat den här filen använder du följande kommando för att återskapa din app:
mvn clean package
Viktigt!
Den application.yml filen för programmet innehåller för närvarande värdet för din klienthemlighet i parametern client-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 filen på en Git-lagringsplats. Den rekommenderade metoden finns i Hantera hemligheter i Azure Container Apps.
Uppdatera din Microsoft Entra ID-appregistrering
Eftersom omdirigerings-URI:n ändras till din distribuerade app i Azure Container Apps 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 Microsofts identitetsplattform för utvecklare Appregistreringar.
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 Omdirigerings-URI:er för webben - väljer du Lägg till URI.
Fyll i URI:n för din app och lägg till
/login/oauth2/code/– till exempelhttps://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/.Välj Spara.
Distribuera appen
Distribuera JAR-paketet till Azure Container Apps.
Kommentar
Om det behövs kan du ange JDK-versionen i Miljövariablerna för Java-kompilering. Mer information finns i Skapa miljövariabler för Java i Azure Container Apps.
Nu kan du distribuera WAR-filen med az containerapp up CLI-kommandot.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
Kommentar
JDK-standardversionen är 17. Om du behöver ändra JDK-versionen för kompatibilitet med ditt program kan du använda --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION> argumentet för att justera versionsnumret.
Mer information om hur du skapar miljövariabler finns i Skapa miljövariabler för Java i Azure Container Apps.
Verifiera appen
I det här exemplet containerapp up innehåller --query properties.configuration.ingress.fqdn kommandot argumentet, som returnerar det fullständigt kvalificerade domännamnet (FQDN), även kallat appens URL. Använd följande steg för att kontrollera appens loggar för att undersöka eventuella distributionsproblem:
Öppna url:en för utdataprogrammet från sidan Utdata i avsnittet Distribution .
I navigeringsfönstret på sidan Översikt över Azure Container Apps-instansen väljer du Loggar för att kontrollera appens loggar.
Mer information
- Microsofts identitetsplattform (Microsoft Entra-ID för utvecklare)
- Översikt över Microsoft Authentication Library (MSAL)
- Snabbstart: Registrera ett program med Microsofts identitetsplattform
- Snabbstart: Konfigurera ett klientprogram för åtkomst till webb-API:er
- Förstå funktioner för medgivande för Microsoft Entra-ID-program
- Förstå användar- och administratörsmedgivande
- Översikt över program- och tjänstobjekt i Microsoft Entra ID
- Nationella moln
- MSAL-kodexempel
- Microsoft Entra ID Spring Boot Starter-klientbibliotek för Java
- Microsoft Authentication Library for Java (MSAL4J)
- MSAL4J Wiki
- ID-token
- Åtkomsttoken i Microsofts identitetsplattform
Nästa steg
Mer information och andra distributionsalternativ finns i följande artiklar: