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.
Számos alkalmazás több összetevővel is rendelkezik. Előfordulhat például, hogy rendelkezik egy nyilvánosan elérhető előtérrel, amely egy háttérbeli API-hoz vagy webalkalmazáshoz csatlakozik. A háttérerőforrások kapcsolódhatnak egy adatbázishoz, tárfiókhoz, kulcstartóhoz, egy másik virtuális géphez vagy ezen erőforrások kombinációjához. Ez az architektúra egy N szintű alkalmazás alapja. Fontos, hogy az ilyen alkalmazások a lehető legnagyobb mértékben védjék a háttérbeli erőforrásokat.
Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe egy biztonságos N szintű alkalmazást egy olyan előtér-webalkalmazással, amely egy másik hálózat által elkülönített webalkalmazáshoz csatlakozik. A Azure Virtual Network minden forgalmat elkülönít a Virtual Network integráció és private végpontok használatával. Az egyéb forgatókönyveket is tartalmazó átfogóbb útmutatásért lásd:
Ebben az útmutatóban Ön:
- Virtuális hálózat és alhálózatok létrehozása az App Service virtuális hálózati integrációjához
- Privát DNS-zónák és privát végpontok létrehozása
- Virtuális hálózati integráció konfigurálása az App Service-ben
- Alapszintű hitelesítés letiltása az App Service-ben
- Folyamatos üzembe helyezés zárolt háttérbeli webalkalmazásban
Előfeltételek
Az oktatóanyag a GitHubon található két Node.js-mintaalkalmazást használ. Ha még nem rendelkezik GitHub-fiókkal, hozzon létre ingyenes fiókot.
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
Az oktatóanyag elvégzéséhez:
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
A forgatókönyv architektúrájának áttekintése
Ez az oktatóanyag bemutatja, hogyan konfigurálhat egy architektúrát, amely az alábbi ábrán látható. Ez a forgatókönyv az App Service egyik lehetséges N szintű konfigurációját jelöli. Az oktatóanyagban ismertetett fogalmak segítségével összetettebb N szintű alkalmazásokat hozhat létre.
Az architektúra két alhálózatot tartalmazó virtuális hálózattal rendelkezik. Az egyik alhálózat integrálva van az előtérbeli webalkalmazással, a másik alhálózat pedig egy privát végponttal a háttér-webalkalmazáshoz. A virtuális hálózat blokkolja az összes bejövő hálózati forgalmat, kivéve az integrált előtéralkalmazást célként szolgáló forgalmat.
Egy előtérbeli webalkalmazás integrálva van a virtuális hálózatba, és elérhető a nyilvános internetről.
A háttérbeli webalkalmazások csak a virtuális hálózat privát végpontja révén érhetők el.
A privát végpontok integrálhatók a háttér-webalkalmazással, és a webalkalmazást egy privát IP-címen keresztül teszik elérhetővé.
A saját DNS zóna lehetővé teszi a DNS-név feloldását a privát végpont IP-címére.
Megjegyzés
A virtuális hálózati integráció és a privát végpontok konfigurálásához szükség van a Basic Azure App Service vagy magasabb szintre. Az ingyenes szint nem támogatja ezeket a funkciókat.
Az oktatóanyagban szereplő forgatókönyv a következő viselkedést mutatja be:
- A háttéralkalmazás nyilvános forgalma le van tiltva.
- Az App Service-ből a virtuális hálózatra irányuló kimenő forgalom elérheti a háttéralkalmazást.
- Az App Service dns-feloldásokat hajthat végre a háttéralkalmazásban.
A két webalkalmazás létrehozása
Két App Service-webalkalmazásra van szüksége, egyet az előtérhez, egyet pedig a háttérrendszerhez. Az alkalmazások ugyanazon a régióban futtathatók. A virtuális hálózati integráció beállításához és a privát végpontokkal való munkához használja legalább a Basic Azure App Service szintjét. Később konfigurálhatja a virtuális hálózati integrációt és más beállításokat.
Hozzon létre egy erőforráscsoportot az oktatóanyag összes erőforrásának kezeléséhez.
Állítsa be a
<resource-group>helyőrzőt az új erőforráscsoport nevére, példáulzava-resources. Állítsa be a<region-location>helyőrzőt az új erőforráscsoport régiójára, példáuleastus.# Define variables for the resource group name and region location resourceGroupName=<resource-group> regionLocation=<region-location> # Create the resource group az group create --name $resourceGroupName --location $regionLocationTovábbi információért lásd a az group create parancs referenciát.
Hozzon létre egy App Service-csomagot az erőforrásaihoz.
Állítsa be a
<app-service-plan>helyőrzőt az új App Service-csomag nevére, példáulzava-app-service-plan.Az oktatóanyag példája a(z)
--skuparamétertP1V3értékre (Premium V3) állítja be. Ezt az értéket használhatja, vagy megadhat egy másik termékváltozatot. Az SKU-nak támogatnia kell az oktatóanyaghoz szükséges hálózati funkciókat. Válassza ki az alapszintű vagy magasabb szintet.# Define a variable for the App Service plan name appServicePlanName=<app-service-plan> # Create the App Service plan az appservice plan create --name $appServicePlanName --resource-group $resourceGroupName --is-linux --location $regionLocation --sku P1V3További információért lásd az az appservice plan create parancsreferenciát.
Hozza létre az előtérbeli és a háttérbeli webalkalmazásokat.
Az oktatóanyag példája két minta Node.js-alkalmazást hoz létre, amelyekben a futtatókörnyezet nyelvi verziója
NODE:24-lts. Ha inkább saját alkalmazásokat szeretne használni, ennek megfelelően állítsa be a--runtimeparaméter<language-version>értékét. Az elérhető futtatókörnyezetek listájához futtathatjaaz webapp list-runtimesa parancsot:az webapp list-runtimesÁllítsa be a
<frontend-app-name>helyőrzőt az új előtér-webalkalmazás nevére, példáulzava-frontend-app. A névnek globálisan egyedinek kell lennie, és érvényes karakterekből (a-z, ,0-9).-Hasonlóképpen állítsa a<backend-app-name>helyőrzőt az új háttérbeli webalkalmazás nevére, példáulzava-backend-app.# Define variables for the App Service web app names frontendAppName=<frontend-app-name> backendAppName=<backend-app-name> # Create the web apps az webapp create --name $frontendAppName --resource-group $resourceGroupName --plan $appServicePlanName --runtime "NODE:24-lts" az webapp create --name $backendAppName --resource-group $resourceGroupName --plan $appServicePlanName --runtime "NODE:24-lts"További információért tekintse meg a webapp create parancsreferenciát.
A hálózati infrastruktúra létrehozása
A virtuális hálózati infrastruktúra a következő erőforrásokból áll:
- Egy Azure Virtual Network-példány
- Az App Service virtuális hálózati integrációjának alhálózata
- Egy másik alhálózat a privát végponthoz
- Egy Azure saját DNS zóna
- Privát végpont
Azure-beli virtuális hálózat létrehozása.
Állítsa be a
<virtual-network-name>helyőrzőt az új virtuális hálózat nevére, példáulzava-virtual-network. A névnek globálisan egyedinek kell lennie.# Define a variable for the virtual network name virtualNetworkName=<virtual-network-name> # Create the virtual network az network vnet create --resource-group $resourceGroupName --location $regionLocation --name $virtualNetworkName --address-prefixes 10.0.0.0/16További információkért lásd az az network vnet create parancshivatkozást.
Hozzon létre egy alhálózatot az App Service virtuális hálózati integrációjához.
Állítsa a
<network-integration-subnet>helyőrzőt az új alhálózat nevére, amely támogatja a virtuális hálózat integrációját, példáulzava-integration-subnet.Az App Service esetében ajánlott, hogy a virtuális hálózati integrációs alhálózat legalább
/26méretű CIDR-blokkal rendelkezzen./24több mint elegendő.--delegations Microsoft.Web/serverfarmsmegadja, hogy az alhálózat delegálva legyen az App Service virtuális hálózati integrációjához.# Define a variable for the integration subnet name networkIntegrationSubnet=<network-integration-subnet> # Create the subnet for virtual network integration az network vnet subnet create --resource-group $resourceGroupName --vnet-name $virtualNetworkName --name $networkIntegrationSubnet \ --address-prefixes 10.0.0.0/24 --delegations Microsoft.Web/serverfarms \ --disable-private-endpoint-network-policies falseTovábbi információért lásd a(z) az network vnet subnet create parancsreferenciát.
Hozzon létre egy másik alhálózatot a privát végpontokhoz.
Állítsa a
<private-endpoint-subnet>helyőrzőt az új alhálózat nevére, amely támogatja a privát végpontot, példáulzava-endpoint-subnet.# Define a variable for the private endpoint subnet name privateEndpointSubnet=<private-endpoint-subnet> # Create the subnet for the private endpoint az network vnet subnet create --resource-group $resourceGroupName --vnet-name $virtualNetworkName --name $privateEndpointSubnet \ --address-prefixes 10.0.1.0/24 \ --disable-private-endpoint-network-policies trueA privát végpontok alhálózatai esetében le kell tiltania a privát végpontokra vonatkozó hálózati szabályzatokat úgy, hogy a
--disable-private-endpoint-network-policiesjelzőttrueértékre állítja. További információ: Az az network vnet subnet create parancs választható paraméterei.Megjegyzés
A
--private-endpoint-network-policiesjelölő hamarosan lecserélheti a jelölőt--disable-private-endpoint-network-policies.Hozza létre a Azure saját DNS zónát.
Állítsa a
<private-zone-name>helyőrzőt az új saját DNS zóna nevére, példáulzava-private.azurewebsites.net.# Define a variable for the Private DNS zone privateDNSZone=<private-zone-name> # Create the Private DNS zone az network private-dns zone create --resource-group $resourceGroupName --name $privateDNSZoneTovábbi információért lásd az az network vnet subnet create parancs referenciáját. A saját DNS zóna konfigurálásáról további információt a Azure szolgáltatás DNS-zóna konfigurációjában talál.
Megjegyzés
Ha a privát végpontot a Azure portálon hozza létre, a rendszer automatikusan létrehoz egy Azure saját DNS zónát a konfigurációhoz. Ebben az oktatóanyagban az eljárási konzisztencia érdekében a saját DNS zónát és a privát végpontot külön kell létrehoznia a Azure CLI használatával.
Csatolja a saját DNS zónát a virtuális hálózathoz.
Állítsa a
<dns-link-name>helyőrzőt az új DNS-hivatkozás nevére, példáulzava-private-link.# Define a variable for the DNS link name dnsLinkName=<dns-link-name> # Create the link between the Private DNS zone and the virtual network az network private-dns link vnet create --resource-group $resourceGroupName --name $dnsLinkName --zone-name $privateDNSZone \ --virtual-network $virtualNetworkName --registration-enabled FalseTovábbi információkért lásd a(z) az network private-dns link vnet create parancsreferenciát.
A virtuális hálózat privát végpont alhálózatában hozzon létre egy privát végpontot a háttér-webalkalmazáshoz.
Állítsa a
<private-endpoint-name>helyőrzőt a háttér-webalkalmazás új privát végpontjának nevére, példáulzava-backend-endpoint. Állítsa a<service-connection-name>helyőrzőt az új szolgáltatáskapcsolat nevére, példáulzava-backend-connection.# Define variables for the private endpoint and service connection privateEndpointName=<private-endpoint-name> serviceConnectionName=<service-connection-name> # Get the resource ID of the backend web app resourceId=$(az webapp show --resource-group $resourceGroupName --name $backendAppName --query id --output tsv) # Create the private endpoint for the backend web app by using the resource ID az network private-endpoint create --resource-group $resourceGroupName --name $privateEndpointName --location $regionLocation \ --connection-name $serviceConnectionName --private-connection-resource-id $resourceId \ --group-id sites --vnet-name $virtualNetworkName --subnet $privateEndpointSubnetTovábbi információkért lásd a az network private-endpoint create parancshivatkozását.
Csatolja a privát végpontot a saját DNS zónához a háttéralkalmazás privát végpontjának DNS-zónacsoportjával.
Állítsa be a
<dns-zone-group-name>helyőrzőt az új DNS-zónacsoport nevére, példáulzava-dns-zone-group. A DNS-zónacsoport segít a saját DNS zóna automatikus frissítésében a privát végpont frissítésekor.# Define a variable for the DNS Zone group dnsZoneGroupName=<dns-zone-group-name> # Link the private endpoint to the Private DNS az network private-endpoint dns-zone-group create --resource-group $resourceGroupName --endpoint-name $privateEndpointName \ --name $dnsZoneGroupName --private-dns-zone $privateDNSZone --zone-name $privateDNSZoneTovábbi információért lásd az az network private-endpoint dns-zone-group create parancs referenciáját.
Ellenőrizze, hogy a privát végponthoz való közvetlen hozzáférés megtagadva van-e.
Amikor privát végpontot hoz létre egy App Service-alkalmazáshoz, a nyilvános hozzáférés implicit módon le lesz tiltva. Ha az alapértelmezett URL-cím használatával próbál hozzáférni a háttérbeli webalkalmazáshoz, a rendszer megtagadja a hozzáférést.
Egy böngészőben adja meg a háttér-webalkalmazás alapértelmezett URL-címét, például
<backend-app-name>.azurewebsites.net.A böngészőüzenet azt jelzi, hogy a közvetlen hozzáférés megtagadva:
Az App Service privát végpontokkal kapcsolatos hozzáférési korlátozásaival kapcsolatos további információkért lásd Azure-alkalmazás szolgáltatáshozzáférés korlátozásait.
A virtuális hálózat integrációjának konfigurálása
A virtuális hálózati infrastruktúra létrehozása után beállíthatja a virtuális hálózati integrációt az előtérbeli webalkalmazásban. A virtuális hálózat integrációja lehetővé teszi, hogy a kimenő forgalom közvetlenül a virtuális hálózatba áramoljon. Alapértelmezés szerint csak az RFC-1918 > Private Address Space protokoll útvonalán definiált helyi IP-forgalom van meghatározva a virtuális hálózathoz. Ez az útválasztási szint szükséges a privát végpontok engedélyezéséhez.
Engedélyezze a virtuális hálózati integrációt az előtérbeli webalkalmazásban. Az alábbi parancs feltételezi, hogy az alhálózat és a webalkalmazás ugyanabban az erőforráscsoportban található.
az webapp vnet-integration add --resource-group $resourceGroupName --name $frontendAppName --vnet $virtualNetworkName --subnet $networkIntegrationSubnet
További információért lásd az az webapp vnet-integration add parancshivatkozást.
Ha az összes forgalmat a virtuális hálózatra szeretné irányítani, olvassa el a Virtuális hálózatok integrációs útválasztásának kezelése című témakört. Az összes forgalom átirányítása akkor is használható, ha az internetes forgalmat a virtuális hálózaton keresztül szeretné irányítani, például egy Azure Virtual Network NAT vagy Azure Firewall.
Üzembe helyezés engedélyezése a háttérbeli webalkalmazásban
Mivel a háttér-webalkalmazás nem érhető el nyilvánosan, engedélyeznie kell, hogy a folyamatos üzembe helyezési eszköz elérje az alkalmazást azáltal, hogy az SCM-webhelyet nyilvánosan elérhetővé teszi az internetről. Maga a fő webalkalmazás továbbra is megtagadhatja az összes forgalmat.
Nyilvános hozzáférés engedélyezése a háttérbeli webalkalmazáshoz.
az webapp update --resource-group $resourceGroupName --name $backendAppName --set publicNetworkAccess=EnabledA fő webalkalmazás nem egyező szabályműveletének beállítása az összes forgalom letiltásához.
Ez a beállítás nem engedélyezi a nyilvános hozzáférést a fő webalkalmazáshoz annak ellenére, hogy az általános alkalmazáshozzáférés beállítása a nyilvános hozzáférés engedélyezésére van beállítva.
az resource update --resource-group $resourceGroupName --name $backendAppName --namespace Microsoft.Web \ --resource-type sites --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=DenyÁllítsa be az SCM-webhely nem egyező szabályához tartozó műveletet úgy, hogy az minden forgalmat engedélyezzen.
az resource update --resource-group $resourceGroupName --name $backendAppName --namespace Microsoft.Web \ --resource-type sites --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
FTP- és SCM-hozzáférés korlátozása
Mivel a háttérbeli SCM-webhely nyilvánosan elérhető, jobb biztonsággal kell zárolnia.
Tiltsa le az FTP-hozzáférést mind az előtérbeli, mind a háttérbeli webalkalmazás esetében:
az resource update --resource-group $resourceGroupName --name ftp --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $resourceGroupName --name ftp --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=falseTiltsa le a WebDeploy-portokhoz és az SCM/speciális eszközwebhelyekhez való alapvető hitelesítési hozzáférést mindkét webalkalmazáshoz:
az resource update --resource-group $resourceGroupName --name scm --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $resourceGroupName --name scm --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
Ha letiltja az alapszintű hitelesítést az App Service-ben, korlátozza az FTP- és SCM-végpontok elérését az Microsoft Entra ID regisztrált felhasználók számára. Ez a művelet tovább védi az alkalmazásokat. További információ az alapszintű hitelesítés letiltásáról, beleértve a bejelentkezések tesztelését és monitorozását: Az alapszintű hitelesítés letiltása az App Service-ben.
Folyamatos telepítés konfigurálása GitHub Actionsszel
Ehhez az eljáráshoz két olyan alkalmazásra van szüksége, amelyek készen állnak az App Service előtérbeli és háttéralkalmazásaiban való üzembe helyezésre. A webalkalmazások eléréséhez egy szolgáltatásnévre és GitHub Actions használatával végzett folyamatos üzembe helyezésre van szükség.
Webalkalmazások lekérése üzembehelyezési teszteléshez
A GitHub Azure minták adattárai Node.js mintaalkalmazásokat biztosítanak az üzembe helyezéshez.
Egy böngészőben nyissa meg a Node.js háttéralkalmazást.
Ágazzon el a GitHub-tárhelyről annak érdekében, hogy saját másolattal rendelkezzen, amelyben módosításokat végezhet. Ez a minta egy "„Helló világ!” alkalmazás" alkalmazást hoz létre. Ezt az alkalmazást a háttér-webalkalmazásban helyezheti üzembe.
Ismételje meg ugyanezt a folyamatot a Node.js Előtérbeli mintaalkalmazás esetében.
Ágazzon el a GitHub-tárhelyről annak érdekében, hogy saját másolattal rendelkezzen, amelyben módosításokat végezhet. Ez a minta létrehoz egy webalkalmazást, amely lekéri és megjeleníti az URL-cím tartalmát. Ezt az alkalmazást az előtérbeli webalkalmazásban helyezheti üzembe.
A szolgáltatási főazonosító konfigurálása
Szüksége van egy szolgáltatásnévre az előtéri webalkalmazásához és a háttérwebalkalmazásához.
Hozzon létre egy szolgáltatási főszereplőt.
Állítsa be a
<service-principal-name>helyőrzőt az új szolgáltatásnév nevére, példáulzava-service-principal.Cserélje le a többi
<placeholder>paraméterértéket a saját erőforrásaira vonatkozó információkra.# Define a variable for the service principal name servicePrincipalName=<service-principal-name> # Link the private endpoint to the Private DNS az ad sp create-for-rbac --name <service-principal-name> --role contributor --scopes \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<frontend-app-name> \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<backend-app-name>A kimenet egy JSON-objektum, amelynek szerepkör-hozzárendelési hitelesítő adatai hozzáférést biztosítanak az App Service-alkalmazásokhoz.
{ "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "displayName": "<service-principal-name>", "password": "0Aa!1Bb!2Cc!3Dd!4Ee!5Ff!6Gg!7Hh!8Ii!9Jj!", "tenantId": "aaaabbbb-6666-cccc-7777-dddd8888eeee" }A JSON tartalmazza a szolgáltatásnév-azonosító jelszavát, amely csak ebben a pillanatban látható.
Jótanács
Ajánlott minimális hozzáférést biztosítani. Ebben a példában a hatókör csak az alkalmazásokra korlátozódik, nem a teljes erőforráscsoportra.
Másolja ki a JSON-objektumot, hogy feljegyezhesse a szolgáltatásnévazonosítót.
Adja meg a szolgáltatásfelelősi objektum hitelesítő adatait az Azure bejelentkezés művelet részeként a GitHub Akció munkafolyamatában.
Tárolja a hitelesítő adatokat GitHub-secretsként, amelyekre a munkafolyamat hivatkozik.
Egy böngészőben nyissa meg a Node.js-alapú háttéralkalmazás GitHubon található elágaztatott tárolóját.
Lépjen a Beállítások>biztonsági>titkos kulcsok és változók>műveletek lapra.
Válassza az Új tárház titkos kód lehetőséget, és hozzon létre egy titkos kulcsot az alábbi beállítások mindegyikéhez.
Használja a JSON-kimenet értékeit.
Beállítás Érték Example AZURE_CLIENT_ID <application/client-id>00001111-aaaa-2222-bbbb-3333cccc4444AZURE_TENANT_ID <tenant-id>aaaabbbb-6666-cccc-7777-dddd8888eeeeAZURE_SUBSCRIPTION_ID <subscription-id>cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6aIsmételje meg ezt a folyamatot a frontend Node.js-alkalmazás GitHubon lévő forkolt tárolójához is.
Állítsa be a folyamatos üzembe állítást a GitHub Actions-szal
A folyamatos üzembe helyezést a GitHub Actions állíthatja be.
A Azure portálon nyissa meg az előtér-webalkalmazás Overview lapját.
A bal oldali menüben válassza az Üzembehelyezési>központ lehetőséget.
A Beállítások lapon állítsa a Forrás beállítást GitHub értékre.
Ha első alkalommal telepíti a GitHubot, válassza az Engedélyezés lehetőséget, és kövesse az engedélyezési utasításokat. Ha egy másik felhasználó tárházából szeretne üzembe helyezni, válassza a Fiók módosítása lehetőséget.
Miután engedélyezte Azure-fiókját a GitHubhoz, válassza ki a Organization, Repository és a Branch lehetőséget a CI/CD konfigurálásához. Ha nem talál szervezetet vagy adattárat, lehetséges, hogy további engedélyeket kell engedélyeznie a GitHub. További információ: A szervezet adattáraihoz való felhasználói hozzáférés kezelése.
Beállítás Érték Organizáció <your-GitHub-organization>Repository <forked-repository-name>Fiók fő Válassza a Mentés lehetőséget.
Ismételje meg ezt a folyamatot az Ön háttérwebalkalmazása és a hozzá tartozó leforkolt adattár esetében.
Kapcsolatok és alkalmazáshozzáférés ellenőrzése
Most már készen áll az előtér- és háttérbeli webalkalmazások kapcsolatainak és hozzáférésének ellenőrzésére.
Próbáljon meg közvetlenül a háttérbeli webalkalmazásban böngészni annak URL-címével.
https://<backend-app-name>.azurewebsites.netA következő böngészőüzenetnek kell megjelennie:
Ha el tudja érni az alkalmazást, ellenőrizze a konfigurációt:
Ellenőrizze, hogy a privát végpont megfelelően van-e beállítva.
Győződjön meg arról, hogy az alkalmazás hozzáférési korlátozásai a fő webalkalmazás összes forgalmának letiltására vannak beállítva.
Most próbálja meg közvetlenül a frontend webalkalmazást a saját URL-címén,
https://<frontend-app-name>.azurewebsites.net, megnyitni.Ha a kapcsolat sikeres, a következő oldal jelenik meg:
Az URL-mezőbe írja be a háttér-webalkalmazás URL-címét,
https://<backend-app-name>.azurewebsites.netés válassza a Beolvasás lehetőséget.Ha megfelelően állítja be a kapcsolatokat, a lap frissül, hogy megjelenjen az üzenet tartalma a háttér webalkalmazásból:
Az előtérbeli webalkalmazásból érkező összes kimenő forgalom a virtuális hálózaton keresztül halad át. Az előtérbeli webalkalmazás biztonságosan csatlakozik a háttérbeli webalkalmazáshoz a privát végponton keresztül.
Ha valami nincs rendben a kapcsolataival, a kimenetben a 403-as hiba – Tiltott üzenet jelenik meg.
SSH-kapcsolat létesítése és távoli parancsértelmező megnyitása
Ellenőrizze egy frontendpéldányra SSH-val csatlakozva, hogy a frontend webalkalmazás a privát kapcsolaton keresztül eléri-e a backend webalkalmazást.
Nyisson SSH-munkamenetet az alkalmazás webes konténeréhez, és nyisson meg egy távoli parancssori felületet a böngészőben:
az webapp ssh --resource-group $resourceGroupName --name $frontendAppNameTovábbi információkért tekintse meg az az webapp ssh parancsreferenciáját.
Miután megnyílik a parancsértelmező a böngészőben, a háttéralkalmazás privát IP-címét használva győződjön meg arról, hogy a háttéralkalmazás elérhető-e.
Az alábbi parancsokban cserélje le a
<placeholder>paraméterértékeket a saját erőforrás adataira.Futtassa a
nslookupkövetkező parancsot:nslookup <backend-app-name>.azurewebsites.netFuttassa a parancsot a
curlwebhely tartalmának ismételt ellenőrzéséhez:curl https://<backend-app-name>.azurewebsites.net
A
nslookupparancsnak a háttérbeli webalkalmazás privát IP-címére kell feloldódnia. A magánhálózati IP-címnek a virtuális hálózatból származó címnek kell lennie.A privát IP-címét a Azure portálon ellenőrizheti. Nyissa meg a háttér-webalkalmazás Beállítások>hálózatkezelési lapját.
Ismételje meg ugyanezt
nslookupéscurlparancsokat egy másik terminálból (amely nem SSH-munkamenet az előtérbeli példányokon).
A
nslookupparancs a háttér-webalkalmazás nyilvános IP-címét adja vissza. Mivel a háttérbeli webalkalmazás nyilvános elérése le van tiltva, ha megpróbálja elérni a nyilvános IP-címet, „Hozzáférés megtagadva” hibaüzenetet kap. Ez a hiba azt jelenti, hogy a webhely nem érhető el a nyilvános internetről, ami a kívánt viselkedés.A
nslookupparancs nem oldható fel a privát IP-címre, mert a cím csak a virtuális hálózaton belülről, a privát DNS-zónán keresztül oldható fel. Csak az előtérbeli webalkalmazás található a virtuális hálózaton belül. Ha acurlparancsot a külső terminálról próbálja futtatni a háttér-webalkalmazáson, a visszaadott HTML a 403-as hibaüzenetet tartalmazza, tiltott – Az elérni próbált webalkalmazás letiltotta a hozzáférést. Egyes terminálok ugyanazt a HTML-t jelenítik meg, mint a háttér-webalkalmazás közvetlen elérésekor visszaadott hibalap.
Erőforrások tisztítása
Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha várhatóan nem lesz szüksége ezekre az erőforrásokra a jövőben, törölje az erőforráscsoportot a következő parancs Cloud Shellben történő futtatásával.
Cserélje le a <placeholder> paraméter értékét a saját erőforrás adataira:
az group delete --name <resource-group>
A parancs végrehajtása több percig is eltarthat.
Gyakori kérdések
Ebben az oktatóanyagban üzembe helyezett egy alapinfrastruktúrát egy biztonságos N szintű webalkalmazás támogatásához. Az App Service olyan funkciókat biztosít, amelyekkel biztosítható, hogy olyan alkalmazásokat futtasson, amelyek a biztonsági ajánlott eljárásokat és javaslatokat követik.
Ez a szakasz válaszokat tartalmaz a gyakori kérdésekre, amelyek segíthetnek az alkalmazások további védelmében, valamint az erőforrások ajánlott eljárások szerinti üzembe helyezésében és kezelésében.
Üzembe helyezés a service principaltól eltérő módszerekkel
Ebben az oktatóanyagban letiltotta az alapszintű hitelesítést. A háttérrendszerbeli SCM-webhelyen nem végezhet hitelesítést felhasználónévvel és jelszóval, illetve közzétételi profillal. Azonban a szolgáltatásnév használatával történő hitelesítés helyett használhatja az OpenID Connect hitelesítő adatait.
GitHub Actions üzembe helyezés konfigurálása az App Service-ben
Azure automatikusan létrehoz egy munkafolyamat-fájlt az adattárban. A kijelölt adattárban és ágban lévő új commitok folyamatosan települnek az App Service-alkalmazásába. A véglegesítéseket és az üzembe helyezéseket a Naplók lapon követheti nyomon GitHub.
Egy alapértelmezett munkafolyamat-fájl, amely közzétételi profilt használ az App Service-hitelesítéshez, hozzáadódik a GitHub-adattárhoz. Ezt a fájlt a <repo-name>/.github/workflows/ könyvtárban tekintheti meg.
A háttérrendszerbeli SCM-webhely biztonságos nyilvános hozzáférésének megerősítése
Ha lezárja az FTP- és SCM-hozzáférést, akkor biztosíthatja, hogy csak a Microsoft Entra által kezelt identitások férhessenek hozzá az SCM-végponthoz, annak ellenére, hogy a végpont nyilvánosan elérhető. Ez a beállítás segít megnyugtatni, hogy a háttérbeli webalkalmazás továbbra is biztonságos.
Üzembe helyezés nyílt háttérrendszerbeli SCM-hely nélkül
Ha aggódik az SCM-webhelyhez való nyilvános hozzáférés engedélyezése miatt, vagy szabályzatkorlátozásokkal rendelkezik, fontolja meg az App Service egyéb üzembe helyezési lehetőségeit, például a ZIP-csomagból való futtatást.
Az architektúra üzembe helyezése sablonnal
Az oktatóanyagban létrehozott erőforrások Azure Resource Manager sablon (ARM-sablon) vagy Bicep sablon használatával telepíthetők. A háttérbeli webalkalmazáshoz kapcsolódó Bicep-fájl lehetővé teszi egy biztonságos, többrétegű alkalmazásmegoldás létrehozását.
Az ARM- és Bicep-sablonok üzembe helyezéséről a A Bicep fájlok üzembe helyezése a Azure CLI című témakörben olvashat.