Sécurité dans Azure App Service

Cet article vous montre comment Azure App Service vous aide à sécuriser votre application web, backend d’application mobile, application API et application de fonction. Il vous montre également comment renforcer la sécurité de votre application avec les fonctionnalités App Service intégrées.

Les composants de plateforme d’App Service, notamment les machines virtuelles Azure, le stockage, les connexions réseau, les frameworks web, les fonctionnalités de gestion et d’intégration, sont activement sécurisés et renforcés. App Service fait régulièrement l’objet de vérifications de conformité strictes pour garantir les points suivants :

  • Les ressources de votre application sont protégées des ressources Azure des autres clients.
  • Les instances de machine virtuelle et les logiciels de runtime sont régulièrement mis à jour pour que soient traitées les vulnérabilités récemment découvertes.
  • La communication de secrets (tels que des chaînes de connexion) entre votre application et d’autres ressources Azure (telles que SQL Database) reste dans Azure et ne franchit pas les limites du réseau. Les secrets sont toujours chiffrés quand ils sont stockés.
  • Toutes les communications via les fonctionnalités de connectivité d’App Service, telles que la connexion hybride, sont chiffrées.
  • Toutes les connexions avec les outils de gestion à distance, tels qu’Azure PowerShell, Azure CLI, les SDK Azure et les API REST, sont chiffrées.
  • La gestion continue des menaces protège l’infrastructure et la plateforme contre les programmes malveillants, le déni de service distribué (DDoS), les attaques de l’intercepteur (man-in-the-middle, MITM) et bien d’autres menaces.

Pour plus d’informations sur la sécurité de l’infrastructure et de la plateforme dans Azure, consultez Centre de confidentialité Azure.

Les sections suivantes vous montrent comment renforcer la protection de votre application App Service contre les menaces.

HTTPS et certificats

App Service vous permet de sécuriser vos applications avec HTTPS. Quand votre application est créée, son nom de domaine par défaut (<nom_application>.azurewebsites.net) est déjà accessible à l’aide de HTTPS. Si vous configurez un domaine personnalisé pour votre application, vous devez également le sécuriser avec un certificat TLS/SSL afin que les navigateurs clients puissent établir des connexions HTTPS sécurisées vers votre domaine personnalisé. Plusieurs types de certificats sont pris en charge par App Service :

  • Certificat managé Free App Service
  • Certificat App Service
  • Certificat tiers
  • Certificat importé d’Azure Key Vault

Pour plus d’informations, consultez Ajouter un certificat TLS/SSL dans Azure App Service.

Protocoles non sécurisés (HTTP, TLS 1.0, FTP)

Dans App Service, vous pouvez appliquer le protocole HTTPS d’un seul clic pour sécuriser votre application vis-à-vis de toutes les connexions (HTTP) non chiffrées. Les demandes non sécurisées sont écartées avant même qu’elles n’atteignent votre code d’application. Pour plus d’informations, consultez Appliquer le protocole HTTPS.

TLS 1.0 n’est plus considéré comme sécurisé par les normes du secteur telles que PCI DSS. App Service vous permet de désactiver les protocoles obsolètes en appliquant le protocole TLS 1.1/1.2.

App Service prend en charge FTP et FTPS pour le déploiement de vos fichiers. Toutefois, FTPS doit être utilisé à la place de FTP, dans la mesure du possible. Quand un de ces protocoles, ou les deux, ne sont pas utilisés, vous devez les désactiver.

Restrictions d’adresse IP statique

Par défaut, votre application App Service accepte les demandes émanant de toutes les adresses IP d’internet, mais vous pouvez limiter cet accès à un petit sous-ensemble d’adresses IP. App Service sur Windows permet de définir une liste d’adresses IP pouvant accéder à votre application. La liste autorisée peut inclure des adresses IP individuelles ou une plage d’adresses IP définie par un masque de sous-réseau. Pour plus d’informations, consultez Restrictions d’adresse IP statique avec Azure App Service.

Pour App Service sur Windows, vous pouvez également limiter les adresses IP dynamiquement en configurant web.config. Pour plus d’informations, consultez Sécurité IP dynamique <dynamicIpSecurity>.

Authentification et autorisation clientes

Azure App Service fournit l’authentification et l’autorisation clé en main des utilisateurs ou des applications clientes. Quand cette configuration est activée, les utilisateurs et les applications clientes peuvent se connecter avec peu ou aucun code d’application. Vous pouvez implémenter votre propre solution d’authentification et d’autorisation ou autoriser App Service à la gérer pour vous. Le module d’authentification et d’autorisation gère les demandes web avant de les remettre à votre code d’application, et il refuse les demandes non autorisées avant qu’elles n’atteignent votre code.

L’autorisation et l’authentification App Service prennent en charge plusieurs fournisseurs d’authentification, notamment Microsoft Entra ID, les comptes Microsoft, Facebook, Google et Twitter. Pour plus d’informations, consultez la page Authentification et autorisation dans Azure App Service.

Authentification de service à service

Quand l’authentification est effectuée par rapport à un service backend, App Service fournit deux mécanismes différents selon vos besoins :

Connectivité aux ressources distantes

Il existe trois types de ressources distantes auxquelles votre application peut avoir besoin d’accéder :

Dans chacun de ces cas, App Service fournit un moyen d’établir des connexions sécurisées, mais vous devez toujours observer des bonnes pratiques de sécurité. Par exemple, utilisez toujours des connexions chiffrées même si la ressource backend autorise les connexions non chiffrées. En outre, vérifiez que votre service Azure backend autorise l’ensemble minimal d’adresses IP. Pour trouver les adresses IP sortantes pour votre application, consultez Adresses IP entrantes et sortantes dans Azure App Service.

Ressources Azure

Quand votre application se connecte à des ressources Azure, telles que SQL Database et Stockage Azure, la connexion reste dans Azure et ne franchit pas les limites du réseau. Toutefois, comme la connexion emprunte le dispositif réseau partagé dans Azure, assurez-vous systématiquement qu’elle est chiffrée.

Si votre application est hébergée dans un environnement App Service, vous devez vous connecter à des services Azure pris en charge à l’aide de points de terminaison de service de réseau virtuel.

Ressources à l’intérieur d’un réseau virtuel Azure

Votre application peut accéder aux ressources dans un réseau virtuel Azure par le biais d’une intégration à un réseau virtuel. L’intégration à un réseau virtuel est établie à l’aide d’un VPN de point à site. L’application peut ensuite accéder aux ressources du réseau virtuel à l’aide de leurs adresses IP privées. Toutefois, la connexion de point à site, emprunte toujours les réseaux partagés dans Azure.

Pour isoler complètement la connectivité de vos ressources des réseaux partagés dans Azure, créez votre application dans un environnement App Service. Dans la mesure où un environnement App Service est toujours déployé sur un réseau virtuel dédié, la connectivité entre votre application et vos ressources dans le réseau virtuel est complètement isolée. Pour plus d’informations sur d’autres aspects de la sécurité réseau dans un environnement App Service, consultez Isolement réseau.

Ressources locales

Vous pouvez accéder de manière sécurisée à des ressources locales, telles que des bases de données, de trois façons :

Secrets de l’application

Ne stockez pas les secrets de l’application, tels que les informations d’identification de la base de données, les jetons d’API et les clés privées, dans vos fichiers de code ou de configuration. L’approche couramment acceptée consiste à y accéder sous forme de variables d’environnement à l’aide du modèle standard dans la langue de votre choix. Dans App Service, la définition des variables d’environnement passe par l’utilisation de paramètres d’application (et, en particulier pour les applications .NET, de chaînes de connexion). Les paramètres d’application et les chaînes de connexion sont stockés dans Azure, et ils sont déchiffrés uniquement avant d’être injectés dans la mémoire de processus de votre application au démarrage de celle-ci. Les clés de chiffrement sont régulièrement permutées.

Une autre approche consiste à intégrer votre application App Service à Azure Key Vault pour bénéficier d’une gestion avancée des secrets. En accédant à Key Vault avec une identité managée, votre application App Service peut accéder de manière sécurisée aux secrets dont vous avez besoin.

Isolement réseau

À la différence du niveau tarifaire Isolé, tous les niveaux exécutent vos applications sur l’infrastructure réseau partagée dans App Service. Par exemple, les adresses IP publiques et les équilibreurs de charge frontaux sont partagés avec d’autres locataires. Le niveau Isolé vous procure un isolement réseau complet en exécutant vos applications à l’intérieur d’un environnement App Service dédié. Un environnement App Service s’exécute dans votre propre instance de Réseau virtuel Azure. Il vous permet d’effectuer les opérations suivantes :

  • Servir vos applications par le biais d’un point de terminaison public dédié, avec des serveurs frontaux dédiés.
  • Servir une application interne à l’aide d’un équilibreur de charge interne (ILB), l’accès n’étant alors autorisé qu’à partir de votre réseau virtuel Azure. L’équilibreur de charge interne possède une adresse IP appartenant à votre sous-réseau privé, ce qui isole totalement vos applications d’internet.
  • Utiliser un équilibreur de charge interne derrière un pare-feu d’applications web (WAF). Le WAF offre une protection de niveau entreprise à vos applications publiques, telle que la protection DDoS, le filtrage des URI et la prévention de l’injection SQL.

Protection DDoS

Pour les charges de travail web, nous vous recommandons vivement d’utiliser la protection DDoS Azure et un pare-feu d’applications web pour vous protéger des attaques DDoS émergentes. Une autre option consiste à déployer Azure Front Door avec un pare-feu d’applications web. Azure Front Door offre une protection au niveau de la plateforme contre des attaques DDoS au niveau du réseau.

Pour plus d’informations, consultez Présentation des environnements Azure App Service.