Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Azure Functions vous permet d’utiliser des clés secrètes pour rendre plus difficile l’accès à vos points de terminaison de fonction. Cet article décrit les différents genres de clés d’accès pris en charge par Functions, et explique comment les utiliser.
Bien que les clés d’accès fournissent une certaine atténuation contre les accès indésirables, vous devez prendre en compte d’autres options pour sécuriser les points de terminaison HTTP en production. Par exemple, il n’est pas recommandé de distribuer des secrets partagés dans une application publique. Si votre fonction est appelée à partir d’un client public, vous devez implémenter les mécanismes de sécurité suivants, ou en appliquer d’autres :
Les clés d’accès fournissent la base de l’autorisation HTTP dans les fonctions déclenchées par des requêtes HTTP. Pour plus d’informations, consultez Niveau d’autorisation.
L’étendue d’une clé d’accès et les actions qu’elle prend en charge dépendent du type de clé d’accès.
Type de clé | Nom de clé | Niveau d’authentification HTTP | Description |
---|---|---|---|
Fonction | default ou défini par l’utilisateur |
function |
Autorise l’accès uniquement à un point de terminaison de fonction spécifique. |
Hôte | default ou défini par l’utilisateur |
function |
Autorise l’accès à tous les points de terminaison de fonction dans une application de fonction. |
Élément maître | _master |
admin |
Clé d’hôte spéciale qui fournit également un accès administratif aux API REST d’exécution dans une application de fonction. Cette clé ne peut pas être révoquée. Dans la mesure où la clé principale octroie des autorisations élevées dans votre application de fonction, vous ne devez pas partager cette clé avec des tiers, ou la distribuer dans les applications clientes natives. |
Système | Dépend de l’extension | n/a | Certaines extensions peuvent nécessiter une clé gérée par le système pour accéder aux points de terminaison de webhook. Les clés système sont conçues pour les points de terminaison de fonctions spécifiques à l’extension qui sont appelés par les composants internes. Par exemple, le déclencheur Event Grid exige que l’abonnement utilise une clé système lors de l’appel du point de terminaison du déclencheur. Durable Functions utilise également des clés système pour appeler API d’extension de tâche durable. Les clés système peuvent uniquement être créées par des extensions spécifiques, et vous ne pouvez pas définir explicitement leurs valeurs. À l’instar d’autres clés, vous pouvez générer une nouvelle valeur pour la clé à partir du portail ou à l’aide des API clé. |
Chaque clé est nommée à titre de référence. Il existe une clé par défaut (nommée default
) au niveau de la fonction et de l’hôte. Les clés de fonction prennent le pas sur les clés d’hôte. Quand deux clés portent le même nom, la clé de fonction est toujours utilisée.
Le tableau suivant compare les utilisations de différents types de clés d’accès :
Action | Étendue | Type de clé |
---|---|---|
Exécuter une fonction | Fonction spécifique | Fonction |
Exécuter une fonction | Toutes les fonctions | Fonction ou hôte |
Appeler un point de terminaison admin |
Conteneur de fonctions | Principale uniquement |
Appeler des API d’extension de tâche durables | Application de fonction* | System |
Appeler un webhook spécifique à une extension (interne) | Application de fonction* | système |
*Étendue déterminée par l’extension.
Au sein de Functions, les clés d’accès sont des tableaux de 32 octets générés aléatoirement, et codés sous forme de chaînes au format base 64 utilisables de manière sécurisée dans les URL. Bien que vous puissiez générer vos propres clés d’accès et les utiliser avec Functions, nous vous recommandons vivement de laisser Functions générer toutes vos clés d’accès à votre place.
Les clés d’accès générées par Functions incluent des valeurs de signature et de somme de contrôle spéciales qui indiquent le type de clé d’accès, et le fait qu’elles ont été générées par Azure Functions. La présence de ces composants supplémentaires dans la clé elle-même facilite grandement la détermination de la source de ces genres de secrets durant l’analyse de sécurité et d’autres processus automatisés.
Pour permettre à Functions de générer vos clés à votre place, ne fournissez pas la clé value
aux API qui vous permettent de générer des clés.
Les clés sont stockées dans votre Function App dans Azure, et chiffrées au repos. Par défaut, les clés sont stockées dans un conteneur de stockage Blob dans le compte fourni par le paramètre AzureWebJobsStorage
. Vous pouvez utiliser le paramètre AzureWebJobsSecretStorageType
pour remplacer ce comportement par défaut, et stocker plutôt les clés dans l’un de ces autres emplacements :
Emplacement | Valeur | Description |
---|---|---|
Un deuxième compte de stockage | blob |
Stocke les clés au sein de Stockage Blob, dans un compte de stockage différent de celui utilisé par le runtime Functions. Le compte et le conteneur spécifiques utilisés sont définis par une URL SAP (signature d’accès partagé) définie dans le paramètre AzureWebJobsSecretStorageSas . Vous devez conserver le paramètre AzureWebJobsSecretStorageSas quand l’URL SAP change. |
Azure Key Vault | keyvault |
Le coffre de clés défini dans AzureWebJobsSecretStorageKeyVaultUri est utilisé pour stocker les clés. |
Système de fichiers | files |
Les clés sont conservées dans le système de fichiers local, ce qui est le comportement par défaut dans Functions v1.x. Le stockage dans le système de fichiers n’est pas recommandé. |
Secrets Kubernetes | kubernetes |
L’ensemble de ressources dans AzureWebJobsKubernetesSecretName est utilisé pour stocker des clés. Pris en charge uniquement quand votre application de fonction est déployée sur Kubernetes. Azure Functions Core Tools génère automatiquement les valeurs quand vous l’utilisez pour déployer votre application sur un cluster Kubernetes. |
Quand vous utilisez Key Vault pour le stockage de clés, les paramètres d’application dont vous avez besoin dépendent du type de l’identité managée, affectée par le système ou affectée par l’utilisateur.
Nom du paramètre | Attribué par le système | Affecté par l’utilisateur | Inscription d'application |
---|---|---|---|
AzureWebJobsSecretStorageKeyVaultUri | ✓ | ✓ | ✓ |
AzureWebJobsSecretStorageKeyVaultClientId | X | ✓ | ✓ |
AzureWebJobsSecretStorageKeyVaultClientSecret | X | X | ✓ |
AzureWebJobsSecretStorageKeyVaultTenantId | X | X | ✓ |
Les fonctions déclenchées par HTTP peuvent généralement être appelées à l’aide d’une URL au format : https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>
. Quand le niveau d’autorisation d’une fonction donnée se voit affecter une valeur autre que anonymous
, vous devez également fournir une clé d’accès dans votre requête. La clé d’accès peut être fournie dans l’URL à l’aide de la chaîne de requête ?code=
, ou dans l’en-tête de requête (x-functions-key
). Pour plus d’informations, consultez les autorisations relatives aux clés d’accès.
Pour accéder aux API REST du runtime (sous /admin/
), vous devez fournir la clé principale (_master
) dans l’en-tête de requête x-functions-key
. Vous pouvez supprimer les points de terminaison admin à l’aide de la propriété de site functionsRuntimeAdminIsolationEnabled
.
Vous pouvez obtenir des clés de fonction et d’hôte par programmation à l’aide des API Azure Resource Manager suivantes :
Pour découvrir comment appeler les API Azure Resource Manager, consultez les informations de référence sur l’API REST Azure.
Vous pouvez utiliser ces méthodes pour obtenir des clés d’accès sans avoir à utiliser les API REST.
Connectez-vous au portail Azure, puis recherchez et sélectionnez Application de fonction.
Sélectionnez l’application de fonction que vous souhaitez utiliser.
Dans le volet gauche, développez Functions, puis sélectionnez Clés d’application.
La page Clés d’application s’affiche. Dans cette page s’affichent les clés d’hôte qui peuvent être utilisées pour accéder à n’importe quelle fonction de l’application. La clé système est également affichée, ce qui donne à n’importe quel utilisateur un accès de niveau administrateur à toutes les API d’application de fonction.
Vous pouvez également mettre en pratique le principe des privilèges minimum en utilisant la clé pour une fonction spécifique. Vous pouvez obtenir des clés spécifiques à une fonction sous l’onglet Clés de fonction d’une fonction particulière déclenchée par une requête HTTP.
Quand vous renouvelez ou créez vos valeurs de clé d’accès, vous devez redistribuer manuellement les valeurs de clé mises à jour à tous les clients qui appellent votre fonction.
Vous pouvez renouveler les clés de fonction et d’hôte par programmation, ou en créer d’autres, à l’aide des API Azure Resource Manager suivantes :
Pour découvrir comment appeler les API Azure Resource Manager, consultez les informations de référence sur l’API REST Azure.
Vous pouvez utiliser ces méthodes pour obtenir des clés d’accès sans avoir à créer manuellement des appels aux API REST.
Connectez-vous au portail Azure, puis recherchez et sélectionnez Application de fonction.
Sélectionnez l’application de fonction que vous souhaitez utiliser.
Dans le volet gauche, développez Functions, puis sélectionnez Clés d’application.
La page Clés d’application s’affiche. Dans cette page s’affichent les clés d’hôte qui peuvent être utilisées pour accéder à n’importe quelle fonction de l’application. La clé système est également affichée, ce qui donne à n’importe quel utilisateur un accès de niveau administrateur à toutes les API d’application de fonction.
Sélectionnez Renouveler la valeur de clé en regard de la clé à renouveler, puis sélectionnez Renouveler et enregistrer.
Vous pouvez également renouveler une clé de fonction sous l’onglet Clés de fonction d’une fonction particulière déclenchée par une requête HTTP.
Vous pouvez supprimer des clés de fonction et d’hôte par programmation à l’aide des API Azure Resource Manager suivantes :
Pour découvrir comment appeler les API Azure Resource Manager, consultez les informations de référence sur l’API REST Azure.
Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Module
Gérer les secrets dans vos applications serveur avec Azure Key Vault - Training
Découvrez comment créer un coffre Azure Key Vault pour stocker les valeurs de secret et comment activer un accès sécurisé au coffre.
Certification
Microsoft Certified: Azure Developer Associate - Certifications
Générez des solutions de bout en bout dans Microsoft Azure pour créer des fonctions Azure Functions, implémenter et gérer des applications web, développer des solutions qui utilisent le Stockage Azure, et bien plus encore.