Beveiliging in Azure App Service
In dit artikel leest u hoe Azure-app Service helpt bij het beveiligen van uw web-app, back-end van mobiele apps, API-app en functie-app. Ook ziet u hoe u uw app verder kunt beveiligen met de ingebouwde App Service-functies.
De platformonderdelen van App Service, waaronder Azure-VM's, opslag, netwerkverbindingen, webframeworks, beheer- en integratiefuncties, worden actief beveiligd en beveiligd. App Service doorloopt doorlopend krachtige nalevingscontroles om ervoor te zorgen dat:
- Uw app-resources worden beveiligd vanuit de Azure-resources van de andere klanten.
- VM-exemplaren en runtimesoftware worden regelmatig bijgewerkt om nieuwe gedetecteerde beveiligingsproblemen op te pakken.
- Communicatie van geheimen (zoals verbindingsreeks s) tussen uw app en andere Azure-resources (zoals SQL Database) blijft binnen Azure en overschrijdt geen netwerkgrenzen. Geheimen worden altijd versleuteld wanneer ze worden opgeslagen.
- Alle communicatie via de App Service-connectiviteitsfuncties, zoals hybride verbinding, wordt versleuteld.
- Verbindingen met hulpprogramma's voor extern beheer, zoals Azure PowerShell, Azure CLI, Azure SDK's, REST API's, worden allemaal versleuteld.
- 24-uurs bedreigingsbeheer beschermt de infrastructuur en het platform tegen malware, gedistribueerde denial-of-service (DDoS), man-in-the-middle (MITM) en andere bedreigingen.
Zie Het Vertrouwenscentrum van Azure voor meer informatie over infrastructuur- en platformbeveiliging in Azure.
In de volgende secties ziet u hoe u uw App Service-app verder kunt beveiligen tegen bedreigingen.
HTTPS en certificaten
Met App Service kunt u uw apps beveiligen met HTTPS. Wanneer uw app wordt gemaakt, is de standaarddomeinnaam (<app_name.azurewebsites.net>) al toegankelijk via HTTPS. Als u een aangepast domein voor uw app configureert, moet u het ook beveiligen met een TLS/SSL-certificaat , zodat clientbrowsers beveiligde HTTPS-verbindingen met uw aangepaste domein kunnen maken. Er zijn verschillende typen certificaten die door App Service worden ondersteund:
- Gratis door App Service beheerd certificaat
- App Service-certificaat
- Certificaat van derden
- Certificaat geïmporteerd uit Azure Key Vault
Zie Een TLS/SSL-certificaat toevoegen in Azure-app Service voor meer informatie.
Onveilige protocollen (HTTP, TLS 1.0, FTP)
Om uw app te beveiligen tegen alle niet-versleutelde (HTTP)-verbindingen, biedt App Service een configuratie met één klik om HTTPS af te dwingen. Onbeveiligde aanvragen worden uitgeschakeld voordat ze zelfs uw toepassingscode bereiken. Zie HTTPS afdwingen voor meer informatie.
TLS 1.0 wordt niet langer beschouwd als veilig volgens industriestandaarden, zoals PCI DSS. Met App Service kunt u verouderde protocollen uitschakelen door TLS 1.1/1.2 af te dwingen.
App Service ondersteunt zowel FTP als FTPS voor het implementeren van uw bestanden. FTPS moet echter worden gebruikt in plaats van FTP, indien mogelijk. Als een of beide protocollen niet in gebruik zijn, moet u deze uitschakelen.
Beperkingen voor statische IP-adressen
Standaard accepteert uw App Service-app aanvragen van alle IP-adressen van internet, maar u kunt die toegang beperken tot een kleine subset van IP-adressen. Met App Service in Windows kunt u een lijst definiëren met IP-adressen die toegang hebben tot uw app. De lijst met toegestane adressen kan afzonderlijke IP-adressen of een bereik van IP-adressen bevatten die zijn gedefinieerd door een subnetmasker. Zie Azure-app Statische IP-beperkingen voor services voor meer informatie.
Voor App Service in Windows kunt u ip-adressen ook dynamisch beperken door de web.config te configureren. Zie Dynamic IP Security <dynamicIpSecurity> voor meer informatie.
Clientverificatie en autorisatie
Azure-app Service biedt kant-en-klare verificatie en autorisatie van gebruikers of client-apps. Wanneer deze functie is ingeschakeld, kunnen gebruikers en client-apps worden aangemeld met weinig of geen toepassingscode. U kunt uw eigen verificatie- en autorisatieoplossing implementeren of Toestaan dat App Service deze voor u afhandelt. De verificatie- en autorisatiemodule verwerkt webaanvragen voordat deze worden verzonden naar uw toepassingscode en weigert niet-geautoriseerde aanvragen voordat ze uw code bereiken.
App Service-verificatie en -autorisatie ondersteunen meerdere verificatieproviders, waaronder Microsoft Entra ID, Microsoft-accounts, Facebook, Google en X. Zie Verificatie en autorisatie in Azure-app Service voor meer informatie.
Verificatie van service-tot-service
Wanneer u verificatie uitvoert voor een back-endservice, biedt App Service twee verschillende mechanismen, afhankelijk van uw behoeften:
- Service-identiteit : meld u aan bij de externe resource met behulp van de identiteit van de app zelf. Met App Service kunt u eenvoudig een beheerde identiteit maken, die u kunt gebruiken voor verificatie met andere services, zoals Azure SQL Database of Azure Key Vault. Zie Secure Azure SQL Database connection from App Service using a managed identity (Beveiligde Azure SQL Database-verbinding vanuit App Service) voor een end-to-end-zelfstudie van deze benadering.
- Namens (OBO) - Gedelegeerde toegang tot externe bronnen maken namens de gebruiker. Met Microsoft Entra ID als verificatieprovider kan uw App Service-app gedelegeerde aanmelding uitvoeren bij een externe service, zoals Microsoft Graph of een externe API-app in App Service. Zie Eindgebruikers end-to-end verifiëren en autoriseren in Azure-app Service voor een end-to-end-zelfstudie over deze benadering.
Connectiviteit met externe resources
Er zijn drie typen externe resources die uw app mogelijk nodig heeft om toegang te krijgen tot:
In elk van deze gevallen biedt App Service een manier om beveiligde verbindingen te maken, maar u moet nog steeds de aanbevolen beveiligingsprocedures observeren. Gebruik bijvoorbeeld altijd versleutelde verbindingen, zelfs als de back-endresource niet-versleutelde verbindingen toestaat. Zorg er bovendien voor dat uw back-end Azure-service de minimale set IP-adressen toestaat. U vindt de uitgaande IP-adressen voor uw app op binnenkomende en uitgaande IP-adressen in Azure-app Service.
Azure-resources
Wanneer uw app verbinding maakt met Azure-resources, zoals SQL Database en Azure Storage, blijft de verbinding binnen Azure en overschrijdt deze geen netwerkgrenzen. De verbinding gaat echter via het gedeelde netwerk in Azure, dus zorg er altijd voor dat uw verbinding is versleuteld.
Als uw app wordt gehost in een App Service-omgeving, moet u verbinding maken met ondersteunde Azure-services met behulp van service-eindpunten van virtual network.
Resources in een virtueel Azure-netwerk
Uw app heeft toegang tot resources in een virtueel Azure-netwerk via virtual network-integratie. De integratie wordt tot stand gebracht met een virtueel netwerk met behulp van een punt-naar-site-VPN. De app heeft vervolgens toegang tot de resources in het virtuele netwerk met behulp van hun privé-IP-adressen. De punt-naar-site-verbinding gaat echter nog steeds door de gedeelde netwerken in Azure.
Als u uw resourceconnectiviteit volledig wilt isoleren van de gedeelde netwerken in Azure, maakt u uw app in een App Service-omgeving. Omdat een App Service-omgeving altijd wordt geïmplementeerd in een toegewezen virtueel netwerk, is de connectiviteit tussen uw app en resources binnen het virtuele netwerk volledig geïsoleerd. Zie Netwerkisolatie voor andere aspecten van netwerkbeveiliging in een App Service-omgeving.
On-premises resources
U kunt op drie manieren veilig toegang krijgen tot on-premises resources, zoals databases:
- Hybride verbindingen : hiermee wordt een punt-naar-punt-verbinding met uw externe resource tot stand gebracht via een TCP-tunnel. De TCP-tunnel wordt tot stand gebracht met BEHULP van TLS 1.2 met SAS-sleutels (Shared Access Signature).
- Integratie van virtueel netwerk met site-naar-site-VPN: zoals beschreven in resources in een virtueel Azure-netwerk, maar het virtuele netwerk kan worden verbonden met uw on-premises netwerk via een site-naar-site-VPN. In deze netwerktopologie kan uw app verbinding maken met on-premises resources, zoals andere resources in het virtuele netwerk.
- App Service-omgeving met site-naar-site-VPN: zoals beschreven in resources in een virtueel Azure-netwerk, maar het virtuele netwerk kan worden verbonden met uw on-premises netwerk via een site-naar-site-VPN. In deze netwerktopologie kan uw app verbinding maken met on-premises resources, zoals andere resources in het virtuele netwerk.
Toepassingsgeheimen
Sla geen toepassingsgeheimen op, zoals databasereferenties, API-tokens en persoonlijke sleutels in uw code- of configuratiebestanden. De veelgebruikte benadering is om ze te openen als omgevingsvariabelen met behulp van het standaardpatroon in uw gewenste taal. In App Service is de manier om omgevingsvariabelen te definiëren via app-instellingen (en, met name voor .NET-toepassingen, verbindingsreeks s). App-instellingen en verbindingsreeks s worden versleuteld opgeslagen in Azure en ze worden alleen ontsleuteld voordat ze worden opgenomen in het procesgeheugen van uw app wanneer de app wordt gestart. De versleutelingssleutels worden regelmatig geroteerd.
U kunt uw App Service-app ook integreren met Azure Key Vault voor geavanceerd geheimenbeheer. Door toegang te krijgen tot Key Vault met een beheerde identiteit, heeft uw App Service-app veilig toegang tot de geheimen die u nodig hebt.
Netwerkisolatie
Met uitzondering van de geïsoleerde prijscategorie voeren alle lagen uw apps uit op de infrastructuur van het gedeelde netwerk in App Service. De openbare IP-adressen en front-end load balancers worden bijvoorbeeld gedeeld met andere tenants. De geïsoleerde laag biedt u volledige netwerkisolatie door uw apps uit te voeren in een toegewezen App Service-omgeving. Een App Service-omgeving wordt uitgevoerd in uw eigen exemplaar van Azure Virtual Network. Hiermee kunt u het volgende doen:
- Uw apps bedienen via een toegewezen openbaar eindpunt, met toegewezen front-ends.
- Interne toepassing bedienen met behulp van een interne load balancer (ILB), die alleen toegang vanuit uw Virtuele Azure-netwerk toestaat. De ILB heeft een IP-adres van uw privésubnet, dat een totale isolatie van uw apps vanaf internet biedt.
- Gebruik een ILB achter een Web Application Firewall (WAF). WaF biedt beveiliging op ondernemingsniveau voor uw openbare toepassingen, zoals DDoS-beveiliging, URI-filtering en PREVENTIE van SQL-injectie.
DDoS-bescherming
Voor webworkloads raden we u ten zeerste aan azure DDoS-beveiliging en een webtoepassingsfirewall te gebruiken om te beschermen tegen opkomende DDoS-aanvallen. Een andere optie is om Azure Front Door samen met een firewall voor webtoepassingen te implementeren. Azure Front Door biedt beveiliging op platformniveau tegen DDoS-aanvallen op netwerkniveau.
Zie Inleiding tot Azure-app Service Environments voor meer informatie.