Beveiliging in Azure App Service
In dit artikel wordt beschreven hoe Azure App Service web-app, back-end voor mobiele apps, API-app en functie-app kunt beveiligen. U ziet ook hoe u uw app verder kunt beveiligen met de ingebouwde App Service functies.
De platform onderdelen van App Service, waaronder Azure Vm's, opslag, netwerk verbindingen, Web frameworks, beheer-en integratie functies, zijn actief beveiligd en gehard. App Service doorlopende controle van de naleving door de krachtige controles om ervoor te zorgen dat:
- Uw app-resources worden beveiligd vanuit de Azure-resources van de andere klanten.
- VM-exemplaren en runtime-software worden regel matig bijgewerkt om onlangs ontdekte beveiligings problemen op te lossen.
- Communicatie van geheimen (zoals verbindings reeksen) tussen uw app en andere Azure-resources (zoals SQL database) blijft binnen Azure en heeft geen netwerk grenzen. Geheimen worden altijd versleuteld wanneer ze worden opgeslagen.
- Alle communicatie via de App Service connectiviteits functies, zoals hybride verbinding, wordt versleuteld.
- Verbindingen met hulpprogram ma's voor extern beheer zoals Azure PowerShell, Azure CLI, Azure Sdk's, REST Api's, worden allemaal versleuteld.
- 24-uurs Threat Management beschermt de infra structuur en het platform tegen malware, gedistribueerde Denial-of-service (DDoS), man-in-the-Middle (MITM) en andere bedreigingen.
Zie Vertrouwenscentrum van Azurevoor meer informatie over de infra structuur en platform beveiliging in Azure.
In de volgende secties ziet u hoe u uw app verder kunt beveiligen App Service tegen bedreigingen.
HTTPS en certificaten
App Service kunt u uw apps beveiligen met HTTPS. Wanneer uw app is gemaakt, is de standaarddomeinnaam <app_name> (.azurewebsites.net) al toegankelijk via HTTPS. Als u een aangepast domein voor uw appconfigureert, moet u dit ook beveiligen met een TLS/SSL-certificaat, zodat clientbrowsers beveiligde HTTPS-verbindingen met uw aangepaste domein kunnen maken. Er zijn verschillende typen certificaten die worden ondersteund door App Service:
- Gratis App Service beheerd certificaat
- App Service certificaat
- Certificaat van derden
- Certificaat geïmporteerd uit Azure Key Vault
Zie Add a TLS/SSL certificate in Azure App Service (Een TLS/SSL-certificaat toevoegen in Azure App Service.
Onveilige protocollen (HTTP, TLS 1.0, FTP)
Als u uw app wilt beveiligen tegen alle niet-versleutelde (HTTP)-verbindingen, biedt App Service 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 meer als veilig beschouwd door industriestandaarden, zoals PCI DSS. App Service kunt u verouderde protocollen uitschakelen door TLS 1.1/1.2 af te afdwingen.
App Service ondersteunt zowel FTP als FTPS voor het implementeren van uw bestanden. FTPS moet echter worden gebruikt in plaats van FTP, indien mogelijk. Wanneer een of beide protocollen niet in gebruik zijn, moet u ze 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 IP-adressen. App Service op Windows kunt u een lijst definiëren met IP-adressen die toegang hebben tot uw app. De lijst met toegestane ip-adressen kan afzonderlijke IP-adressen of een bereik van IP-adressen bevatten die zijn gedefinieerd door een subnetmasker. Zie statische IP Azure App Service beperkingen voor meer informatie.
Voor App Service op Windows kunt u IP-adressen ook dynamisch beperken door de configuratie van web.config. Zie Dynamische IP-beveiliging <dynamicIpSecurity> voor meer informatie.
Clientverificatie en -autorisatie
Azure App Service biedt gebruikssleutelverificatie en autorisatie van gebruikers of client-apps. Wanneer deze functie is ingeschakeld, kan het gebruikers en client-apps aanmelden met weinig of geen toepassingscode. U kunt uw eigen verificatie- en autorisatieoplossing implementeren of toestaan App Service deze voor u af te handelen. De verificatie- en autorisatiemodule verwerkt webaanvragen voordat ze aan uw toepassingscode worden gegeven. Ook worden niet-geautoriseerde aanvragen afgedwongen voordat ze uw code bereiken.
App Service verificatie en autorisatie ondersteunen meerdere verificatieproviders, waaronder Azure Active Directory, Microsoft-accounts, Facebook, Google en Twitter. Raadpleeg Verificatie en autorisatie in Azure App Service voor meer informatie.
Verificatie van service-tot-service
Bij het authenticeren op basis van een back-endservice biedt App Service twee verschillende mechanismen, afhankelijk van uw behoefte:
- Service-identiteit: meld u aan bij de externe resource met behulp van de identiteit van de app zelf. App Service kunt u eenvoudig een beheerde identiteit maken, die u kunt gebruiken om te verifiëren bij andere services, zoals Azure SQL Database of Azure Key Vault. Zie Secure Azure SQL Database connection from App Service using a managed identity (Beveiligde verbinding vanuit een App Service met behulp van een beheerde identiteit) voor een end-to-end zelfstudie van deze benadering.
- On-behalf-of (OBO) - Gedelegeerde toegang tot externe resources namens de gebruiker maken. Met Azure Active Directory als verificatieprovider kan uw App Service-app gedelegeerde aanmelding uitvoeren bij een externe service, zoals Microsoft Graph API of een externe API-app in App Service. Zie Gebruikers end-to-end verifiëren en autoriseren in Azure App Service voor een end-to-end zelfstudie van deze Azure App Service.
Connectiviteit met externe resources
Er zijn drie soorten externe resources die uw app mogelijk moet openen:
In elk van deze gevallen biedt App Service u een manier om beveiligde verbindingen te maken, maar u moet nog steeds de best practices voor beveiliging volgen. Gebruik bijvoorbeeld altijd versleutelde verbindingen, zelfs als de back-endresource niet-versleutelde verbindingen toestaat. Bovendien moet u ervoor zorgen dat uw back-end Azure-service de minimale set IP-adressen toestaat. U vindt de uitgaande IP-adressen voor uw app op Inkomendeen 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 verloopt echter via de gedeelde netwerken 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 Virtual Network service-eindpunten.
Resources in een Azure-Virtual Network
Uw app heeft toegang tot resources in een Azure-Virtual Network via Virtual Network integratie. De integratie wordt tot stand gebracht met Virtual Network gebruik van een punt-naar-site-VPN. De app heeft vervolgens toegang tot de resources in de Virtual Network hun privé-IP-adressen. De punt-naar-site-verbinding passeert echter nog steeds de gedeelde netwerken in Azure.
Als u uw resourceconnectiviteit volledig wilt isoleren van de gedeelde netwerken in Azure, maakt u uw app in App Service omgeving. Omdat een App Service-omgeving altijd wordt geïmplementeerd op een toegewezen Virtual Network, is de connectiviteit tussen uw app en resources binnen de Virtual Network volledig geïsoleerd. Zie Netwerkisolatie voor andere aspecten van netwerkbeveiliging in 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 TLS 1.2 met SAS-sleutels (Shared Access Signature).
- Virtual Network integratie met site-naar-site-VPN: zoals beschreven in Resources in een Azure Virtual Network,maar de Virtual Network 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 de Virtual Network.
- App Service omgeving met site-naar-site-VPN: zoals beschreven in Resources in een Azure Virtual Network,maar de Virtual Network 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 de Virtual Network.
Toepassingsgeheimen
Sla toepassingsgeheimen, zoals databasereferenties, API-tokens en persoonlijke sleutels, niet op in uw code of configuratiebestanden. De algemeen geaccepteerde benadering is om ze te gebruiken als omgevingsvariabelen met behulp van het standaardpatroon in de taal van uw keuze. In App Service kunt u omgevingsvariabelen definiëren via app-instellingen (en, met name voor .NET-toepassingen, verbindingsreeksen). App-instellingen en verbindingsreeksen worden versleuteld opgeslagen in Azure en worden alleen ontsleuteld voordat ze worden geïnjecteerd in het procesgeheugen van uw app wanneer de app wordt gestart. De versleutelingssleutels worden regelmatig geroteerd.
U kunt uw app ook App Service integreren met Azure Key Vault voor geavanceerd geheimenbeheer. Door toegang te krijgen tot de Key Vaultmet een beheerde identiteit, heeft App Service app veilig toegang tot de geheimen die u nodig hebt.
Netwerkisolatie
Met uitzondering van de prijscategorie Isolated worden uw apps in alle lagen uitgevoerd op de gedeelde netwerkinfrastructuur in App Service. De openbare IP-adressen en front-end load balancers worden bijvoorbeeld gedeeld met andere tenants. De isolated-laag biedt u volledige netwerkisolatie door uw apps uit te App Service toegewezen omgeving. Een App Service 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), waarmee alleen toegang vanuit uw Azure-Virtual Network. De ILB heeft een IP-adres uit uw privésubnet, dat totale isolatie van uw apps van internet biedt.
- Gebruik een ILB achter een Web Application Firewall (WAF). De WAF biedt beveiliging op ondernemingsniveau voor uw openbare toepassingen, zoals DDoS-beveiliging, URI-filtering en het voorkomen SQL injectie.
Zie Introduction to Azure App Service Environments (Inleiding tot Azure App Service omgevingen) voor meer informatie.