Connecter des fonctions à des services Azure
Une bonne pratique de sécurité Azure Functions consiste à tirer parti des fonctionnalités des paramètres d'application d'Azure App Service pour vous aider à stocker de manière plus sécurisée les chaînes, clés et autres jetons nécessaires pour vous connecter à d'autres services. Les paramètres d’application dans Azure sont stockés chiffrés et accessibles au moment de l’exécution par votre application en tant que paires de variables namevalue d’environnement. Pour les déclencheurs et les liaisons qui nécessitent une propriété de connexion, vous définissez le nom du paramètre d'application au lieu de la chaîne de connexion réelle. Vous ne pouvez pas configurer une liaison directement avec une chaîne de connexion ou une clé.
Le fournisseur de configuration par défaut utilise des variables d’environnement. Ces variables sont définies dans les paramètres d'application lors de l'exécution dans Azure et dans le fichier de paramètres locaux lors du développement local.
Configurer une connexion basée sur une identité
Certaines connexions dans Azure Functions sont configurées pour utiliser une identité au lieu d’un secret. La prise en charge dépend de l’extension qui utilise la connexion. Dans certains cas, une chaîne de connexion peut toujours être requise dans Functions même si le service auquel vous vous connectez prend en charge les connexions basées sur des identités.
Remarque
Une application s’exécutant dans un plan Consommation ou Elastic Premium utilise les paramètres WEBSITE_AZUREFILESCONNECTIONSTRING et WEBSITE_CONTENTSHARE lors de la connexion à Azure Files sur le compte de stockage utilisé par votre application de fonction. Azure Files ne prend pas en charge l’utilisation de l’identité managée lors de l’accès au partage de fichiers.
Quand elles sont hébergées dans le service Azure Functions, les connexions basées sur une identité utilisent une identité managée. L’identité attribuée par le système est utilisée par défaut, bien qu’une identité attribuée par l’utilisateur puisse être spécifiée avec les propriétés credential et clientID. La configuration d’une identité affectée par l’utilisateur avec un ID de ressource n’est pas prise en charge. Lors d’une exécution dans d’autres contextes, tels que le développement local, votre identité de développeur est utilisée à la place, même si cela peut être personnalisé.
Accorder l’autorisation à l’identité
Les identités doivent disposer des autorisations nécessaires pour effectuer les actions prévues. Cela est généralement effectué en affectant un rôle dans le contrôle d’accès en fonction du rôle Azure ou en spécifiant l’identité dans une stratégie d’accès en fonction du service auquel vous vous connectez.
Important
Le service cible peut exposer certaines autorisations qui ne sont pas nécessaires pour tous les contextes. Dans la mesure du possible, adhérez au principe du privilège minimum, en accordant à l’identité uniquement les privilèges nécessaires.