Configurer Durable Functions avec Microsoft Entra ID
Microsoft Entra ID (Microsoft Entra ID) est un service de gestion des identités et des accès basé sur le cloud. Les connexions basées sur l’identité permettent aux Durable Functions d’effectuer des requêtes autorisées sur des ressources protégées par Microsoft Entra, comme un compte stockage Azure, sans avoir à gérer manuellement les secrets. À l’aide du fournisseur de stockage Azure par défaut, Durable Functions doit s’authentifier au compte stockage Azure. Dans cet article, nous montrons comment configurer une application Durable Functions pour utiliser deux types de connexions basées sur l’identité : les informations d’identification d’identité managées et les informations d’identification de clé secrète client.
Configurer votre application pour utiliser une identité managée (recommandé)
Une identité managée permet à votre application d’accéder facilement à d’autres ressources protégées par Microsoft Entra comme Azure Key Vault. L’identité managée est prise en charge dans les versions 2.7.0 et ultérieures des extensions Durable Functions.
Notes
Un sens stricte du terme, une identité managée n’est disponible que pour les applications lors de l’exécution sur Azure. Lorsqu’elle est configurée pour utiliser des connexions basées sur l’identité, une application qui s’exécute localement utilise vos informations d’identification de développeur pour s’authentifier auprès des ressources Azure. Ensuite, lorsqu’elle est déployée sur Azure, elle utilise votre configuration d’identité managée à la place.
Prérequis
Au cours des étapes suivantes, il est supposé que vous partez d’une application Durable Functions existante dont vous connaissez le fonctionnement. Ce démarrage rapide implique notamment d’avoir déjà effectué les opérations suivantes :
- Création d’un projet Durable Functions dans le Portail Azure ou déploiement d’un Durable Functions local sur Azure.
Si ce n’est pas le cas, nous vous suggérons de commencer par l’un des articles suivants, qui fournit des instructions détaillées sur la façon de répondre à toutes les exigences ci-dessus :
- Création d’une première fonction durable – C#
- Création d’une première fonction durable – JavaScript
- Création d’une première fonction durable – Python
- Création d’une première fonction durable – PowerShell
- Création d’une première fonction durable – Java
Activer une identité managée
Une seule identité est nécessaire pour votre fonction, soit une identité managée affectée par le système, soit une identité managée affectée par l’utilisateur. Pour activer une identité managée pour votre fonction et en savoir plus sur les différences entre les deux identités, lisez les instructions détaillées ici.
Affectez des contrôles d’accès en fonction du rôle (RBAC) à une identité managée
Accédez à la ressource de stockage de votre application sur le Portail Azure. Suivez ces instructions pour attribuer les rôles suivants à votre ressource d’identité managée.
- Contributeur aux données en file d’attente du stockage
- Contributeur aux données Blob du stockage
- Contributeur aux données de table du stockage
Configurez une identité managée dans le portail Azure
Accédez à la page Configuration de votre application de fonction Azure et effectuez les modifications suivantes :
- Supprimez la valeur par défaut « AzureWebJobsStorage ».
Liez votre compte de stockage Azure en ajoutant l’un des paramètres de valeur suivants :
AzureWebJobsStorage__accountName : Par exemple :
mystorageaccount123
AzureWebJobsStorage__blobServiceUri: Par exemple :
https://mystorageaccount123.blob.core.windows.net/
AzureWebJobsStorage__queueServiceUri: Par exemple :
https://mystorageaccount123.queue.core.windows.net/
AzureWebJobsStorage__tableServiceUri : Par exemple :
https://mystorageaccount123.table.core.windows.net/
Notes
Si vous utilisez Azure Government ou tout autre cloud distinct d’Azure global, vous devez utiliser cette deuxième option pour fournir des URL de service spécifiques. Les valeurs de ces paramètres se trouvent dans le compte de stockage sous l’onglet Points de terminaison. Pour plus d’informations sur l’utilisation du Stockage Azure avec Azure Government, consultez la documentation Développer avec l’API Stockage sur Azure Government.
Finalisez la configuration de votre identité managée :
Si l’identité affectée par le système doit être utilisée, ne spécifiez rien d’autre.
Si l’identité affectée par l’utilisateur doit être utilisée, ajoutez les valeurs de paramètres d’application suivantes dans la configuration de votre application :
AzureWebJobsStorage__credential : managedidentity
AzureWebJobsStorage__clientId : (Il s’agit d’une valeur GUID que vous obtenez à partir du centre d’administration Microsoft Entra)
Configurez votre application pour utiliser les informations d’identification de clé secrète client
L’inscription d’une application cliente dans Microsoft Entra ID est une autre façon de configurer l’accès à un service Azure. Dans les étapes suivantes, vous allez apprendre à utiliser les informations d’identification de la clé secrète client pour l’authentification à votre compte Stockage Azure. Cette méthode peut être utilisée par les applications de fonction, localement et sur Azure. Toutefois, les informations d’identification de clé secrète client sont moins recommandées que l’identité managée, car elles sont plus complexes à configurer et à gérer et elles nécessitent le partage d’informations d’identification secrètes avec le service Azure Functions.
Prérequis
Au cours des étapes suivantes, il est supposé que vous partez d’une application Durable Functions existante dont vous connaissez le fonctionnement. Ce démarrage rapide implique notamment d’avoir déjà effectué les opérations suivantes :
- Création d’un projet Durable Functions sur votre ordinateur local ou dans le Portail Azure.
Inscrivez une application cliente sur Microsoft Entra ID
Inscrivez une application cliente sous Microsoft Entra ID dans le Portail Azure conformément à ces instructions.
Créez une clé secrète client pour votre application cliente. Dans votre application inscrite :
Sélectionnez Certificats et secrets , puis sélectionnez Nouveau secret client.
Renseignez une description et choisissez la durée de validité du secret dans le champ Expire.
Copiez et enregistrez soigneusement la valeur du secret, car elle n’est plus affichée une fois que vous quittez la page.
Affecter des contrôles d’accès en fonction du rôle (RBAC) à l’application cliente
Attribuez ces trois rôles à votre application cliente en procédant comme suit.
- Contributeur aux données en file d’attente du stockage
- Contributeur aux données Blob du stockage
- Contributeur aux données de table du stockage
Accédez à la page Contrôle d’accès (IAM) du compte de stockage de votre fonction et ajoutez une nouvelle attribution de rôle.
Choisissez le rôle requis, cliquez sur Suivant, puis recherchez votre application, examinez et ajoutez.
Ajoutez la configuration de la clé secrète client
Pour exécuter et tester dans Azure, spécifiez les éléments suivants dans la page Configuration de votre application de fonction Azure dans le Portail Azure. Pour exécuter et tester localement, spécifiez ce qui suit dans le fichier local.settings.json de la fonction.
Supprimez la valeur par défaut « AzureWebJobsStorage ».
Lier un compte de stockage Azure en ajoutant l’un des paramètres de valeur suivants :
AzureWebJobsStorage__accountName : Par exemple :
mystorageaccount123
AzureWebJobsStorage__blobServiceUri: Par exemple :
https://mystorageaccount123.blob.core.windows.net/
AzureWebJobsStorage__queueServiceUri: Par exemple :
https://mystorageaccount123.queue.core.windows.net/
AzureWebJobsStorage__tableServiceUri : Par exemple :
https://mystorageaccount123.table.core.windows.net/
Les valeurs de ces variables URI se trouvent dans le compte de stockage sous l’onglet Points de terminaison.
Ajoutez des informations d’identification de clé secrète client en spécifiant les valeurs suivantes :
AzureWebJobsStorage__clientId : (il s’agit d’une valeur GUID trouvée dans la page de l’application Microsoft Entra)
AzureWebJobsStorage__ClientSecret : (il s’agit de la valeur de secret générée dans le centre d’administration Microsoft Entra à l’étape précédente)
AzureWebJobsStorage__tenantId : (il s’agit de l’identifiant de locataire dans lequel l’application Microsoft Entra est inscrite)
Les valeurs d’ID client et d’ID de locataire se trouvent sur la page de vue d’ensemble de votre application cliente. La valeur de la clé secrète client est celle qui a été soigneusement enregistrée à l’étape précédente. Elle ne sera pas disponible une fois la page actualisée.