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.
Azure App Service nagymértékben méretezhető, automatikusan frissítődő webtárhely-szolgáltatást nyújt az Azure-ban. Emellett managed identitást is biztosít az alkalmazás számára, amely kulcsrakész megoldás a Azure Database for PostgreSQL és egyéb Azure szolgáltatásokhoz való hozzáférés biztosításához. Az App Service felügyelt identitásai biztonságosabbá teszik az alkalmazást azáltal, hogy eltávolítják az alkalmazás titkos kulcsait, például a környezeti változók hitelesítő adatait. Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Hozzon létre egy PostgreSQL-adatbázist.
- A mintaalkalmazás üzembe helyezése az Azure App Service-en, Tomcat szerveren, WAR-csomagolás használatával.
- Konfiguráljon egy Tomcat-webalkalmazást, hogy Microsoft Entra hitelesítést használjon a PostgreSQL-adatbázissal.
- Csatlakozzon a PostgreSQL-adatbázishoz felügyelt identitással a Service Connector használatával.
Ha nincs Azure fiókja, a kezdés előtt hozzon létre egy felszabadító fiókot.
Előfeltételek
- Git
- Java Fejlesztői készlet (JDK)
- Maven
- Azure CLI 2.45.0-s vagy újabb verzió.
Klónozza a mintaalkalmazást, és készítse elő az adattárat
Futtassa az alábbi parancsokat a terminálban a mintaadattár klónozásához és a mintaalkalmazás-környezet beállításához.
git clone https://github.com/Azure-Samples/Passwordless-Connections-for-Java-Apps
cd Passwordless-Connections-for-Java-Apps/Tomcat/
Hozza létre az Azure Database for PostgreSQL-t
Az alábbi lépéseket követve hozzon létre egy Azure Postgres-adatbázist az előfizetésében. A Tomcat alkalmazás csatlakozik ehhez az adatbázishoz, és futtatáskor tárolja az adatait, és az alkalmazás állapotát megőrzi, függetlenül attól, hogy hol futtatja az alkalmazást.
Jelentkezzen be az Azure CLI-ba, és ha több előfizetés is kapcsolódik a bejelentkezési hitelesítő adataihoz, igény szerint állítsa be az előfizetést.
az login az account set --subscription <subscription-ID>Hozzon létre egy Azure erőforráscsoportot az erőforráscsoport nevének megjelölésével.
export RESOURCE_GROUP=<resource-group-name> export LOCATION=eastus az group create --name $RESOURCE_GROUP --location $LOCATIONHozzon létre egy Azure Database for PostgreSQL kiszolgálót. A kiszolgáló rendszergazdai fiókkal jön létre, de nem használja, mert a felügyeleti feladatok elvégzéséhez a Microsoft Entra rendszergazdai fiókot fogjuk használni.
export POSTGRESQL_ADMIN_USER=azureuser # PostgreSQL admin access rights won't be used because Azure AD authentication is leveraged to administer the database. export POSTGRESQL_ADMIN_PASSWORD=<admin-password> export POSTGRESQL_HOST=<postgresql-host-name> # Create a PostgreSQL server. az postgres flexible-server create \ --resource-group $RESOURCE_GROUP \ --name $POSTGRESQL_HOST \ --location $LOCATION \ --admin-user $POSTGRESQL_ADMIN_USER \ --admin-password $POSTGRESQL_ADMIN_PASSWORD \ --public-access 0.0.0.0 \ --sku-name Standard_D2s_v3Hozzon létre egy adatbázist az alkalmazáshoz.
export DATABASE_NAME=checklist az postgres flexible-server db create \ --resource-group $RESOURCE_GROUP \ --server-name $POSTGRESQL_HOST \ --database-name $DATABASE_NAME
Az alkalmazás üzembe helyezése az App Service-ben
Ezeket a lépéseket követve hozzon létre egy WAR-fájlt, és helyezze üzembe Azure App Service a Tomcaten egy WAR-csomagolás használatával.
A mintaalkalmazás egy pom.xml fájlt tartalmaz, amely képes létrehozni a WAR fájlt. Az alkalmazás létrehozásához futtassa a következő parancsot.
mvn clean package -f pom.xmlHozzon létre egy Azure App Service erőforrást Linuxon a Tomcat 9.0 használatával.
export APPSERVICE_PLAN=<app-service-plan> export APPSERVICE_NAME=<app-service-name> # Create an App Service plan az appservice plan create \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_PLAN \ --location $LOCATION \ --sku B1 \ --is-linux # Create an App Service resource. az webapp create \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_NAME \ --plan $APPSERVICE_PLAN \ --runtime "TOMCAT:10.0-java11"Telepítse a WAR-csomagot az App Service-ben.
az webapp deploy \ --resource-group $RESOURCE_GROUP \ --name $APPSERVICE_NAME \ --src-path target/app.war \ --type war
A Postgres-adatbázis csatlakoztatása identitáskapcsolattal
Ezután csatlakoztassa az adatbázist a Service Connector használatával.
Telepítse a Service Connector jelszó nélküli bővítményét a Azure CLI:
az extension add --name serviceconnector-passwordless --upgrade
Ezután csatlakoztassa az alkalmazást egy Postgres-adatbázishoz egy rendszer által hozzárendelt felügyelt identitással a Service Connector használatával.
A kapcsolat létrehozásához futtassa az az webapp connection create parancsot.
az webapp connection create postgres-flexible \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--target-resource-group $RESOURCE_GROUP \
--server $POSTGRESQL_HOST \
--database $DATABASE_NAME \
--system-identity \
--client-type java
Ez a parancs kapcsolatot hoz létre a webalkalmazás és a PostgreSQL-kiszolgáló között, és egy rendszer által hozzárendelt felügyelt identitáson keresztül kezeli a hitelesítést.
Ezután frissítse az alkalmazás beállításait, és adjon hozzá egy beépülő modult a kapcsolat karakterláncához (connection string).
export AZURE_POSTGRESQL_CONNECTIONSTRING=$(\
az webapp config appsettings list \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
| jq -c -r '.[] \
| select ( .name == "AZURE_POSTGRESQL_CONNECTIONSTRING" ) \
| .value')
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--settings 'CATALINA_OPTS=-DdbUrl="'"${AZURE_POSTGRESQL_CONNECTIONSTRING}"'&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin"'
A minta-webalkalmazás tesztelése
Tesztelje az alkalmazást az alábbi parancs futtatásával.
export WEBAPP_URL=$(az webapp show \
--resource-group $RESOURCE_GROUP \
--name $APPSERVICE_NAME \
--query defaultHostName \
--output tsv)
# Create a list
curl -X POST -H "Content-Type: application/json" -d '{"name": "list1","date": "2022-03-21T00:00:00","description": "Sample checklist"}' https://${WEBAPP_URL}/checklist
# Create few items on the list 1
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 1"}' https://${WEBAPP_URL}/checklist/1/item
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 2"}' https://${WEBAPP_URL}/checklist/1/item
curl -X POST -H "Content-Type: application/json" -d '{"description": "item 3"}' https://${WEBAPP_URL}/checklist/1/item
# Get all lists
curl https://${WEBAPP_URL}/checklist
# Get list 1
curl https://${WEBAPP_URL}/checklist/1
Az erőforrások tisztítása
Az előző lépésekben Azure erőforrásokat hozott létre egy erőforráscsoportban. Ha a jövőben nem lesz szüksége ezekre az erőforrásokra, törölje az erőforráscsoportot az alábbi parancs futtatásával a Cloud Shell:
az group delete --name myResourceGroup
A parancs futtatása eltarthat egy percig.
Következő lépések
A fejlesztői útmutatóban további információt talál arról, hogyan futtathatók Java alkalmazások az App Service-en Linux alatt.
Megtudhatja, hogyan védheti meg az alkalmazást egyéni tartománnyal és tanúsítvánnyal.