Delen via


Veilig beheerde webtoepassingen

Azure App Service
Azure Application Gateway
Azure SQL-database
Azure VPN-gateway
Azure Web Application Firewall

In dit artikel wordt beschreven hoe u beveiligde toepassingen implementeert met behulp van de App Service Environment. Deze architectuur maakt gebruik van Azure Application Gateway en Azure Web Application Firewall om de toegang tot toepassingen vanaf internet te beperken. In dit artikel wordt ook uitgelegd hoe u continue integratie en continue implementatie (CI/CD) integreert met App Service Environments met behulp van Azure DevOps.

Branches zoals banken en verzekeringen gebruiken deze oplossing vaak omdat klanten zowel beveiliging op platformniveau als op toepassingsniveau waarderen. Om deze concepten te demonstreren, kunnen gebruikers met de volgende voorbeeldtoepassing onkostendeclaraties indienen.

Architectuur

Diagram met de voorbeeldscenarioarchitectuur voor een beveiligde interne load balancer App Service Environment-implementatie.

Download een Visio-bestand van deze architectuur.

Gegevensstroom

De volgende gegevensstroom komt overeen met het vorige diagram:

  1. HTTP- en HTTPS-aanvragen bereiken de toepassingsgateway.

  2. Optioneel is Microsoft Entra-verificatie ingeschakeld voor de web-app. Nadat het verkeer de toepassingsgateway heeft bereikt, wordt de gebruiker gevraagd referenties op te geven om te verifiëren bij de toepassing. In het diagram wordt deze stap niet weergegeven.

  3. De gebruiker vraagt om stroom via de interne load balancer (ILB) van de omgeving, waarmee het verkeer naar de onkostenweb-app wordt gerouteerd.

  4. De gebruiker maakt een onkostendeclaratie.

  5. Als onderdeel van het maken van het onkostenrapport wordt de geïmplementeerde API-app aangeroepen om de managernaam en het e-mailadres van de gebruiker op te halen.

  6. Het systeem slaat het onkostenrapport op in Azure SQL Database.

  7. Om continue implementatie te vergemakkelijken, wordt code ingecheckt in het Azure DevOps-exemplaar.

  8. De virtuele buildmachine (VM) bevat de Azure DevOps-agent. Met deze agent kan de build-VM de artefacten van de web-app ophalen en gebruiken om de web-app te implementeren in de App Service Environment. De build-VM bevindt zich in een subnet binnen hetzelfde virtuele netwerk als de App Service Environment.

Onderdelen

  • De App Service Environment biedt een volledig geïsoleerde, toegewezen omgeving om de toepassing veilig op grote schaal uit te voeren. Zowel de App Service-omgeving als de bijbehorende workloads bevinden zich achter een virtueel netwerk, dus de installatie voegt een extra beveiligingslaag en isolatie toe. In dit scenario wordt een ILB App Service Environment gebruikt om te voldoen aan de behoefte aan grootschalige en isolatie.

  • Deze workload maakt gebruik van de prijscategorie App Service Isolated. De toepassing wordt uitgevoerd in een privé-toegewezen omgeving in een Azure-datacenter dat gebruikmaakt van snellere processors en SSD-opslag (Solid State Drive) en biedt de maximale uitschaalmogelijkheden.

  • De functies web-apps en API-apps van App Service-hostwebtoepassingen en RESTful-API's. Deze apps en API's worden gehost in het Geïsoleerde serviceplan, dat ook automatische schaalaanpassing, aangepaste domeinen en andere mogelijkheden biedt in een toegewezen laag.

  • Application Gateway is een load balancer voor webverkeer op laag 7 die verkeer naar de webtoepassing beheert. Het biedt SSL-offloading (Secure Sockets Layer), waardoor de overhead van het ontsleutelen van verkeer wordt verwijderd van de webservers die de toepassing hosten.

  • Web Application Firewall is een functie van Application Gateway die de beveiliging verbetert. De webtoepassingsfirewall maakt gebruik van OWASP-regels (Open Worldwide Application Security Project) om de webtoepassing te beschermen tegen aanvallen, zoals scripting op meerdere sites, sessiekapingen en SQL-injectie.

  • Sql Database slaat de gegevens van de toepassing op. De meeste gegevens zijn relationeel, waarbij sommige gegevens zijn opgeslagen als documenten en blobs.

  • Azure Virtual Network biedt verschillende netwerkmogelijkheden in Azure. U kunt virtuele netwerken met elkaar koppelen en verbindingen tot stand brengen met on-premises datacenters via ExpressRoute of een site-naar-site virtueel particulier netwerk (VPN). Met dit scenario kan een service-eindpunt in het virtuele netwerk ervoor zorgen dat de gegevens alleen stromen tussen het virtuele Azure-netwerk en het SQL Database-exemplaar.

  • Azure DevOps ondersteunt flexibele ontwikkeling door teams te helpen samenwerken tijdens sprints en door hulpprogramma's te bieden voor het maken van build- en release-pijplijnen.

  • Met een Azure-build-VM kan de geïnstalleerde agent de betreffende build omlaag halen en de web-app implementeren in de omgeving.

Alternatieven

Een App Service-omgeving kan reguliere web-apps uitvoeren in Windows of, zoals in dit voorbeeld, web-apps die worden uitgevoerd als Linux-containers die in de omgeving zijn geïmplementeerd. In dit scenario wordt een App Service Environment gebruikt voor het hosten van deze toepassingen met één exemplaar in containers. Houd rekening met de volgende alternatieven wanneer u uw oplossing ontwerpt:

  • Azure Container Apps is een serverloos platform dat de overhead van de infrastructuur vermindert en kosten bespaart tijdens het uitvoeren van toepassingen in containers. Het elimineert de noodzaak om serverconfiguratie, containerindeling en implementatiedetails te beheren. Container Apps biedt alle up-to-datumserverresources die nodig zijn om uw toepassingen stabiel en veilig te houden.

  • Azure Kubernetes Service (AKS) is een opensource-project en een indelingsplatform dat is ontworpen voor het hosten van complexe toepassingen met meerdere containers die doorgaans gebruikmaken van een architectuur op basis van microservices. AKS is een beheerde Azure-service die het inrichten en configureren van een Kubernetes-cluster vereenvoudigt. U moet veel kennis hebben van het Kubernetes-platform om het te ondersteunen en te onderhouden, dus het hosten van slechts enkele in containers geplaatste webtoepassingen met één exemplaar is mogelijk niet de beste optie.

Gebruik het volgende alternatief voor de gegevenslaag:

  • Azure Cosmos DB is een goede optie als de meeste gegevens een niet-relationele indeling hebben.

Potentiële gebruikscases

Houd rekening met deze oplossing voor de volgende gebruiksvoorbeelden:

  • Bouw een Azure-web-app waarvoor extra beveiliging is vereist.
  • Geef toegewezen tenancy op in plaats van gedeelde App Service-abonnementen voor tenants.
  • Azure DevOps gebruiken met een app-omgeving met interne taakverdeling .

Beslissingen over TLS- en DNS-ontwerpadressen

De DNS-instellingen (Domain Name System) voor het standaarddomeinachtervoegsel van de App Service Environment beperken de bereikbaarheid van toepassingen niet tot die namen. Met de functie voor het achtervoegsel voor een aangepast domein voor een ILB App Service Environment kunt u uw eigen domeinachtervoegsel gebruiken voor toegang tot de toepassingen die worden gehost in uw App Service Environment.

Een aangepast domeinachtervoegsel definieert een hoofddomein dat door de App Service Environment wordt gebruikt. Voor een ILB App Service-omgeving is appserviceenvironment.nethet standaardhoofddomein. Een ILB App Service Environment is intern voor het virtuele netwerk van een klant, zodat klanten een hoofddomein kunnen gebruiken naast het standaarddomein dat overeenkomt met hun virtuele netwerkomgeving. Contoso Corporation kan bijvoorbeeld een standaardhoofddomein van internal.contoso.com apps gebruiken dat is bedoeld om te worden omgezet en alleen bereikbaar binnen het virtuele netwerk van Contoso. Een app in dit virtuele netwerk kan worden bereikt door toegang te krijgen APP-NAME.internal.contoso.com.

Het achtervoegsel van het aangepaste domein is van toepassing op de App Service-omgeving. Deze functie verschilt van een aangepaste domeinbinding op een afzonderlijk App Service-exemplaar.

Als het certificaat dat wordt gebruikt voor het achtervoegsel van het aangepaste domein een SAN-vermelding *.scm.CUSTOM-DOMAIN(Subject Alternate Name) bevat, wordt de SCM-site (Source Control Manager) bereikbaar vanaf APP-NAME.scm.CUSTOM-DOMAIN. U hebt alleen toegang tot SCM via aangepast domein met behulp van basisverificatie. Eenmalige aanmelding is alleen beschikbaar wanneer u het standaardhoofddomein gebruikt.

Houd rekening met de volgende factoren wanneer u certificaten beheert in een ILB App Service Environment:

  • Sla een geldig SSL- of TLS-certificaat (Transport Layer Security) op in een Azure-sleutelkluis in . PFX-indeling.

  • Zorg ervoor dat het certificaat kleiner is dan 20 kB.

  • Gebruik een jokertekencertificaat voor de geselecteerde aangepaste domeinnaam.

  • Configureer een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit voor uw App Service-omgeving. De beheerde identiteit wordt geverifieerd bij de Azure-sleutelkluis waar het SSL- of TLS-certificaat zich bevindt.

  • Verwacht dat de App Service Environment certificaatwijzigingen binnen 24 uur na rotatie in een sleutelkluis toepast.

Netwerktoegang tot Azure Key Vault

  • U hebt toegang tot de sleutelkluis openbaar of via een privé-eindpunt dat bereikbaar is vanuit het subnet waar de App Service Environment is geïmplementeerd.

  • Als u openbare toegang gebruikt, kunt u uw sleutelkluis beveiligen om alleen verkeer van het uitgaande IP-adres van de App Service-omgeving te accepteren.

  • De App Service Environment gebruikt het uitgaande IP-adres van het platform als bronadres wanneer deze toegang heeft tot de sleutelkluis. U vindt dit IP-adres op de pagina IP-adressen in Azure Portal.

DNS-configuratie

Als u toegang wilt krijgen tot uw toepassingen in uw App Service Environment met behulp van uw aangepaste domeinachtervoegsel, configureert u uw eigen DNS-server of configureert u DNS in een privé-DNS-zone van Azure voor uw aangepaste domein. Zie DNS-configuratie voor meer informatie.

Unieke standaardhostnaam beveiligen

De beveiligde, unieke standaardhostnaamfunctie biedt een langetermijnoplossing om uw resources te beschermen tegen zwevende DNS-vermeldingen en overname van subdomeinen. Als u deze functie inschakelt voor uw App Service-resources, kan niemand buiten uw organisatie resources met dezelfde standaardhostnaam opnieuw maken. Deze beveiliging voorkomt dat kwaadwillende actoren misbruik maken van zwevende DNS-vermeldingen en het overnemen van subdomeinen. Zie Unieke standaardhostnamen beveiligen voor meer informatie.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Well-Architected Framework voor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie de controlelijst ontwerpbeoordeling voor betrouwbaarheid voor meer informatie.

Beschikbaarheid

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie de controlelijst ontwerpbeoordeling voor beveiliging voor meer informatie.

Kostenoptimalisatie

Kostenoptimalisatie richt zich op manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie de controlelijst ontwerpbeoordeling voor Kostenoptimalisatie voor meer informatie.

Bekijk de kosten voor het uitvoeren van dit scenario. De volgende voorbeeldkostenprofielen zijn gebaseerd op verwacht verkeer. Alle services zijn vooraf geconfigureerd in de kostencalculator.

  • Kleine implementatie: Dit prijsvoorbeeld vertegenwoordigt de onderdelen voor een minimaal productieniveauexemplementatie die elke maand een paar duizend gebruikers bedient. De app maakt gebruik van één klein exemplaar van een geïsoleerde web-app. Elk extra onderdeel wordt geschaald naar een Basic-laag om de kosten te minimaliseren en tegelijkertijd te zorgen voor sla-ondersteuning (Service Level Agreement) en voldoende capaciteit voor het afhandelen van een workload op productieniveau.

  • Gemiddelde implementatie: Dit prijsvoorbeeld vertegenwoordigt de onderdelen voor een implementatie met gemiddelde grootte die elke maand ongeveer 100.000 gebruikers bedient. Een gemiddeld formaat van één geïsoleerde App Service-instantie beheert het verkeer. De capaciteitstoename van Application Gateway en SQL Database ter ondersteuning van de toegevoegde workload.

  • Grote implementatie: Dit prijsvoorbeeld vertegenwoordigt de onderdelen voor een toepassing op grote schaal die elke maand miljoenen gebruikers bedient en terabytes aan gegevens verplaatst. Voor dit gebruiksniveau zijn krachtige, geïsoleerde web-apps vereist die zijn geïmplementeerd in meerdere regio's en die worden fronted door Azure Traffic Manager. De schatting omvat Traffic Manager en extra Application Gateway- en Virtual Network-exemplaren. De capaciteit van de SQL Database neemt toe ter ondersteuning van de toegevoegde workload.

Als u de prijzen voor uw specifieke use-case wilt zien, wijzigt u de juiste variabelen zodat deze overeenkomen met het verwachte verkeer.

Prestatie-efficiëntie

Prestatie-efficiëntie verwijst naar de mogelijkheid van uw workload om efficiënt te voldoen aan de behoeften van de gebruiker. Zie de controlelijst ontwerpbeoordeling voor prestatie-efficiëntie voor meer informatie.

Medewerkers

Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.

Hoofdauteur:

  • Nicholas McCollum | Hoofdklantingenieur

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen