Implémenter des contrôles de sécurité pour Azure App Service

Terminée

Azure App Service fournit plusieurs contrôles de sécurité intégrés qui fonctionnent au niveau de la couche plateforme, avant qu’une requête atteigne votre code d’application. Pour Contoso Retail, l’application de ces contrôles ferme les deux premiers écarts du test d’intrusion : aucune application de l’authentification au niveau de la plateforme et le trafic entrant illimité provenant de n’importe quelle adresse IP source.

Configurer l’authentification avec Microsoft Entra ID

La fonctionnalité d’authentification intégrée d’App Service, appelée EasyAuth, s’exécute en tant que couche middleware qui intercepte chaque requête HTTP entrante avant d’atteindre votre application. Lorsque vous configurez EasyAuth avec Microsoft Entra ID en tant que fournisseur d’identité et que vous définissez l’action de requête non authentifiée sur Require authentication, les requêtes non authentifiées n’atteignent jamais votre code d’application. La plateforme retourne une réponse 401 pour les clients d’API ou redirige les utilisateurs du navigateur vers la page de connexion Microsoft Entra.

Trois paramètres nécessitent une attention particulière lors de la configuration de EasyAuth :

  • Magasin de jetons : activez ce paramètre afin qu’App Service stocke et gère les jetons OAuth pour le compte des utilisateurs authentifiés. Votre code d’application peut lire le jeton à partir d’en-têtes de requête HTTP injectés sans implémenter la gestion des jetons elle-même.
  • Audiences de jeton autorisées : définissez cette valeur sur l’ID client de l’enregistrement d’application Microsoft Entra de votre application. Cela rejette les jetons émis pour d’autres applications, même s’ils sont signés avec un certificat émetteur approuvé.
  • Actualisation du jeton : configurez la durée pendant laquelle la plateforme attend avant d’actualiser les jetons avant leur expiration. Le comportement par défaut actualise automatiquement les jetons.

Pour configurer EasyAuth dans le portail Azure, accédez à votre App Service, sélectionnez Settings>Authentication, puis sélectionnez Fournisseur d’identitéAdd. Choisissez Microsoft comme fournisseur, puis spécifiez votre locataire Microsoft Entra et votre enregistrement d’application.

Note

EasyAuth gère l’authentification : elle vérifie l’identité. Les décisions d’autorisation, telles que l’accès en fonction du rôle au sein de l’application, nécessitent toujours une implémentation dans votre code d’application.

Authentifier les appels sortants avec une identité managée

Votre App Service effectue des appels sortants vers d’autres services Azure : Azure SQL Database, Key Vault, stockage Azure, Azure AI services et Azure points de terminaison OpenAI. Chaque connexion nécessite une authentification. Le stockage des informations d’identification dans les paramètres d’application ou les chaînes de connexion est un risque de sécurité : si les paramètres sont exposés dans les journaux, les pipelines ou les messages d’erreur, ces informations d’identification sont également exposées.

Une identité managée attribuée par le système élimine ce risque. Lorsque vous activez une identité managée sur App Service, Azure crée une identité dans Microsoft Entra ID liée au cycle de vie de cette ressource App Service spécifique. Vous ne créez pas, stockez ou faites pivoter les informations d'identification de cette identité, Azure les gère automatiquement.

Pour utiliser l’identité managée pour un service en aval, attribuez le rôle approprié à l’identité managée sur la ressource cible. Par exemple:

  • Attribuez le rôle Utilisateur des secrets Key Vault sur le Key Vault pour récupérer les secrets.
  • Attribuez le rôle Lecteur des données blob de stockage à un compte de stockage afin de lire les objets blob.
  • Attribuez un rôle intégré sur une ressource Azure OpenAI pour appeler le point de terminaison d’inférence.

Activez l’identité managée dans le portail Azure en accédant à Paramètres>Identité, puis définissez l’état de Affectée par le système sur Activé et sélectionnez Enregistrer.

Imposer HTTPS et une version minimale de TLS

Tout le trafic vers App Service doit se déplacer via HTTPS. La plateforme accepte les connexions HTTP par défaut, ce qui signifie que les informations d’identification, les jetons et les données d’application peuvent être transmises via des connexions non chiffrées sans configuration supplémentaire. Deux paramètres ferment cet écart.

HTTPS force uniquement toutes les requêtes HTTP à rediriger vers HTTPS avant d’atteindre l’application. Activez-le dans le portail Azure sous Settings>Configuration>, définissez ensuite HTTPS Uniquement sur On.

La version TLS minimale définit la version de protocole acceptée la plus basse. Définissez cette valeur sur 1.2 pour rejeter les connexions des clients à l’aide de TLS 1.0 ou 1.1, dont les vulnérabilités sont considérées comme déconseillées. Le paramètre de version TLS minimal se trouve sur la même page de paramètres généraux .

Restreindre le trafic entrant avec des restrictions d’accès

Les restrictions d’accès sur App Service contrôlent les adresses IP sources et les plages réseau qui peuvent envoyer des demandes entrantes à votre application. Vous configurez des règles dans une liste d’autorisation/refus ordonnée par priorité. Lorsque la liste contient au moins une règle, un refus implicite s’applique à toute source non mise en correspondance par une règle.

Deux types de règles sont utiles lors de l’intégration d’App Service à une passerelle Application Gateway :

  • Règles basées sur l’adresse IP : autoriser une adresse IPv4 spécifique ou une plage CIDR (Classless Inter-Domain Route). Utilisez cette option lorsque l’adresse IP publique d’Application Gateway est statique et connue.
  • Règles d’étiquette de service : autoriser le trafic identifié par une balise de service telle que AzureApplicationGateway. Cette approche est plus résiliente aux modifications d’adresse IP Application Gateway.

Pour configurer les restrictions d’accès, accédez à Paramètres>réseau> accèsréseau public. Sélectionnez Ajouter pour ajouter une règle, définir l’action sur Autoriser et spécifier le type source et la valeur. Les règles sont évaluées dans l’ordre de priorité : la règle avec le numéro de priorité le plus bas est évaluée en premier.

Important

La configuration des restrictions d’accès pour autoriser uniquement le trafic Application Gateway est l’étape qui empêche les attaquants de contourner le WAF en ciblant directement le nom d’hôte App Service. N’ignorez pas cette étape après le déploiement d’Application Gateway.

Activer l’intégration de réseau virtuel pour l’accès sortant privé

L’intégration de réseau virtuel permet à votre App Service d’établir des connexions sortantes à des ressources à l’intérieur d’un réseau virtuel Azure sans ces ressources ayant un point de terminaison public. Votre App Service peut atteindre un Azure SQL Database privé, un Key Vault avec un accès public désactivé ou un point de terminaison d'API privé, sur l'espace d'adressage du réseau virtuel.

L’intégration au réseau virtuel régional fonctionne en joignant App Service à un sous-réseau délégué dans votre réseau virtuel. Les connexions sortantes à partir de l’App Service proviennent de la plage d’adresses IP du réseau virtuel, de sorte que les ressources privées peuvent accorder l’accès en fonction du sous-réseau plutôt qu’à une adresse IP publique.

Configurez l’intégration du réseau virtuel dans le portail Azure sous Settings>Networking>VNet integration. Sélectionnez Ajouter une intégration de réseau virtuel et choisissez le réseau virtuel et le sous-réseau. Le sous-réseau doit être délégué à Microsoft.Web/serverFarms et ne doit pas être utilisé pour une autre ressource App Service.

Déployer un point de terminaison privé pour un accès entrant entièrement privé

Un point de terminaison privé attribue à votre App Service une adresse IP privée dans un sous-réseau de votre réseau virtuel. Avec un point de terminaison privé déployé et un accès réseau public désactivé, App Service n’a pas de point de terminaison accessible sur Internet. Le seul chemin d’accès à l’application est via le réseau virtuel.

Cette configuration est naturellement associée à Application Gateway comme point d’entrée public. Application Gateway reçoit le trafic Internet sur son adresse IP publique, WAF inspecte chaque requête et les demandes approuvées sont transférées au point de terminaison privé App Service sur le réseau virtuel. L’App Service n’est jamais directement accessible à partir d’Internet.

Déployez un point de terminaison privé en accédant à Paramètres>Mise en réseau>Points de terminaison privés, puis sélectionnez Ajouter. Spécifiez le sous-réseau dans lequel créer le point de terminaison privé et autorisez Azure à créer l’entrée de zone DNS privée nécessaire.

Référencer les secrets de Key Vault à partir des paramètres de l’application

Au lieu de stocker des valeurs sensibles telles que des chaînes de connexion et des clés API directement dans les paramètres de l’application, utilisez Key Vault références. Une référence Key Vault est une valeur de paramètre d’application au format suivant :

@Microsoft.KeyVault(SecretUri=https://<vault-name>.vault.azure.net/secrets/<secret-name>)

Au moment de l’exécution, App Service résout la référence en appelant Key Vault à l’aide de l’identité managée que vous avez configurée précédemment, puis remplace la valeur secrète réelle. Votre code d’application lit normalement le paramètre de l’application et reçoit la valeur secrète. Aucune modification du code d’application n’est nécessaire.

Les références Key Vault offrent deux avantages opérationnels au-delà de la sécurité des identifiants. Si un secret pivote dans Key Vault, App Service récupère automatiquement la nouvelle valeur dans les 24 heures, ou immédiatement lors du prochain redémarrage ou modification de configuration de l’application suivante. Et comme la valeur du secret n’apparaît jamais dans les panneaux de configuration d’App Service ni dans les artefacts de déploiement, il est plus difficile de l’exposer accidentellement.

Tip

Pour obtenir la syntaxe de chaîne de référence complète et les instructions de configuration de l’accès aux coffres restreints au réseau, consultez Utilisez les références Key Vault en tant que paramètres d’application dans Azure App Service.