Best Practices for Securing Azure App Service Web Apps

Understanding Azure App Service Security

Azure App Service has become one of the most popular platform-as-a-service (PaaS) offerings for hosting web applications, mobile backends, RESTful APIs, and serverless functions in the cloud. Azure App Service provides a platform-as-a-service (PaaS) environment that enables you to build, deploy, and scale web apps, mobile app backends, RESTful APIs, and function apps. With its ease of deployment, automatic scaling capabilities, and comprehensive feature set, it’s no wonder that organizations worldwide rely on Azure App Service for their critical applications.

However, with the convenience of cloud hosting comes the critical responsibility of securing your applications and data. When deploying this service, it’s important to follow security best practices to protect your applications, data, and infrastructure. Security breaches can result in data loss, regulatory compliance violations, reputational damage, and significant financial costs. Therefore, implementing comprehensive security measures is not optional—it’s essential for any organization running production workloads on Azure App Service.

This comprehensive guide explores the best practices for securing Azure App Service Web Apps, covering authentication and authorization, network security, encryption, secrets management, monitoring, and ongoing maintenance. By following these recommendations, you can build a robust, multi-layered security posture that protects your applications from modern threats while maintaining operational efficiency.

Platform-Level Security Features

Before diving into specific security configurations, it’s important to understand the security foundation that Azure App Service provides out of the box. Azure App Service actively secures and hardens its platform components, including Azure virtual machines (VMs), storage, network connections, web frameworks, and management and integration features. This means that Microsoft handles many infrastructure-level security concerns automatically.

App Service undergoes continuous, rigorous compliance checks to ensure that each app is segregated from other Azure apps and resources, regular updates of VMs and runtime software address newly discovered vulnerabilities, and communication of secrets and connection strings between apps and other Azure resources like Azure SQL Database occurs only within Azure, without crossing any network boundaries. Additionally, continuous threat management protects the infrastructure and platform against malware, distributed denial-of-service (DDoS) and man-in-the-middle attacks, and other threats.

While these platform-level protections provide a strong foundation, they represent only the beginning of your security journey. The shared responsibility model in cloud computing means that while Microsoft secures the underlying infrastructure, you are responsible for securing your applications, data, and access controls.

Implement Strong Authentication and Authorization

Authentication and authorization form the first line of defense for your web applications. Properly configured identity and access management ensures that only authorized users can access your applications and that they can only perform actions appropriate to their roles.

Azure Active Directory Integration

Azure App Service provides built-in authentication (signing in users) and authorization (providing access to secure data) capabilities, sometimes called Easy Auth, which you can use to sign in users and access data by writing little or no code in your web app, RESTful API, mobile server, and functions. This built-in authentication module runs as middleware that intercepts incoming HTTP requests before they reach your application code.

To configure Azure Active Directory (now Microsoft Entra ID) authentication for your App Service application, navigate to the Authentication section in the Azure portal and add Microsoft as an identity provider. With App Service, you can integrate authentication capabilities into your web app or API without implementing them yourself, as this feature is built directly into the platform and doesn’t require any particular language, SDK, security expertise, or code, and you can integrate it with multiple sign-in providers, such as Microsoft Entra, Facebook, Google, and X.

When configuring authentication, you have two primary options for handling unauthenticated requests. The “Require authentication” option rejects any unauthenticated traffic to your application. Alternatively, the “Allow unauthenticated requests” option defers authorization of unauthenticated traffic to your application code and provides more flexibility in handling anonymous requests. Choose the option that best fits your application’s requirements.

Multi-Factor Authentication

Multi-factor authentication (MFA) adds an essential additional layer of security beyond username and password combinations. Your organization must enforce Multi-factor authentication for all users, especially for privileged accounts. MFA significantly reduces the risk of account compromise, even if credentials are stolen or leaked.

Configure MFA through Azure Active Directory conditional access policies. These policies allow you to require MFA based on various conditions such as user location, device compliance status, or risk level. You must use conditional access policies to limit access based on certain conditions, such as user location, device compliance, or risk levels. This granular control enables you to balance security with user experience by requiring additional authentication only when necessary.

Role-Based Access Control (RBAC)

Role-Based Access Control (RBAC) is fundamental to implementing the principle of least privilege in your Azure environment. You can use Azure role-based access control (Azure RBAC) to assign permissions to users, groups, and applications at a certain scope, such as the need to know and least privilege security principles. This ensures that users and applications have only the permissions they need to perform their designated tasks, nothing more.

When implementing RBAC for your App Service applications, consider creating custom roles tailored to your organization’s specific needs. Built-in roles like Contributor, Reader, and Owner provide broad permissions, but custom roles allow you to define precise permission sets. You must conduct periodic reviews and update the access rights and role assignments. Regular access reviews help ensure that permissions remain appropriate as roles and responsibilities change within your organization.

Additionally, implement the principle of “just in time” and “just enough access” (JIT/JEA). Apply the principle of “just in time” and “just enough access” (JIT/JEA) to limit permissions to what is necessary for the role. This approach minimizes the window of opportunity for potential attackers and reduces the blast radius of any security incident.

Secure Network Access

Network security controls determine who can access your application and how traffic flows to and from your App Service. Implementing proper network security measures creates multiple layers of defense against unauthorized access and network-based attacks.

Virtual Network Integration

Virtual Network (VNet) integration is a powerful feature that allows your App Service to access resources within an Azure virtual network while maintaining isolation from the public internet. Implement virtual network integration to secure your outbound traffic by enabling your app to access resources in or through an Azure virtual network while maintaining isolation from the public internet.

In the multi-tenant App Service (an app not in Isolated tier), enable your apps to access resources in or through a Virtual Network with the Virtual Network Integration feature, then use network security groups to control outbound traffic from your app, and when using Virtual Network Integration, you can enable the ‘Route All’ configuration to make all outbound traffic subject to network security groups and user-defined routes on the integration subnet. This configuration gives you complete control over your application’s outbound network traffic.

For applications requiring the highest level of network isolation, consider using an App Service Environment (ASE). When using App Service in the Isolated pricing tier, also called an App Service Environment (ASE), you can deploy directly into a subnet within your Azure Virtual Network and use network security groups to secure your Azure App Service Environment by blocking inbound and outbound traffic to resources in your virtual network, or to restrict access to apps in an App Service Environment.

IP Restrictions and Access Control

IP restrictions provide a straightforward method to limit which IP addresses can access your application. Configure IP access restrictions to restrict access to your app by defining an allow list of IP addresses and subnets that can access your application, blocking all other traffic, and you can define individual IP addresses or ranges defined by subnet masks, and configure dynamic IP restrictions through web.config files on Windows apps.

When implementing IP restrictions, consider your organization’s network architecture. If users access your application from known office locations or through a VPN, you can create an allowlist of those IP ranges. However, be cautious with overly restrictive IP policies that might block legitimate users, especially in scenarios where remote work or mobile access is common.

For more advanced scenarios, set up service endpoint restrictions to lock down inbound access to your app from specific subnets in your virtual networks using service endpoints, which work together with IP access restrictions to provide network-level filtering. Service endpoints provide an additional layer of security by ensuring that traffic originates from specific Azure virtual network subnets.

Private Endpoints

Private endpoints represent the most secure method for accessing your App Service applications. Configure private endpoints to eliminate public internet exposure by routing traffic to your App Service through your virtual network using Azure Private Link, ensuring secure connectivity for clients in your private networks.

When you enable a private endpoint for your App Service, the application receives a private IP address from your virtual network. This means the application is no longer accessible from the public internet, significantly reducing your attack surface. Private endpoints are particularly valuable for internal applications, line-of-business systems, and applications that handle sensitive data.

Keep in mind that implementing private endpoints requires careful DNS configuration to ensure that clients can resolve the application’s hostname to the private IP address. Azure provides private DNS zones to simplify this configuration, but you’ll need to integrate them properly with your existing DNS infrastructure.

Web Application Firewall (WAF)

A Web Application Firewall provides critical protection against common web application vulnerabilities and attacks. Use Web Application Firewall to enhance protection against common web vulnerabilities and attacks by implementing Azure Front Door or Application Gateway with Web Application Firewall capabilities in front of your App Service.

Azure Web Application Firewall provides centralized protection of your web applications from common exploits and vulnerabilities, as web applications increasingly encounter malicious attacks that exploit commonly known vulnerabilities, with SQL injection and cross-site scripting among the most common attacks. WAF uses managed rule sets based on the OWASP (Open Web Application Security Project) Core Rule Set to detect and block these attacks.

The WAF uses OWASP rules to protect your application, and these rules include protection against attacks such as SQL injection, cross-site scripting attacks, and session hijacks. You can deploy WAF through either Azure Application Gateway or Azure Front Door, depending on your architecture and requirements. Azure Front Door provides global load balancing and WAF capabilities at the edge, while Application Gateway offers regional load balancing with WAF protection.

When configuring your WAF, start in detection mode to understand how it would affect your application traffic. While you tune your WAF, consider using detection mode, which logs requests and the actions the WAF would normally take, but doesn’t actually block any traffic. After tuning and validating that legitimate traffic isn’t being blocked, you should configure it to run in prevention mode, and by running in prevention mode, you ensure the WAF actually blocks requests that it detects as malicious.

Use HTTPS and Manage Certificates

Encrypting data in transit is fundamental to protecting sensitive information from interception and tampering. HTTPS encryption ensures that data transmitted between clients and your application remains confidential and intact.

Enforce HTTPS

All production applications should enforce HTTPS to encrypt data in transit. Enforce HTTPS to encrypt data in transit, preventing eavesdropping and man-in-the-middle attacks. Azure App Service makes it easy to enforce HTTPS-only connections through a simple configuration setting.

To enable HTTPS-only mode, navigate to your App Service in the Azure portal, select “TLS/SSL settings,” and toggle the “HTTPS Only” setting to “On.” This configuration automatically redirects all HTTP requests to HTTPS, ensuring that all client connections are encrypted. Azure App Service automatically secures apps with HTTPS, and if you add a custom domain to your app, you should add a TLS/SSL certificate to ensure that HTTPS connections remain secure.

SSL/TLS Certificate Management

Proper certificate management is essential for maintaining secure HTTPS connections. Obtain and install SSL/TLS certificates, either through Azure’s free App Service certificates or third-party providers, and regularly renew and update certificates to maintain security.

Azure App Service offers several options for SSL/TLS certificates:

  • Free App Service Managed Certificates: Azure provides free SSL/TLS certificates for custom domains. These certificates are automatically renewed and managed by Azure, eliminating the operational overhead of certificate management.
  • App Service Certificates: These are paid certificates purchased through Azure that are stored in Azure Key Vault and automatically renewed.
  • Third-Party Certificates: You can upload certificates from external certificate authorities if your organization has specific requirements or existing certificate management processes.

Regardless of which option you choose, ensure that you have processes in place to monitor certificate expiration and renew certificates before they expire. Expired certificates can cause service disruptions and security warnings for users.

For applications that rely on certificate pinning, it’s a best practice to provide a custom TLS certificate for applications that rely on certificate pinning. Avoid pinning to the default Azure wildcard certificate or App Service managed certificates, as these can be rotated by the platform at any time, potentially breaking your application.

TLS Version Configuration

Not all TLS versions provide the same level of security. Older versions like TLS 1.0 and 1.1 have known vulnerabilities and should be disabled. Configure your App Service to require TLS 1.2 or higher to ensure strong encryption standards.

In the Azure portal, navigate to your App Service’s TLS/SSL settings and set the minimum TLS version to 1.2 or 1.3. This prevents clients from connecting using older, less secure protocols. While this might affect compatibility with very old clients, the security benefits far outweigh the minimal compatibility concerns in most scenarios.

Configure Application Settings Securely

Application configuration often contains sensitive information such as database connection strings, API keys, and other secrets. Storing these values securely is critical to preventing credential theft and unauthorized access to backend systems.

Azure Key Vault Integration

Azure Key Vault provides a secure, centralized location for storing application secrets, certificates, and cryptographic keys. Azure Key Vault helps safeguard cryptographic keys and secrets used by cloud applications and services. Instead of storing sensitive values directly in your application configuration, you should reference them from Key Vault.

Azure App Service also integrates with Azure Key Vault, and through this integration access to sensitive information such as API keys and connection strings is controlled and monitored. This integration allows your application to retrieve secrets at runtime without embedding them in your code or configuration files.

To implement Key Vault integration, first create a Key Vault instance and store your secrets there. Then, enable a managed identity for your App Service and grant it appropriate permissions to access the Key Vault. Store sensitive information such as connection strings and API keys in Azure Key Vault or App Service environment variables, avoid hardcoding secrets in your application code, and enable Managed Identity to grant your app secure access to other Azure resources.

Managed Identities

Managed identities eliminate the need to manage credentials for service-to-service authentication. Azure utilizes managed identities for authenticating services securely without storing credentials in the code, which reduces the risk of credential leakage and simplifies the authentication process across services.

Enable managed identities for outgoing requests to authenticate to Azure services securely from your app without storing credentials in your code or configuration by using managed identities, eliminating the need to manage service principals and connection strings, as managed identities provide an automatically managed identity in Microsoft Entra ID for your app to use when making outgoing requests to other Azure services like Azure SQL Database, Azure Key Vault, and Azure Storage, and App Service supports both system-assigned and user-assigned managed identities.

System-assigned managed identities are tied to the lifecycle of your App Service instance. When you delete the app, the identity is automatically deleted. User-assigned managed identities are standalone resources that can be shared across multiple applications and persist independently of any single application.

To enable a system-assigned managed identity, navigate to the Identity section of your App Service in the Azure portal and toggle the system-assigned identity to “On.” Once enabled, you can grant this identity permissions to access other Azure resources like Key Vault, Storage Accounts, or SQL Databases using Azure RBAC.

Environment Variables and App Settings

While Azure Key Vault is the recommended approach for storing secrets, App Service also provides application settings and connection strings that are encrypted at rest. These settings are injected as environment variables at runtime, making them accessible to your application code without being stored in configuration files.

When using App Service application settings, mark sensitive values as “slot settings” if you’re using deployment slots. This prevents sensitive production values from being accidentally swapped to staging or development environments during deployments.

For maximum security, use Key Vault references in your application settings. This approach combines the convenience of application settings with the security of Key Vault. Your application settings contain references to Key Vault secrets (in the format @Microsoft.KeyVault(SecretUri=…)), and App Service automatically retrieves the actual values from Key Vault at runtime using the app’s managed identity.

Monitor and Log Activity

Comprehensive monitoring and logging are essential for detecting security incidents, troubleshooting issues, and maintaining compliance. Without proper visibility into your application’s behavior, you cannot effectively respond to security threats or identify potential vulnerabilities.

Azure Monitor and Application Insights

Azure Monitor and Application Insights provide powerful capabilities for tracking application performance and detecting anomalies. Enable Azure Monitor and Application Insights to track performance and detect anomalies, set up alerts for suspicious activities or failed login attempts, and regularly review logs to identify and respond to security incidents promptly.

Application Insights automatically collects telemetry data including request rates, response times, failure rates, and dependency calls. This data helps you establish baseline behavior for your application, making it easier to detect unusual patterns that might indicate a security incident or performance problem.

Configure custom metrics and alerts based on your application’s specific security requirements. For example, you might create alerts for:

  • Unusual spikes in failed authentication attempts
  • Requests from unexpected geographic locations
  • Abnormal patterns in API usage
  • Sudden increases in error rates
  • Unusual database query patterns

Diagnostic Logging

Enable diagnostic logging for your App Service to capture detailed information about application behavior, HTTP requests, and platform events. Azure App Service supports several types of diagnostic logs:

  • Application Logging: Captures logs generated by your application code
  • Web Server Logging: Records raw HTTP request data
  • Detailed Error Messages: Captures detailed error information for failed requests
  • Failed Request Tracing: Provides detailed tracing information for failed requests
  • Deployment Logging: Records information about application deployments

Configure these logs to be sent to Azure Storage, Log Analytics, or Event Hubs for long-term retention and analysis. Log Analytics is particularly valuable as it provides powerful query capabilities through the Kusto Query Language (KQL), enabling you to perform complex analysis and correlation across multiple log sources.

Security Monitoring with Microsoft Defender for Cloud

Microsoft Defender for Cloud (formerly Azure Security Center) provides unified security management and advanced threat protection for your Azure resources. When enabled for App Service, Defender for Cloud continuously assesses your applications for security vulnerabilities and provides recommendations for improvement.

Defender for Cloud can detect various threats including web attacks, malicious IP connections, and suspicious authentication patterns. It integrates with Azure Monitor to provide a comprehensive view of your security posture and can automatically trigger alerts when potential threats are detected.

Review the security recommendations provided by Defender for Cloud regularly and implement them as part of your ongoing security maintenance. These recommendations are based on industry best practices and Microsoft’s threat intelligence, helping you stay ahead of emerging threats.

Keep Your App and Dependencies Updated

Software vulnerabilities are constantly being discovered, and attackers actively exploit known vulnerabilities in outdated software. Maintaining up-to-date application code, frameworks, and dependencies is crucial for protecting against these threats.

Regular Updates and Patching

Regularly update your application code, frameworks, and dependencies to patch known vulnerabilities. Establish a regular schedule for reviewing and applying updates to your application and its dependencies. This includes:

  • Application framework updates (e.g., .NET, Node.js, Python, Java)
  • Third-party library and package updates
  • Container base image updates (if using containers)
  • Runtime version updates

Use dependency scanning tools to identify outdated or vulnerable packages in your application. Many modern development platforms include built-in vulnerability scanning, and Azure DevOps and GitHub provide automated dependency scanning as part of their CI/CD pipelines.

Platform Updates

Azure App Service regularly updates its platform components to address security vulnerabilities and improve performance. Regular updates of VMs and runtime software address newly discovered vulnerabilities. These updates are applied automatically to the underlying infrastructure, but you should also ensure that your application is compatible with the latest platform versions.

Configure your App Service to use the latest minor version of your chosen runtime stack. Azure allows you to pin to specific major versions while automatically receiving minor version updates and security patches. This approach balances stability with security by ensuring you receive critical security updates without unexpected breaking changes.

Secure DevOps Practices

Implement secure DevOps practices by establishing secure CI/CD pipelines for deploying applications to App Service, including code scanning, dependency checks, and automated security testing. Integrating security into your development and deployment processes helps catch vulnerabilities before they reach production.

Your CI/CD pipeline should include:

  • Static Application Security Testing (SAST): Analyzes source code for security vulnerabilities
  • Dynamic Application Security Testing (DAST): Tests running applications for vulnerabilities
  • Dependency Scanning: Identifies vulnerable third-party packages
  • Container Scanning: Checks container images for vulnerabilities (if applicable)
  • Infrastructure as Code Scanning: Validates security configurations in ARM templates, Bicep, or Terraform

Automated security testing in your pipeline ensures that security checks are performed consistently with every deployment, reducing the risk of introducing vulnerabilities into production.

Advanced Security Configurations

App Service Environment for Maximum Isolation

For applications requiring the highest level of security and isolation, consider using an App Service Environment (ASE). App Service Environment is an Azure App Service feature that provides a fully isolated and dedicated environment to run App Service apps securely at high scale, and unlike the App Service public multitenant offering that shares supporting infrastructure, an App Service Environment provides dedicated compute for a single customer.

An App Service Environment hosts applications for a single customer on one of their virtual networks, and customers have fine-grained control over inbound and outbound application network traffic, while applications can establish high-speed secure connections over virtual private networks to on-premises corporate resources. This level of isolation is particularly valuable for applications that must comply with strict regulatory requirements or handle highly sensitive data.

ASE deployments provide several security advantages over the multi-tenant App Service:

  • Complete network isolation within your virtual network
  • Dedicated compute resources not shared with other customers
  • Support for private CA certificates
  • Ability to enforce TLS 1.2 or higher across all applications
  • Enhanced scale capabilities for high-security applications

Backup and Disaster Recovery

While not traditionally considered a security feature, robust backup and disaster recovery capabilities are essential for security resilience. Implementing robust backup and recovery mechanisms is essential for ensuring business continuity and data protection in your Azure App Service deployments, and you should enable automated backups by configuring scheduled backups for your App Service applications to ensure you can recover your applications and data in case of accidental deletion, corruption, or other failures.

Configure automated backups for your App Service applications, including application files, configuration, and connected databases. Store backups in geo-redundant storage to protect against regional failures. Regularly test your backup restoration process to ensure that backups are valid and can be successfully restored when needed.

In the event of a security incident such as ransomware or data corruption, having recent, tested backups can mean the difference between a minor disruption and a catastrophic data loss event.

Compliance and Regulatory Requirements

Maintain regulatory compliance by configuring your App Service deployments in accordance with applicable regulatory requirements for your industry and region, particularly regarding data protection and privacy. Different industries and regions have specific compliance requirements that may affect how you configure and secure your App Service applications.

Azure App Service supports numerous compliance certifications including ISO 27001, SOC 2, HIPAA, and PCI DSS. However, achieving compliance requires more than just using a compliant platform—you must also configure your applications and processes appropriately.

Document your security configurations and maintain evidence of compliance activities. Use Azure Policy to enforce compliance requirements automatically and generate compliance reports. Regular compliance audits help ensure that your security posture remains aligned with regulatory requirements as they evolve.

Security Best Practices Checklist

To help you implement comprehensive security for your Azure App Service Web Apps, use this checklist as a reference:

Authentication and Authorization

  • Enable Azure Active Directory authentication
  • Enforce multi-factor authentication for all users
  • Configure role-based access control (RBAC) with least privilege
  • Implement conditional access policies
  • Regularly review and update access permissions
  • Disable anonymous access where appropriate

Network Security

  • Enable virtual network integration for outbound traffic
  • Configure private endpoints for inbound traffic (where applicable)
  • Implement IP restrictions to limit access
  • Deploy Web Application Firewall (WAF) in front of your application
  • Use Network Security Groups (NSGs) to control traffic flow
  • Enable DDoS protection
  • Configure service endpoints for Azure services

Data Protection

  • Enforce HTTPS-only connections
  • Use TLS 1.2 or higher
  • Implement proper SSL/TLS certificate management
  • Store secrets in Azure Key Vault
  • Enable managed identities for service-to-service authentication
  • Encrypt sensitive data at rest
  • Use Key Vault references in application settings

Monitoring and Logging

  • Enable Application Insights for performance monitoring
  • Configure diagnostic logging
  • Set up alerts for suspicious activities
  • Enable Microsoft Defender for Cloud
  • Regularly review security logs and alerts
  • Implement log retention policies
  • Use Log Analytics for centralized log analysis

Maintenance and Updates

  • Keep application code and dependencies updated
  • Use the latest runtime versions
  • Implement automated security scanning in CI/CD pipelines
  • Regularly review and apply security recommendations
  • Configure automated backups
  • Test backup restoration procedures
  • Maintain documentation of security configurations

Common Security Pitfalls to Avoid

Even with the best intentions, organizations often make common security mistakes when deploying Azure App Service applications. Being aware of these pitfalls can help you avoid them:

  • Storing secrets in application code or configuration files: Always use Key Vault or secure application settings for sensitive values.
  • Leaving default configurations unchanged: Review and customize security settings rather than accepting defaults.
  • Neglecting to enable HTTPS-only mode: Always enforce HTTPS for production applications.
  • Using overly permissive RBAC roles: Grant only the minimum permissions necessary for each role.
  • Failing to monitor and review logs: Logs are only valuable if you actually review them and respond to alerts.
  • Ignoring security recommendations: Take action on recommendations from Defender for Cloud and other security tools.
  • Not testing backup restoration: Backups are useless if they can’t be successfully restored.
  • Allowing outdated dependencies: Regularly update packages and frameworks to patch vulnerabilities.

Additional Resources

To deepen your understanding of Azure App Service security, consider exploring these official Microsoft resources:

Conclusion

Securing Azure App Service Web Apps requires a comprehensive, multi-layered approach that addresses authentication, network security, data protection, monitoring, and ongoing maintenance. Securing your Azure App Service Web Apps requires a multi-layered approach, and implementing strong authentication, securing network access, using encryption, managing secrets properly, and monitoring activity are essential steps, and following these best practices will help protect your applications from threats and ensure reliable operation in the cloud.

The security landscape is constantly evolving, with new threats emerging regularly. Therefore, security is not a one-time implementation but an ongoing process. Regularly review your security configurations, stay informed about new security features and best practices, and continuously improve your security posture based on lessons learned and emerging threats.

By implementing the practices outlined in this guide—from strong authentication and network isolation to proper secrets management and comprehensive monitoring—you can build a robust security foundation for your Azure App Service applications. Remember that security is a shared responsibility: while Microsoft provides a secure platform, you must configure and use it appropriately to protect your applications and data.

Start by assessing your current security posture against the checklist provided in this article. Identify gaps and prioritize improvements based on your risk profile and compliance requirements. Implement changes incrementally, testing thoroughly to ensure that security enhancements don’t negatively impact application functionality. With diligent attention to security best practices, you can confidently deploy and operate web applications on Azure App Service while protecting your organization’s valuable data and maintaining the trust of your users.