Zelfstudie: Een beveiligde n-tier-app maken in Azure-app Service
Veel toepassingen hebben meer dan één onderdeel. U hebt bijvoorbeeld een front-end die openbaar toegankelijk is en verbinding maakt met een back-end-API of web-app die op zijn beurt verbinding maakt met een database, opslagaccount, sleutelkluis, een andere VIRTUELE machine of een combinatie van deze resources. Deze architectuur vormt een N-tier-toepassing. Het is belangrijk dat toepassingen zoals deze zijn ontworpen om back-endresources zo veel mogelijk te beveiligen.
In deze zelfstudie leert u hoe u een beveiligde N-tier-toepassing implementeert met een front-endweb-app die verbinding maakt met een andere netwerk-geïsoleerde web-app. Al het verkeer wordt geïsoleerd binnen uw Virtuele Azure-netwerk met behulp van virtual network-integratie en privé-eindpunten. Zie voor uitgebreidere richtlijnen met andere scenario's:
Scenario-architectuur
In het volgende diagram ziet u de architectuur die u tijdens deze zelfstudie maakt.
- Virtueel netwerk Bevat twee subnetten, één is geïntegreerd met de front-endweb-app en de andere heeft een privé-eindpunt voor de back-endweb-app. Het virtuele netwerk blokkeert al het binnenkomende netwerkverkeer, met uitzondering van de front-end-app die ermee is geïntegreerd.
- Front-endweb-app geïntegreerd in het virtuele netwerk en toegankelijk vanaf het openbare internet.
- Back-endweb-app Alleen toegankelijk via het privé-eindpunt in het virtuele netwerk.
- Privé-eindpunt integreert met de back-endweb-app en maakt de web-app toegankelijk met een privé-IP-adres.
- Privé-DNS zone Hiermee kunt u een DNS-naam naar het IP-adres van het privé-eindpunt oplossen.
Notitie
Integratie van virtuele netwerken en privé-eindpunten zijn helemaal tot aan de Basic-laag in App Service beschikbaar. De gratis laag biedt geen ondersteuning voor deze functies. Met deze architectuur:
- Openbaar verkeer naar de back-end-app wordt geblokkeerd.
- Uitgaand verkeer van App Service wordt doorgestuurd naar het virtuele netwerk en kan de back-end-app bereiken.
- App Service kan DNS-omzetting uitvoeren naar de back-end-app.
In dit scenario ziet u een van de mogelijke N-tier-scenario's in App Service. U kunt de concepten in deze zelfstudie gebruiken om complexere N-tier-apps te bouwen.
Wat u leert:
- Maak een virtueel netwerk en subnetten voor integratie van virtueel App Service-netwerk.
- Privé-DNS-zones maken.
- Privé-eindpunten maken.
- Configureer de integratie van virtuele netwerken in App Service.
- Schakel basisverificatie uit in app service.
- Continu implementeren naar een vergrendelde back-endweb-app.
Vereisten
In de zelfstudie worden twee voorbeeld-Node.js-apps gebruikt die worden gehost op GitHub. Als u nog geen GitHub-account hebt, maakt u gratis een account.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten om deze zelfstudie te voltooien:
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
1. Twee exemplaren van een web-app maken
U hebt twee exemplaren van een web-app nodig, één voor de front-end en een voor de back-end. U moet ten minste de Basic-laag gebruiken om integratie van virtuele netwerken en privé-eindpunten te kunnen gebruiken. U gaat de integratie van het virtuele netwerk en andere configuraties later configureren.
Maak een resourcegroep om alle resources te beheren die u in deze zelfstudie maakt.
# Save resource group name and region as variables for convenience groupName=myresourcegroup region=eastus az group create --name $groupName --location $region
Maak een App Service-plan. Vervang
<app-service-plan-name>
door een unieke naam. Wijzig de--sku
parameter als u een andere SKU moet gebruiken. Zorg ervoor dat u de gratis laag niet gebruikt, omdat die SKU geen ondersteuning biedt voor de vereiste netwerkfuncties.# Save App Service plan name as a variable for convenience aspName=<app-service-plan-name> az appservice plan create --name $aspName --resource-group $groupName --is-linux --location $region --sku P1V3
Maak de web-apps. Vervang
<frontend-app-name>
en<backend-app-name>
door twee globaal unieke namen (geldige tekens zijna-z
,0-9
en-
). Voor deze zelfstudie krijgt u voorbeeld-Node.js apps. Als u uw eigen apps wilt gebruiken, wijzigt u de--runtime
parameter dienovereenkomstig. Uitvoerenaz webapp list-runtimes
voor de lijst met beschikbare runtimes.az webapp create --name <frontend-app-name> --resource-group $groupName --plan $aspName --runtime "NODE:18-lts" az webapp create --name <backend-app-name> --resource-group $groupName --plan $aspName --runtime "NODE:18-lts"
2. Netwerkinfrastructuur maken
U maakt de volgende netwerkbronnen:
- Een virtueel netwerk.
- Een subnet voor de integratie van het virtuele App Service-netwerk.
- Een subnet voor het privé-eindpunt.
- Een privé-DNS-zone.
- Een privé-eindpunt.
Maak een virtueel netwerk. Vervang
<virtual-network-name>
door een unieke naam.# Save vnet name as variable for convenience vnetName=<virtual-network-name> az network vnet create --resource-group $groupName --location $region --name $vnetName --address-prefixes 10.0.0.0/16
Maak een subnet voor de integratie van het virtuele App Service-netwerk.
az network vnet subnet create --resource-group $groupName --vnet-name $vnetName --name vnet-integration-subnet --address-prefixes 10.0.0.0/24 --delegations Microsoft.Web/serverfarms --disable-private-endpoint-network-policies false
Voor App Service wordt het subnet voor integratie van
/26
virtuele netwerken aanbevolen om minimaal een CIDR-blok te hebben./24
is meer dan voldoende.--delegations Microsoft.Web/serverfarms
geeft aan dat het subnet is gedelegeerd voor integratie van virtueel App Service-netwerk.Maak een ander subnet voor de privé-eindpunten.
az network vnet subnet create --resource-group $groupName --vnet-name $vnetName --name private-endpoint-subnet --address-prefixes 10.0.1.0/24 --disable-private-endpoint-network-policies true
Voor subnetten van privé-eindpunten moet u het netwerkbeleid voor privé-eindpunten uitschakelen door in te stellen
--disable-private-endpoint-network-policies
optrue
.Maak de privé-DNS-zone.
az network private-dns zone create --resource-group $groupName --name privatelink.azurewebsites.net
Zie de DNS-configuratie van azure-privé-eindpunten voor meer informatie over deze instellingen.
Notitie
Als u het privé-eindpunt maakt met behulp van de portal, wordt er automatisch een privé-DNS-zone voor u gemaakt en hoeft u het niet afzonderlijk te maken. Voor consistentie met deze zelfstudie maakt u de privé-DNS-zone en het privé-eindpunt afzonderlijk met behulp van de Azure CLI.
Koppel de privé-DNS-zone aan het virtuele eindpuntnetwerk.
az network private-dns link vnet create --resource-group $groupName --name myDnsLink --zone-name privatelink.azurewebsites.net --virtual-network $vnetName --registration-enabled False
Maak in het subnet van het privé-eindpunt van uw virtuele netwerk een privé-eindpunt voor uw back-endweb-app. Vervang door
<backend-app-name>
de naam van uw back-endweb-app.# Get backend web app resource ID resourceId=$(az webapp show --resource-group $groupName --name <backend-app-name> --query id --output tsv) az network private-endpoint create --resource-group $groupName --name myPrivateEndpoint --location $region --connection-name myConnection --private-connection-resource-id $resourceId --group-id sites --vnet-name $vnetName --subnet private-endpoint-subnet
Koppel het privé-eindpunt aan de privé-DNS-zone met een DNS-zonegroep voor het privé-eindpunt van de back-endweb-app. Met deze DNS-zonegroep kunt u de privé-DNS-zone automatisch bijwerken wanneer er een update voor het privé-eindpunt is.
az network private-endpoint dns-zone-group create --resource-group $groupName --endpoint-name myPrivateEndpoint --name myZoneGroup --private-dns-zone privatelink.azurewebsites.net --zone-name privatelink.azurewebsites.net
Wanneer u een privé-eindpunt voor een App Service maakt, wordt openbare toegang impliciet uitgeschakeld. Als u probeert toegang te krijgen tot uw back-endweb-app met behulp van de standaard-URL, wordt uw toegang geweigerd. Navigeer vanuit een browser naar
<backend-app-name>.azurewebsites.net
dit gedrag.Zie Azure-app Service-toegangsbeperkingen voor App Service voor meer informatie over App Service-toegangsbeperkingen met privé-eindpunten.
3. Integratie van virtuele netwerken configureren in uw front-endweb-app
Schakel integratie van virtuele netwerken in uw app in. Vervang door <frontend-app-name>
de naam van uw front-endweb-app.
az webapp vnet-integration add --resource-group $groupName --name <frontend-app-name> --vnet $vnetName --subnet vnet-integration-subnet
Dankzij de integratie van een virtueel netwerk kan uitgaand verkeer rechtstreeks naar het virtuele netwerk stromen. Standaard wordt alleen lokaal IP-verkeer dat is gedefinieerd in RFC-1918 , doorgestuurd naar het virtuele netwerk. Dit is wat u nodig hebt voor de privé-eindpunten. Zie Routering van virtuele netwerkintegratie beheren om al uw verkeer naar het virtuele netwerk te routeren. Het routeren van al het verkeer kan ook worden gebruikt als u internetverkeer wilt routeren via uw virtuele netwerk, zoals via een Azure Virtual Network NAT of een Azure Firewall.
4. Implementatie naar back-endweb-app via internet inschakelen
Omdat uw back-endweb-app niet openbaar toegankelijk is, moet u uw hulpprogramma voor continue implementatie uw app laten bereiken door de SCM-site openbaar toegankelijk te maken. De hoofdweb-app zelf kan al het verkeer blijven weigeren.
Openbare toegang inschakelen voor de back-endweb-app.
az webapp update --resource-group $groupName --name <backend-app-name> --set publicNetworkAccess=Enabled
Stel de niet-gerelateerde regelactie in voor de hoofdweb-app om al het verkeer te weigeren. Met deze instelling wordt openbare toegang tot de hoofdweb-app geweigerd, ook al is de instelling voor algemene app-toegang ingesteld om openbare toegang toe te staan.
az resource update --resource-group $groupName --name <backend-app-name> --namespace Microsoft.Web --resource-type sites --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Deny
Stel de niet-overeenkomende regelactie voor de SCM-site in om al het verkeer toe te staan.
az resource update --resource-group $groupName --name <backend-app-name> --namespace Microsoft.Web --resource-type sites --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
5. FTP- en SCM-toegang vergrendelen
Nu de back-end-SCM-site openbaar toegankelijk is, moet u deze vergrendelen met betere beveiliging.
SCHAKEL FTP-toegang uit voor zowel de front-end- als back-endweb-apps. Vervang
<frontend-app-name>
en<backend-app-name>
door uw app-namen.az resource update --resource-group $groupName --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $groupName --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
Schakel basisverificatietoegang tot de WebDeploy-poorten en SCM/geavanceerde hulpprogrammasites voor beide web-apps uit. Vervang
<frontend-app-name>
en<backend-app-name>
door uw app-namen.az resource update --resource-group $groupName --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $groupName --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
Als u basisverificatie voor App Service uitschakelt, wordt de toegang tot de FTP- en SCM-eindpunten beperkt tot gebruikers die worden ondersteund door Microsoft Entra ID, waardoor uw apps verder worden beveiligd. Zie Basisverificatie uitschakelen in App Service voor meer informatie over het uitschakelen van basisverificatie, inclusief het testen en bewaken van aanmeldingen.
6. Continue implementatie configureren met Behulp van GitHub Actions
Navigeer naar de Node.js back-endvoorbeeld-app. Deze app is een eenvoudige Hallo wereld app.
Selecteer de knop Fork in de rechterbovenhoek op de GitHub-pagina.
Selecteer de eigenaar en laat de standaardnaam van de opslagplaats staan.
Selecteer Een fork maken .
Herhaal hetzelfde proces voor de Node.js front-endvoorbeeld-app. Deze app is een eenvoudige web-app die toegang heeft tot een externe URL.
Maak een service-principal. Vervang
<subscription-id>
,<frontend-app-name>
en<backend-app-name>
door uw waarden.az ad sp create-for-rbac --name "myApp" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/$groupName/providers/Microsoft.Web/sites/<frontend-app-name> /subscriptions/<subscription-id>/resourceGroups/$groupName/providers/Microsoft.Web/sites/<backend-app-name> --sdk-auth
De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-apps. Kopieer dit JSON-object voor de volgende stap. Het bevat uw clientgeheim, dat op dit moment alleen zichtbaar is. Het is altijd een goede gewoonte om minimale toegang te verlenen. Het bereik in dit voorbeeld is beperkt tot alleen de apps, niet de hele resourcegroep.
Als u de referenties van de service-principal wilt opslaan als GitHub-geheimen, gaat u naar een van de geforkte voorbeeldopslagplaatsen in GitHub en gaat u naar Instellingen>beveiligingsgeheimen>>en variabelenActies.
Selecteer Nieuw opslagplaatsgeheim en maak een geheim voor elk van de volgende waarden. De waarden vindt u in de json-uitvoer die u eerder hebt gekopieerd.
Naam Weergegeven als AZURE_APP_ID <application/client-id>
AZURE_PASSWORD <client-secret>
AZURE_TENANT_ID <tenant-id>
AZURE_SUBSCRIPTION_ID <subscription-id>
Herhaal dit proces voor de andere geforkte voorbeeldopslagplaats.
Als u continue implementatie wilt instellen met GitHub Actions, meldt u zich aan bij Azure Portal.
Navigeer naar de overzichtspagina voor uw front-endweb-app.
Selecteer Implementatiecentrum in het linkerdeelvenster. Selecteer vervolgens Instellingen.
Selecteer 'GitHub' in het vak Bron in de CI/CD-opties.
Als u voor het eerst vanuit GitHub implementeert, selecteert u Autoriseren en volgt u de autorisatieprompts. Als u wilt implementeren vanuit de opslagplaats van een andere gebruiker, selecteert u Account wijzigen.
Als u de Node.js voorbeeld-app gebruikt die is gesplitst als onderdeel van de vereisten, gebruikt u de volgende instellingen voor organisatie, opslagplaats en vertakking.
Instelling Weergegeven als Organisatie <your-GitHub-organization>
Opslagplaats nodejs-front-end Vertakking main Selecteer Opslaan.
Herhaal dezelfde stappen voor uw back-endweb-app. De instellingen van het Deployment Center worden gegeven in de volgende tabel.
Instelling Weergegeven als Organisatie <your-GitHub-organization>
Opslagplaats nodejs-backend Vertakking main
7. Een service-principal gebruiken voor implementatie van GitHub Actions
Uw Deployment Center-configuratie heeft een standaardwerkstroombestand gemaakt in elk van uw voorbeeldopslagplaatsen, maar maakt standaard gebruik van een publicatieprofiel, dat gebruikmaakt van basisverificatie. Omdat u basisverificatie hebt uitgeschakeld, ziet u, als u het tabblad Logboeken in het Implementatiecentrum controleert, dat de automatisch geactiveerde implementatie een fout oplevert. U moet het werkstroombestand wijzigen om de service-principal te gebruiken voor verificatie met App Service. Zie Het werkstroombestand toevoegen aan uw GitHub-opslagplaats voor voorbeeldwerkstromen.
Open een van uw geforkte GitHub-opslagplaatsen en ga naar de
<repo-name>/.github/workflows/
map.Selecteer het automatisch gegenereerde werkstroombestand en selecteer vervolgens de knop Potlood in de rechterbovenhoek om het bestand te bewerken. Vervang de inhoud door de volgende tekst. Hierbij wordt ervan uitgegaan dat u de GitHub-geheimen eerder hebt gemaakt voor uw referentie. Werk de tijdelijke aanduiding voor
<web-app-name>
onder de sectie env bij en voer deze vervolgens rechtstreeks door naar de hoofdvertakking. Deze doorvoering activeert de GitHub-actie om opnieuw uit te voeren en uw code te implementeren, deze keer met behulp van de service-principal om te verifiëren.name: Build and deploy Node.js app to Azure Web App on: push: branches: - main workflow_dispatch: env: AZURE_WEBAPP_NAME: <web-app-name> # set this to your application's name NODE_VERSION: '18.x' # set this to the node version to use AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Node.js version uses: actions/setup-node@v1 with: node-version: ${{ env.NODE_VERSION }} - name: npm install, build run: | npm install npm run build --if-present - name: Upload artifact for deployment job uses: actions/upload-artifact@v2 with: name: node-app path: . deploy: runs-on: ubuntu-latest needs: build environment: url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: - name: Download artifact from build job uses: actions/download-artifact@v2 with: name: node-app - uses: azure/login@v1 with: creds: | { "clientId": "${{ secrets.AZURE_APP_ID }}", "clientSecret": "${{ secrets.AZURE_PASSWORD }}", "subscriptionId": "${{ secrets.AZURE_SUBSCRIPTION_ID }}", "tenantId": "${{ secrets.AZURE_TENANT_ID }}" } - name: 'Deploy to Azure Web App' id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} - name: logout run: | az logout
Herhaal dit proces voor het werkstroombestand in uw andere geforkte GitHub-opslagplaats.
De nieuwe GitHub-doorvoeringen activeren een andere implementatie voor elk van uw apps. Deze keer moet de implementatie slagen omdat de werkstroom gebruikmaakt van de service-principal voor verificatie met de SCM-sites van de apps.
Zie Continue implementatie voor Azure-app Service voor gedetailleerde richtlijnen over het configureren van continue implementatie met providers zoals GitHub Actions.
8. Verbindingen en app-toegang valideren
Blader naar de front-endweb-app met de URL:
https://<frontend-app-name>.azurewebsites.net
.Voer in het tekstvak de URL voor uw back-endweb-app in:
https://<backend-app-name>.azurewebsites.net
. Als u de verbindingen correct instelt, krijgt u het bericht 'Hallo van de back-endweb-app!'. Dit is de volledige inhoud van de back-endweb-app. Al het uitgaande verkeer van de front-endweb-app wordt gerouteerd via het virtuele netwerk. Uw front-endweb-app maakt veilig verbinding met uw back-endweb-app via het privé-eindpunt. Als er iets mis is met uw verbindingen, loopt uw front-endweb-app vast.Navigeer rechtstreeks naar uw back-endweb-app met de URL:
https://<backend-app-name>.azurewebsites.net
. Als het goed is, ziet u nu het berichtWeb App - Unavailable
. Als u de app kunt bereiken, controleert u of u het privé-eindpunt hebt geconfigureerd en of de toegangsbeperkingen voor uw app zijn ingesteld om al het verkeer voor de hoofdweb-app te weigeren.Als u verder wilt valideren dat de front-endweb-app de back-endweb-app bereikt via een privékoppeling, wordt SSH naar een van de exemplaren van uw front-end verzonden. Voer de volgende opdracht uit om SSH uit te voeren, waarmee een SSH-sessie wordt vastgelegd in de webcontainer van uw app en een externe shell wordt geopend in uw browser.
az webapp ssh --resource-group $groupName --name <frontend-app-name>
Wanneer de shell wordt geopend in uw browser, voert
nslookup
u uit om te bevestigen dat uw back-endweb-app wordt bereikt met behulp van het privé-IP-adres van uw back-endweb-app. U kunt ook uitvoerencurl
om de site-inhoud opnieuw te valideren. Vervang door<backend-app-name>
de naam van uw back-endweb-app.nslookup <backend-app-name>.azurewebsites.net curl https://<backend-app-name>.azurewebsites.net
Het
nslookup
moet worden omgezet in het privé-IP-adres van uw back-endweb-app. Het privé-IP-adres moet een adres uit uw virtuele netwerk zijn. Als u uw privé-IP-adres wilt bevestigen, gaat u naar de netwerkpagina voor uw back-endweb-app.Herhaal dezelfde
nslookup
encurl
opdrachten uit een andere terminal (een terminal die geen SSH-sessie is op de exemplaren van uw front-end).Het
nslookup
retourneert het openbare IP-adres voor de back-endweb-app. Omdat openbare toegang tot de back-endweb-app is uitgeschakeld, krijgt u als u probeert het openbare IP-adres te bereiken, een fout met geweigerde toegang. Deze fout betekent dat deze site niet toegankelijk is vanaf het openbare internet, wat het beoogde gedrag is. Hetnslookup
wordt niet omgezet in het privé-IP-adres, omdat dit alleen kan worden omgezet vanuit het virtuele netwerk via de privé-DNS-zone. Alleen de front-endweb-app bevindt zich in het virtuele netwerk. Als u probeert uit te voerencurl
op de back-endweb-app vanuit de externe terminal, bevatWeb App - Unavailable
de HTML die wordt geretourneerd. Deze fout geeft de HTML weer voor de foutpagina die u eerder hebt gezien toen u probeerde te navigeren naar de back-endweb-app in uw browser.
9. Resources opschonen
In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources niet meer nodig denkt te hebben, verwijdert u de resourcegroep door de volgende opdracht in Cloud Shell uit te voeren.
az group delete --name myresourcegroup
Het kan enkele minuten duren voor deze opdracht is uitgevoerd.
Veelgestelde vragen
- Is er een alternatief voor implementatie met behulp van een service-principal?
- Wat gebeurt er wanneer ik gitHub Actions-implementatie configureer in App Service?
- Is het veilig om de back-end-SCM openbaar toegankelijk te laten?
- Is er een manier om te implementeren zonder de back-end-SCM-site te openen?
- Hoe kan ik deze architectuur implementeren met ARM/Bicep?
Is er een alternatief voor implementatie met behulp van een service-principal?
Aangezien u in deze zelfstudie basisverificatie hebt uitgeschakeld, kunt u zich niet verifiëren met de back-end-SCM-site met een gebruikersnaam en wachtwoord en geen van beide met een publicatieprofiel. In plaats van een service-principal kunt u ook OpenID Connect gebruiken.
Wat gebeurt er wanneer ik gitHub Actions-implementatie configureer in App Service?
Azure genereert automatisch een werkstroombestand in uw opslagplaats. Nieuwe doorvoeringen in de geselecteerde opslagplaats en vertakking worden nu continu geïmplementeerd in uw App Service-app. U kunt de doorvoeringen en implementaties bijhouden op het tabblad Logboeken .
Een standaardwerkstroombestand dat gebruikmaakt van een publicatieprofiel voor verificatie bij App Service, wordt toegevoegd aan uw GitHub-opslagplaats. U kunt dit bestand bekijken door naar de <repo-name>/.github/workflows/
map te gaan.
Is het veilig om de back-end-SCM openbaar toegankelijk te laten?
Wanneer u FTP- en SCM-toegang vergrendelt, zorgt dit ervoor dat alleen door Microsoft Entra ondersteunde principals toegang hebben tot het SCM-eindpunt, ook al is het openbaar toegankelijk. Deze instelling moet u geruststellen dat uw back-endweb-app nog steeds veilig is.
Is er een manier om te implementeren zonder de back-end-SCM-site te openen?
Als u zich zorgen maakt over het inschakelen van openbare toegang tot de SCM-site of als u wordt beperkt door beleid, kunt u andere Implementatieopties van App Service overwegen, zoals uitvoeren vanuit een ZIP-pakket.
Hoe kan ik deze architectuur implementeren met ARM/Bicep?
De resources die u in deze zelfstudie hebt gemaakt, kunnen worden geïmplementeerd met behulp van een ARM/Bicep-sjabloon. Met de app die is verbonden met een bicep-sjabloon voor de back-endweb-app, kunt u een beveiligde N-tier-app-oplossing maken.
Zie Resources implementeren met Bicep en Azure CLI voor meer informatie over het implementeren van ARM-/Bicep-sjablonen.