Authentifiez l’accès et les connexions aux ressources Azure avec des identités managées dans Azure Logic Apps
S’applique à : Azure Logic Apps (Consommation + Standard)
Si vous souhaitez éviter de fournir, de stocker et de gérer des informations d’identification, des secrets ou des jetons Microsoft Entra, vous pouvez utiliser une identité managée pour authentifier l’accès ou les connexions à partir de votre flux de travail d’application logique aux ressources protégées par Microsoft Entra. Dans Azure Logic Apps, certaines opérations de connecteur prennent en charge l’utilisation d’une identité managée lorsque vous devez authentifier l’accès aux ressources protégées par Microsoft Entra ID. Azure gère cette identité et sécurise les informations d’authentification. Ainsi, vous n’avez pas à gérer ces informations sensibles. Pour plus d’informations, consultez Que sont les identités managées pour les ressources Azure ?
Azure Logic Apps prend en charge les types d’identité managée suivants :
La liste suivante décrit certaines différences entre ces types d’identité managée :
Une ressource d’application logique peut activer et utiliser une seule identité affectée par le système.
Une ressource d’application logique peut partager la même identité affectée par l’utilisateur dans un groupe d’autres ressources d’application logique.
Ce guide explique comment effectuer les tâches suivantes :
Activez et configurez l’identité affectée par le système pour votre ressource d’application logique. Ce guide fournit un exemple qui montre comment utiliser l’identité pour l’authentification.
Créez et configurez une identité affectée par l’utilisateur. Ce guide montre comment créer cette identité à l’aide du Portail Azure ou d’un modèle Azure Resource Manager (modèle ARM) et comment utiliser l’identité pour l’authentification. Pour Azure PowerShell, Azure CLI et l’API REST Azure, consultez la documentation suivante :
Outil Documentation Azure PowerShell Créer une identité affectée par l’utilisateur Azure CLI Créer une identité affectée par l’utilisateur API REST Azure Créer une identité affectée par l’utilisateur
Prérequis
Un compte et un abonnement Azure. Si vous n’avez pas encore d’abonnement, vous pouvez vous inscrire pour obtenir un compte Azure gratuitement. L’identité managée et la ressource Azure cible à laquelle vous souhaitez accéder doivent utiliser le même abonnement Azure.
Ressource Azure cible à laquelle vous souhaitez accéder. Sur cette ressource, vous devez ajouter le rôle nécessaire à l’identité managée pour accéder à cette ressource au nom de votre application logique ou connexion. Pour ajouter un rôle à une identité managée, vous devez disposer d’autorisations d’administrateur Microsoft Entra qui permettent d’attribuer des rôles aux identités dans le locataire Microsoft Entra correspondant.
Ressource d’application logique et workflow où vous souhaitez utiliser le déclencheur ou les actions qui prennent en charge les identités managées.
Différences d’identité managée entre les applications logiques de Consommation et Standard
En fonction du type de ressource de votre application logique, vous pouvez activer l’identité affectée par le système, l’identité affectée par l’utilisateur ou les deux à la fois :
Application logique | Environnement | Prise en charge des identités managées |
---|---|---|
Consommation | – Azure Logic Apps multilocataire | – Vous pouvez activer soit l’identité affectée par le système soit l’identité affectée par l’utilisateur, mais pas les deux en même temps sur votre application logique. – Vous pouvez utiliser l’identité managée au niveau de la ressource d’application logique et au niveau de la connexion. – Si vous créez et activez l’identité affectée par l’utilisateur, votre application logique ne peut avoir qu’une seule identité affectée par l’utilisateur à la fois. |
Standard | - Azure Logic Apps monolocataire - App Service Environment v3 (ASEv3) - Logic Apps avec Azure Arc |
– Vous pouvez activer à la fois l’identité affectée par le système, qui est activée par défaut, et l’identité affectée par l’utilisateur en même temps. Vous pouvez également ajouter plusieurs identités affectées par l’utilisateur à votre application logique. Toutefois, votre application logique ne peut utiliser qu’une seule identité managée à la fois. – Vous pouvez utiliser l’identité managée au niveau de la ressource d’application logique et au niveau de la connexion. |
Pour plus d’informations sur les limites des identités managées dans Azure Logic Apps, consultez l’article Limites sur les identités managées pour les applications logiques. Pour plus d’informations sur les types de ressources d’application logique de Consommation et Standard, consultez la documentation suivante :
Où utiliser une identité managée
Dans Azure Logic Apps, seules des opérations de connecteur intégrées et managées spécifiques qui prennent en charge OAuth avec Microsoft Entra ID peuvent utiliser une identité managée pour l’authentification. Les tableaux suivants fournissent uniquement une sélection d’exemples. Pour obtenir une liste plus complète, consultez la documentation suivante :
Services Azure qui prennent en charge les identités gérées pour les ressources Azure
Services Azure prenant en charge l’authentification Microsoft Entra
Pour un flux de travail d’application logique de Consommation, le tableau suivant répertorie des exemples de connecteurs qui prennent en charge l’authentification avec une identité managée :
Type de connecteur | Connecteurs pris en charge |
---|---|
Intégré | - Gestion des API Azure - Azure App Services - Azure Functions - HTTP - HTTP + Webhook Remarque : Les opérations HTTP peuvent authentifier les connexions aux comptes Stockage Azure derrière des pare-feux Azure avec l’identité affectée par le système. Toutefois, les opérations HTTP ne prennent pas en charge l’identité affectée par l’utilisateur pour authentifier les mêmes connexions. |
Gérée | - Azure App Service - Azure Automation - Stockage Blob Azure - Azure Container Instance - Azure Cosmos DB - Azure Data Explorer - Azure Data Factory - Azure Data Lake – Azure Digital Twins - Azure Event Grid - Azure Event Hubs - Azure IoT Central V2 - Azure Key Vault – Journaux d’activité Azure Monitor - Files d’attente Azure - Azure Resource Manager - Azure Service Bus - Azure Sentinel - Stockage Table Azure - Machine virtuelle Azure - SQL Server |
Activer une identité affectée par le système sur le Portail Azure
Sur une ressource d’application logique de Consommation, vous devez activer manuellement l’identité affectée par le système.
Sur le portail Azure, ouvrez votre ressource d’application logique Consommation.
Dans le menu de l’application logique, sous Paramètres, sélectionnez Identité.
Sur la page Identité, sous Affectée par le système, sélectionnez Activée>Enregistrer. Quand Azure vous invite à confirmer l’opération, sélectionnez Oui.
Remarque
Si vous recevez une erreur indiquant que vous ne pouvez avoir qu’une seule identité managée, cela signifie que votre ressource d’application logique est déjà associée à l’identité affectée par l’utilisateur. Avant de pouvoir ajouter l’identité affectée par le système, vous devez d’abord supprimer l’identité affectée par l’utilisateur à partir de votre application logique.
Votre ressource d’application logique peut désormais utiliser l’identité affectée par le système. Cette identité est inscrite auprès de Microsoft Entra ID et est représentée par un ID d’objet.
Propriété Valeur Description ID de l’objet (principal) <identity-resource-ID> GUID (identificateur global unique) qui représente l’identité affectée par le système pour votre application logique dans un locataire Microsoft Entra. À présent, suivez les étapes qui donnent à l’identité affectée par le système l’accès à la ressource, que vous trouverez plus loin dans ce guide.
Activer une identité affectée par le système dans un modèle ARM
Pour automatiser la création et le déploiement de ressources d’application logique, vous pouvez utiliser un modèle ARM. Pour activer l’identité affectée par le système pour votre ressource d’application logique dans le modèle, ajoutez l’objet identité et la propriété enfant type à la définition de ressource de l’application logique dans le modèle, par exemple :
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicappName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "SystemAssigned"
},
"properties": {},
<...>
}
Quand Azure crée la définition de ressource de votre application logique, l’objet identité obtient les propriétés supplémentaires suivantes :
"identity": {
"type": "SystemAssigned",
"principalId": "<principal-ID>",
"tenantId": "<Entra-tenant-ID>"
}
Propriété (JSON) | Valeur | Description |
---|---|---|
principalId | <principal-ID> | Identificateur global unique (GUID) de l’objet du principal de service pour l’identité managée qui représente votre application logique dans le locataire Microsoft Entra. Ce GUID apparaît parfois sous la forme d’un « ID d’objet » ou objectID. |
tenantId | <Microsoft-Entra-ID-tenant-ID> | Identificateur global unique (GUID) représentant le locataire Microsoft Entra où l’application logique est maintenant membre. À l’intérieur du locataire Microsoft Entra, le principal du service a le même nom que l’instance d’application logique. |
Créer une identité affectée par l’utilisateur dans le portail Azure
Avant de pouvoir activer l’identité affectée par l’utilisateur sur une ressource d’application logique de Consommation ou Standard, vous devez créer cette identité en tant que ressource Azure distincte.
Dans la boîte de recherche du Portail Azure, entrez identités managées. Dans la liste des résultats, sélectionnez Identités managées.
Dans la barre d’outils de la page Identités managées, sélectionnez Créer.
Fournissez des informations sur votre identité managée, puis sélectionnez Vérifier + créer, par exemple :
Propriété Obligatoire Value Description Abonnement Oui <Azure-subscription-name> Le nom de l’abonnement Azure Groupe de ressources Oui <nom-groupe-de-ressources-Azure> Le nom du groupe de ressources Azure. Créez un groupe, ou sélectionnez un groupe existant. Cet exemple crée un groupe nommé fabrikam-managed-identities-RG. Région Oui <Azure-region> Région Azure où stocker les informations relatives à votre ressource. Cet exemple utilise la région USA Ouest. Nom Oui <nom-identité-affectée-par-utilisateur> Nom à donner à votre identité affectée par l’utilisateur. Cet exemple utilise Fabrikam-user-assigned-identity. Une fois les informations validées, Azure crée votre identité managée. À présent, vous pouvez ajouter l’identité affectée par l’utilisateur à votre ressource d’application logique.
Ajouter une identité affectée par l’utilisateur à l’application logique dans le portail Azure
Sur le portail Azure, ouvrez votre ressource d’application logique Consommation.
Dans le menu de l’application logique, sous Paramètres, sélectionnez Identité.
Sur la page Identité, sélectionnez Affectée par l’utilisateur, puis Ajouter.
Dans le volet Ajouter une identité managée affectée par l’utilisateur, effectuez les étapes suivantes :
Dans la liste déroulante Sélectionner un Abonnement, sélectionnez votre abonnement Azure.
Dans la liste qui contient toutes les identités managées de votre abonnement, sélectionnez l’identité affectée par l’utilisateur qui vous intéresse. Pour filtrer la liste, dans la zone de recherche Identités managées affectées par l’utilisateur, entrez le nom de l’identité ou du groupe de ressources.
Une fois que vous avez terminé, sélectionnez Ajouter.
Notes
Si vous recevez une erreur indiquant que vous ne pouvez avoir qu’une seule identité managée, cela signifie que votre application logique est déjà associée à l’identité affectée par le système. Avant de pouvoir ajouter l’identité affectée par l’utilisateur, vous devez d’abord désactiver l’identité affectée par le système.
Votre application logique est désormais associée à l’identité affectée par l’utilisateur.
À présent, suivez les étapes qui donnent à l’identité l’accès à la ressource, que vous trouverez plus loin dans ce guide.
Créer une identité affectée par l’utilisateur dans un modèle ARM
Pour automatiser la création et le déploiement de ressources d’application logique, vous pouvez utiliser un modèle ARM. Ces modèles prennent en charge les identités affectées par l’utilisateur pour l’authentification.
Dans la section ressources de votre modèle, la définition de ressource de votre application logique nécessite les éléments suivants :
Un objet identité avec la propriété type définie sur UserAssigned
Un objet enfant userAssignedIdentities qui spécifie la ressource affectée par l’utilisateur et le nom
Cet exemple montre la définition d’un flux de travail et d’une ressource d’application logique de Consommation pour une requête HTTP PUT avec un objet identité non paramétrisé. La réponse à la requête PUT et à l’opération GET qui suit comporte également cet objet identité :
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {<template-parameters>},
"resources": [
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicappName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>": {}
}
},
"properties": {
"definition": {<logic-app-workflow-definition>}
},
"parameters": {},
"dependsOn": []
},
],
"outputs": {}
}
Si votre modèle inclut également la définition de ressource de l’identité managée, vous pouvez paramétriser l’objet identité. L’exemple suivant montre comment l’objet enfant userAssignedIdentities fait référence à une variable userAssignedIdentityName que vous définissez dans la section variables de votre modèle. Cette variable référence l’ID de ressource de l’identité affectée par l’utilisateur.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"Template_LogicAppName": {
"type": "string"
},
"Template_UserAssignedIdentityName": {
"type": "securestring"
}
},
"variables": {
"logicAppName": "[parameters(`Template_LogicAppName')]",
"userAssignedIdentityName": "[parameters('Template_UserAssignedIdentityName')]"
},
"resources": [
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicAppName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]": {}
}
},
"properties": {
"definition": {<logic-app-workflow-definition>}
},
"parameters": {},
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]"
]
},
{
"apiVersion": "2018-11-30",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('Template_UserAssignedIdentityName')]",
"location": "[resourceGroup().location]",
"properties": {}
}
]
}
Accorder à une identité l’accès aux ressources
Pour pouvoir vous servir de l’identité managée de votre application logique pour l’authentification, vous devez configurer l’accès de l’identité sur la ressource Azure cible où vous souhaitez utiliser l’identité. La façon dont vous configurez l’accès varie en fonction de la ressource cible.
Remarque
Quand une identité managée a accès à une ressource Azure dans le même abonnement, l’identité ne peut accéder qu’à cette ressource. Toutefois, dans certains déclencheurs et actions qui prennent en charge les identités managées, vous devez d’abord sélectionner le groupe de ressources Azure qui contient la ressource cible. Si l’identité ne dispose pas d’un accès au niveau du groupe de ressources, aucune ressource de ce groupe n’est listée malgré l’accès à la ressource cible.
Pour gérer ce comportement, vous devez également autoriser l’identité à accéder au groupe de ressources, et pas seulement à la ressource. De même, si vous devez sélectionner votre abonnement avant de pouvoir sélectionner la ressource cible, vous devez autoriser l’identité à accéder à l’abonnement.
Dans certains cas, l’identité pourra nécessiter l’accès à la ressource associée. Par exemple, supposons que vous disposez d’une identité managée pour une application logique qui a besoin d’un accès pour mettre à jour les paramètres de l’application pour cette même application logique à partir d’un flux de travail. Vous devez accorder à cette identité l’accès à l’application logique associée.
Par exemple, pour accéder à un compte de stockage Blob Azure ou à un coffre de clés Azure avec votre identité managée, vous devez configurer le contrôle d’accès en fonction du rôle Azure (Azure RBAC) et attribuer le rôle approprié pour cette identité au compte de stockage ou au coffre de clés, respectivement.
Les étapes de cette section décrivent comment attribuer un accès en fonction du rôle à l’aide du portail Azure et du modèle Azure Resource Manager (modèle ARM). Pour Azure PowerShell, Azure CLI et l’API REST Azure, consultez la documentation suivante :
Outil | Documentation |
---|---|
Azure PowerShell | Ajouter une attribution de rôle |
Azure CLI | Ajouter une attribution de rôle |
API REST Azure | Ajouter une attribution de rôle |
Pour un coffre de clés Azure, vous pouvez également créer une stratégie d’accès pour votre identité managée sur votre coffre de clés et attribuer les autorisations appropriées pour cette identité sur ce coffre de clés. Les étapes ultérieures de cette section décrivent comment effectuer cette tâche à l’aide du portail Azure. Pour les modèles Resource Manager, PowerShell et Azure CLI, consultez la documentation suivante :
Outil | Documentation |
---|---|
Modèle Azure Resource Manager (modèle ARM) | Définition de la ressource de stratégie d’accès Key Vault |
Azure PowerShell | Attribuer une stratégie d’accès Key Vault |
Azure CLI | Attribuer une stratégie d’accès Key Vault |
Attribuer un accès basé sur le rôle à l’identité managée à l’aide du Portail Azure
Pour utiliser une identité managée pour l’authentification, certaines ressources Azure, telles que les comptes de stockage Azure, requièrent que vous affectiez cette identité à un rôle disposant des autorisations appropriées sur la ressource cible. D’autres ressources Azure, telles que les coffres de clés Azure, prennent en charge plusieurs options. Vous pouvez donc choisir un accès en fonction du rôle ou une stratégie d’accès qui dispose des autorisations appropriées sur la ressource cible pour cette identité.
Dans le Portail Azure, ouvrez la ressource où vous souhaitez utiliser l’identité.
Dans le menu de la ressource, sélectionnez Contrôle d’accès (IAM)>Ajouter>Ajouter une attribution de rôle.
Remarque
Si l’option Ajouter une attribution de rôle est désactivée, vous n’avez pas les autorisations pour attribuer les rôles. Pour plus d’informations, consultez Rôles intégrés Microsoft Entra.
Attribuez le rôle nécessaire à votre identité managée. Dans l’onglet Rôle, attribuez un rôle à votre identité qui lui permette d’accéder à la ressource actuelle.
Pour cet exemple, attribuez le rôle nommé Contributeur aux données Blob de stockage, qui comprend un accès en écriture aux objets blob dans un conteneur de Stockage Azure. Pour plus d’informations sur des rôles de conteneur de stockage spécifiques, consultez l’article Rôles qui peuvent accéder aux objets blob dans un conteneur Stockage Azure.
Ensuite, choisissez l’identité managée dans laquelle vous souhaitez affecter le rôle. Sous Attribuer l’accès à, sélectionnez Identité managée>Ajouter des membres.
En fonction du type de votre identité managée, sélectionnez ou fournissez les valeurs suivantes :
Type Instance de service Azure Abonnement Membre Attribué par le système Application logique <Azure-subscription-name> <your-logic-app-name> Affecté par l’utilisateur Non applicable <Azure-subscription-name> <your-user-assigned-identity-name> Pour plus d’informations sur l’attribution de rôles, consultez Attribuer des rôles à l’aide du Portail Azure.
Une fois que vous avez terminé, vous pouvez utiliser l’identité pour authentifier l’accès aux déclencheurs et aux actions qui prennent en charge les identités managées.
Pour plus d’informations générales sur cette tâche, consultez Attribuer un accès à une identité gérée à une ressource Azure ou à une autre ressource.
Créer une stratégie d’accès à l’aide du Portail Azure
Pour utiliser une identité managée pour l’authentification, d’autres ressources Azure prennent également en charge ou nécessitent la création d’une stratégie d’accès disposant des autorisations appropriées sur la ressource cible pour cette identité. En revanche, d’autres ressources Azure, telles que les comptes de stockage Azure, requièrent l’affectation de cette identité à un rôle disposant des autorisations appropriées sur la ressource cible.
Dans le portail Azure, ouvrez la ressource cible où vous souhaitez utiliser l’identité. Cet exemple utilise un coffre de clés Azure comme ressource cible.
Dans le menu de la ressource, sélectionnez Stratégies d’accès>Créer, ce qui ouvre le volet Créer une stratégie d’accès.
Remarque
Si la ressource ne dispose pas de l’option Stratégies d’accès, essayez d’affecter une affectation de rôle à la place.
Sous l’onglet Autorisations, sélectionnez les autorisations requises dont l’identité a besoin pour accéder à la ressource cible.
Par exemple, pour utiliser l’identité avec l’opération Afficher la liste des secrets du connecteur Azure Key Vault managé, l’identité a besoin des autorisations Afficher des listes. Ainsi, dans la colonne Autorisations du secret, sélectionnez Lister.
Ensuite, sélectionnez Suivant. Sous l’onglet Principal, recherchez et sélectionnez l’identité managée, qui est une identité affectée par l’utilisateur dans cet exemple.
Ignorez l’étape Application facultative, sélectionnez Suivant, puis terminez la création de la stratégie d’accès.
La section suivante montre comment utiliser une identité managée avec un déclencheur ou une action pour authentifier l’accès. L’exemple continue avec les étapes d’une section précédente où vous configurez l’accès pour une identité managée à l’aide de RBAC et d’un compte de stockage Azure comme exemple. Toutefois, les étapes générales d’utilisation d’une identité managée pour l’authentification sont les mêmes.
Authentifier l’accès avec des identités managées
Après avoir activé l’identité managée pour votre ressource d’application logique et accordé à cette identité l’accès à la ressource ou au service cible Azure, vous pouvez utiliser cette identité dans des déclencheurs et actions prenant en charge les identités managées.
Important
Si vous avez une fonction Azure dans laquelle vous voulez utiliser l’identité affectée par le système, commencez par activer l’authentification pour les fonctions Azure.
Les étapes suivantes montrent comment utiliser l’identité managée avec un déclencheur ou une action via le Portail Azure. Pour spécifier l’identité managée dans la définition JSON sous-jacente d’un déclencheur ou d’une action, voir Authentification d’identité managée.
Sur le portail Azure, ouvrez votre ressource d’application logique Consommation.
Si ce n’est encore fait, ajoutez le déclencheur ou l’action prenant en charge les identités managées.
Remarque
Toutes les opérations de connecteur ne vous permettent pas d’ajouter un type d’authentification. Pour plus d’informations, consultez Types d’authentification pour les déclencheurs et les actions qui prennent en charge l’authentification.
Sur le déclencheur ou l’action que vous avez ajouté, procédez comme suit :
Opérations de connecteur intégré qui prennent en charge l’authentification avec des identités managées
Ces étapes continuent à l’aide de l’action HTTP comme exemple.
Dans la liste Paramètres avancés, ajoutez la propriété Authentification si la propriété n’apparaît pas déjà.
À présent, la propriété Authentication et la liste Type d’authentification apparaissent dans l’action.
Dans la liste Type d’authentification, sélectionnez Identité managée.
La section Authentification montre maintenant les options suivantes :
Une liste Identité managée à partir de laquelle vous pouvez sélectionner une identité managée spécifique
La propriété Audience s’affiche sur des déclencheurs et des actions spécifiques pour vous permettre de définir l’ID de ressource pour la ressource ou le service cible Azure. Autrement, par défaut, la propriété Audience utilise l’ID de ressource
https://management.azure.com/
, qui est l’ID de ressource pour Azure Resource Manager.
Dans la liste Identité managée, sélectionnez l’identité que vous souhaitez utiliser, par exemple :
Remarque
L’option sélectionnée par défaut est Identité managée affectée par le système, même si vous n’avez pas d’identités managées activées.
Pour réussir à utiliser une identité managée, vous devez d’abord activer cette identité sur votre application logique. Sur une application logique de Consommation, vous pouvez avoir soit l’identité managée affectée par le système soit l’identité managée affectée par l'utilisateur, mais pas les deux.
Pour plus d’informations, consultez l’article Exemple : authentifier le déclencheur ou l’action intégrés avec une identité managée.
Opérations de connecteur managé qui prennent en charge l’authentification avec des identités managées
Dans le volet Créer une connexion, dans la liste Authentification, sélectionnez Identité managée, par exemple :
Dans le volet suivant, renseignez le champ Nom de la connexion.
Pour le type d’authentification, choisissez l’une des options suivantes en fonction de votre connecteur managé :
Authentification unique : ces connecteurs ne prennent en charge qu’un seul type d’authentification, qui est l’identité managée dans ce cas.
Dans la liste Identité managée, sélectionnez l’identité managée actuellement activée.
Quand vous êtes prêt, sélectionnez Créer.
Authentification multiple : ces connecteurs prennent en charge plusieurs types d’authentification, mais vous ne pouvez en sélectionner et en utiliser qu’un seul à la fois.
Ces étapes continuent à l’aide de l’action Stockage Blob Azure comme exemple.
Pour plus d’informations, consultez l’article Exemple : authentifier un déclencheur ou une action de connecteur managé avec une identité managée.
Exemple : Authentifier le déclencheur ou l’action intégré avec une identité managée
Le déclencheur ou l’action HTTP intégré peut utiliser l’identité affectée par le système que vous activez sur votre ressource d’application logique. En général, le déclencheur ou l’action HTTP utilise les propriétés suivantes pour spécifier la ressource ou l’entité à laquelle vous souhaitez accéder :
Propriété | Obligatoire | Description |
---|---|---|
Méthode | Oui | Méthode HTTP utilisée par l’opération que vous souhaitez exécuter |
URI | Oui | URL de point de terminaison pour accéder à la ressource ou entité Azure cibles. La syntaxe de l’URI comprend généralement l’ID de ressource pour la ressource ou le service cible Azure. |
En-têtes | Non | Toute valeur d’en-tête que vous devez ou souhaitez inclure dans la demande sortante, telle que le type de contenu |
Requêtes | Non | Tous les paramètres de requête que vous devez ou voulez inclure dans la demande. Par exemple, les paramètres de requête pour une opération spécifique ou pour la version d’API de l’opération que vous souhaitez exécuter. |
Authentification | Oui | Le type d’authentification à utiliser pour authentifier l’accès à la ressource ou au service cible Azure |
À titre d’exemple, supposons que vous souhaitez exécuter l’opération de capture instantanée d’objet blob sur un blob dans le compte de Stockage Azure où vous avez précédemment configuré l’accès pour votre identité. Toutefois, le connecteur de Stockage Blob Azure ne propose pas cette opération actuellement. Au lieu de cela, vous pouvez l’exécuter à l’aide de l’action HTTP ou d’une autre opération de l’API REST du service BLOB.
Important
Pour accéder aux comptes de stockage Azure derrière des pare-feu en utilisant le connecteur Stockage Blob Azure et des identités managées, veillez à configurer également votre compte de stockage avec l’exception qui autorise l’accès de services Microsoft approuvés.
Pour exécuter l’opération de capture instantanée d’objet blob, l’action HTTP spécifie les propriétés suivantes :
Propriété | Obligatoire | Valeur d'exemple | Description |
---|---|---|---|
URI | Oui | https://<storage-account-name>/<folder-name>/{name} |
ID de ressource d’un fichier de Stockage Blob Azure dans l’environnement global (public) Azure qui utilise cette syntaxe |
Méthode | Oui | PUT |
Méthode HTTP utilisée par l’opération de capture instantanée d’objet blob |
En-têtes | Pour Stockage Azure | x-ms-blob-type = BlockBlob x-ms-version = 2024-05-05 x-ms-date = formatDateTime(utcNow(),'r') |
Les valeurs d’en-tête x-ms-blob-type , x-ms-version et x-ms-date sont requises pour les opérations du service Stockage Azure. Important ! Dans le déclencheur HTTP sortant et les demandes d’action pour Stockage Azure, l’en-tête requiert la propriété x-ms-version et la version de l’API pour l’opération que vous souhaitez exécuter. La valeur x-ms-date doit être la date actuelle. Dans le cas contraire, votre workflow échoue avec une erreur 403 FORBIDDEN . Pour obtenir la date actuelle au format requis, vous pouvez utiliser l’expression dans l’exemple de valeur. Pour plus d’informations, consultez la documentation suivante : - En-têtes de demande – Capture instantanée d’objet blob - Contrôle de version pour les services Stockage Azure |
Requêtes | Uniquement pour l’opération de capture instantanée de blob | comp = snapshot |
Nom et valeur du paramètre de requête pour l’opération. |
Dans le concepteur de flux de travail, ajoutez les déclencheurs souhaités, puis ajoutez l’action HTTP.
L’exemple suivant montre un exemple d’action HTTP avec toutes les valeurs de propriété précédemment décrites à utiliser pour l’opération Snapshot Blob :
Dans l’action HTTP, ajoutez la propriété Authentification. Dans la liste Paramètres avancés, sélectionnez Authentification.
La section Authentification apparaît désormais dans votre action HTTP.
Remarque
Tous les déclencheurs et toutes les actions ne vous permettent pas d’ajouter un type d’authentification. Pour plus d’informations, consultez Types d’authentification pour les déclencheurs et les actions qui prennent en charge l’authentification.
Dans la liste Type d’authentification, sélectionnez Identité managée.
Dans la liste Identité managée, sélectionnez les options disponibles en fonction de votre scénario.
Si vous configurez l’identité affectée par le système, sélectionnez Identité managée affectée par le système.
Si vous configurez une identité affectée par l’utilisateur, sélectionnez cette identité.
Cet exemple se poursuit avec l’identité managée affectée par le système.
Sur des connecteurs et actions spécifiques, la propriété Audience s’affiche pour vous permettre de définir l’ID de ressource pour la ressource ou le service cible Azure.
Par exemple, pour authentifier l’accès à une ressource Key Vault dans le cloud global Azure, vous devez définir la propriété Audience précisément sur l’ID de ressource suivant :
https://vault.azure.net
Si vous ne définissez pas la propriété Audience, la propriété Audience utilise par défaut l’ID de ressource
https://management.azure.com/
, qui est l’ID de ressource d’Azure Resource Manager.Important
Vérifiez que l’ID de ressource cible correspond exactement à la valeur attendue par Microsoft Entra ID. Sinon, vous pouvez obtenir une erreur
400 Bad Request
ou une erreur401 Unauthorized
. Par conséquent, si l’ID de ressource inclut des barres obliques de fin, veillez à les inclure. Sinon, ne les incluez pas.Par exemple, l’ID de ressource pour tous les comptes de Stockage Blob Azure requiert une barre oblique finale. Toutefois, l’ID de ressource pour un compte de stockage spécifique ne requiert pas de barre oblique finale. Vérifiez les ID de ressource des services Azure qui prennent en charge Microsoft Entra ID.
Cet exemple définit la propriété Audience sur
https://storage.azure.com/
afin que les jetons d’accès utilisés pour l’authentification soient valides pour tous les comptes de stockage. Toutefois, vous pouvez également spécifier l’URL du service racine,https://<your-storage-account>.blob.core.windows.net
, pour un compte de stockage spécifique.Pour plus d’informations sur l’autorisation de l’accès au Stockage Azure avec Microsoft Entra ID, consultez la documentation suivante :
Continuez à créer le workflow comme vous le souhaitez.
Exemple : Authentifier un déclencheur ou une action de connecteur géré avec une identité managée
Le connecteur managé Azure Resource Manager a une action appelée Lire une ressource, qui peut utiliser l’identité managée que vous activez sur votre ressource d’application logique. Cet exemple montre comment utiliser l’identité managée affectée par le système avec un connecteur managé.
Dans le concepteur de flux de travail, ajoutez l’action Azure Resource Manager nommée Lire une ressource.
Dans le volet Créer une connexion, dans la liste Authentification, sélectionnez Identité managée, puis Se connecter.
Remarque
Dans d’autres connecteurs, la liste Type d’authentification affiche Identité managée Logic Apps à la place. Sélectionnez cette option.
Indiquez un nom pour la connexion et sélectionnez l’identité managée à utiliser.
Si vous avez activé une identité managée affectée par le système, la liste Identité managée sélectionne Identité managée affectée par le système. Si vous avez activé une identité affectée par l’utilisateur à la place, la liste sélectionne automatiquement l’identité affectée par l’utilisateur.
Dans cet exemple, Identité managée affectée par le système est la seule sélection disponible.
Remarque
Si l’identité managée n’est pas activée quand vous essayez de créer ou de modifier la connexion ou qu’elle a été supprimée alors qu’une connexion avec une identité managée existe encore, vous recevez une erreur indiquant que vous devez activer l’identité et accorder l’accès à la ressource cible.
Quand vous êtes prêt, sélectionnez Créer.
Une fois qu’il a réussi à créer la connexion, le concepteur peut extraire les valeurs, le contenu ou le schéma dynamiques à l’aide de l’authentification par identité managée.
Continuez à créer le workflow comme vous le souhaitez.
Définition et connexions de ressources d’application logique qui utilisent une identité managée
Une connexion qui active et utilise une identité managée est un type particulier de connexion qui fonctionne uniquement avec une identité managée. Au moment de l’exécution, la connexion utilise l’identité managée qui est activée sur la ressource d’application logique. Azure Logic Apps vérifie si des opérations de connecteur managé dans le flux de travail sont configurées pour utiliser l’identité managée et que toutes les autorisations requises sont configurées pour utiliser l’identité managée afin d’accéder aux ressources cibles spécifiées par les opérations de connecteur. En cas de réussite de cette vérification, Azure Logic Apps récupère le jeton Microsoft Entra associé à l’identité managée, utilise cette identité pour authentifier l’accès à la ressource Azure cible et effectue les opérations configurées dans le flux de travail.
Dans une ressource d’application logique de Consommation, la configuration de la connexion est enregistrée dans l’objet parameters
de la définition de la ressource, qui contient l’objet $connections
qui inclut des pointeurs vers l’ID de ressource de la connexion ainsi que l’ID de ressource de l’identité managée, si l’identité affectée par l’utilisateur est activée.
Cet exemple montre la configuration de l’objet parameters
lorsque l’application logique active l’identité affectée par le système :
"parameters": {
"$connections": {
"value": {
"<action-name>": {
"connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
"connectionName": "<connector-name>",
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity"
}
},
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
}
}
}
}
Cet exemple montre la configuration de l’objet parameters
lorsque l’application logique active l’identité managée affectée par l’utilisateur :
"parameters": {
"$connections": {
"value": {
"<action-name>": {
"connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
"connectionName": "<connector-name>",
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity",
"identity": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/microsoft.managedidentity/userassignedidentities/<managed-identity-name>"
}
},
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
}
}
}
}
Modèle ARM pour les connexions d’API et les identités managées
Si vous utilisez un modèle ARM pour automatiser le déploiement et que votre flux de travail comprend une connexion d’API, créée par un connecteur managé qui utilise une identité managée, vous devez effectuer une étape supplémentaire.
Dans un modèle ARM, la définition de ressource de connecteur sous-jacente diffère selon que vous disposez d’une ressource d’application logique de Consommation ou Standard et que le connecteur affiche des options d’authentification unique ou d’authentification multiple.
Les exemples suivants s’appliquent aux ressources d’application logique de Consommation et montrent comment la définition de ressource de connecteur sous-jacente diffère entre un connecteur à authentification unique et un connecteur à authentification multiple.
Authentification unique
Cet exemple illustre la définition de ressource de connexion sous-jacente pour une action de connecteur qui prend en charge un seul type d’authentification et utilise une identité managée dans un flux de travail d’application logique de Consommation où la définition inclut les attributs suivants :
La propriété
kind
a la valeurV1
pour une application logique Consommation.La propriété
parameterValueType
est définie surAlternative
.
{
"type": "Microsoft.Web/connections",
"apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
"name": "[variables('connections_<connector-name>_name')]",
"location": "[parameters('location')]",
"kind": "V1",
"properties": {
"alternativeParameterValues": {},
"api": {
"id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureautomation')]"
},
"authenticatedUser": {},
"connectionState": "Enabled",
"customParameterValues": {},
"displayName": "[variables('connections_<connector-name>_name')]",
"parameterValueSet": {},
"parameterValueType": "Alternative"
}
},
Authentification multiple
Cet exemple illustre la définition de ressource de connexion sous-jacente pour une action de connecteur qui prend en charge plusieurs types d’authentification et utilise une identité managée dans un flux de travail d’application logique de Consommation où la définition inclut les attributs suivants :
La propriété
kind
a la valeurV1
pour une application logique Consommation.L’objet
parameterValueSet
comprend une propriéténame
définie surmanagedIdentityAuth
, et une propriétévalues
définie sur un objet vide.
{
"type": "Microsoft.Web/connections",
"apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
"name": "[variables('connections_<connector-name>_name')]",
"location": "[parameters('location')]",
"kind": "V1",
"properties": {
"alternativeParameterValues":{},
"api": {
"id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureblob')]"
},
"authenticatedUser": {},
"connectionState": "Enabled",
"customParameterValues": {},
"displayName": "[variables('connections_<connector-name>_name')]",
"parameterValueSet":{
"name": "managedIdentityAuth",
"values": {}
},
"parameterValueType": "Alternative"
}
}
Configurer le contrôle avancé sur l’authentification de la connexion d’API
Quand votre flux de travail d’application logique Standard utilise une connexion d’API, créée par un connecteur managé, Azure Logic Apps communique avec la ressource cible, telle que votre compte de messagerie, votre coffre de clés, etc., à l’aide de deux connexions :
La connexion 1 est configurée avec l’authentification pour le magasin de jetons interne.
La connexion 2 est configurée avec l’authentification pour la ressource cible.
Cependant, lorsqu’un flux de travail d’application logique de Consommation utilise une connexion d’API, la connexion 1 vous est abstraite sans aucune option de configuration. Avec la ressource d’application logique Standard, vous avez davantage de contrôle sur votre application logique et vos flux de travail. Par défaut, la connexion 1 est automatiquement configurée pour utiliser l’identité affectée par le système.
Si votre scénario nécessite un contrôle plus précis de l’authentification des connexions d’API, vous pouvez éventuellement modifier l’authentification pour la connexion 1 de l’identité affectée par le système par défaut en la remplaçant par une identité quelconque affectée par l’utilisateur que vous avez ajoutée à votre application logique. Cette authentification s’applique à chaque connexion d’API, ce qui vous permet de combiner des identités affectées par le système et affectées par l’utilisateur sur différentes connexions à la même ressource cible.
Dans le fichier connections.json de votre application logique Standard, qui stocke des informations sur chaque connexion d’API, chaque définition de connexion comporte deux sections authentication
, par exemple :
"keyvault": {
"api": {
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault"
},
"authentication": {
"type": "ManagedServiceIdentity",
},
"connection": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>"
},
"connectionProperties": {
"authentication": {
"audience": "https://vault.azure.net",
"type": "ManagedServiceIdentity"
}
},
"connectionRuntimeUrl": "<connection-runtime-URL>"
}
La première section
authentication
est mappée à la connexion 1.Cette section décrit l’authentification utilisée pour communiquer avec le magasin de jetons interne. Dans le passé, cette section était toujours définie sur
ManagedServiceIdentity
pour une application qui se déploie sur Azure, et elle ne proposait aucune option configurable.La deuxième section
authentication
est mappée à la connexion 2.Cette section décrit l’authentification utilisée pour communiquer avec la ressource cible, qui peut varier en fonction du type d’authentification que vous sélectionnez pour cette connexion.
Pourquoi modifier l’authentification pour le magasin de jetons ?
Dans certains scénarios, vous souhaiterez peut-être partager et utiliser la même connexion d’API sur plusieurs ressources d’application logique, sans ajouter l’identité affectée par le système pour chaque ressource d’application logique à la stratégie d’accès de la ressource cible.
Dans d’autres scénarios, vous ne souhaiterez peut-être pas que l’identité affectée par le système soit entièrement configurée sur votre application logique, de sorte que vous pouvez modifier l’authentification en spécifiant une identité affectée par l’utilisateur et en désactivant complètement l’identité affectée par le système.
Modifier l’authentification pour le magasin de jetons
Dans le portail Azure, ouvrez votre ressource d’application logique Standard.
Dans le menu de ressources, sous Workflows, sélectionnez Connexions.
Dans le volet Connexions, sélectionnez Vue JSON.
Dans l’éditeur JSON, recherchez la section
managedApiConnections
, qui contient les connexions d’API couvrant tous les workflows figurant dans votre ressource d’application logique.Recherchez la connexion dans laquelle vous souhaitez ajouter une identité managée affectée par l’utilisateur.
Supposons, par exemple, que votre flux de travail dispose d’une connexion Azure Key Vault :
"keyvault": { "api": { "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault" }, "authentication": { "type": "ManagedServiceIdentity" }, "connection": { "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>" }, "connectionProperties": { "authentication": { "audience": "https://vault.azure.net", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<connection-runtime-URL>" }
Dans la définition de la connexion, procédez comme suit :
Recherchez la première section
authentication
. Si aucune propriétéidentity
n’existe encore dans cette sectionauthentication
, l’application logique utilise implicitement l’identité affectée par le système.Ajoutez une propriété
identity
à l’aide de l’exemple de cette étape.Définissez la valeur de la propriété sur l’ID de ressource pour l’identité affectée par l’utilisateur.
"keyvault": { "api": { "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault" }, "authentication": { "type": "ManagedServiceIdentity", // Add "identity" property here "identity": "/subscriptions/<Azure-subscription-ID>/resourcegroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-resource-ID>" }, "connection": { "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>" }, "connectionProperties": { "authentication": { "audience": "https://vault.azure.net", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<connection-runtime-URL>" }
Dans le portail Azure, accédez à la ressource cible et accordez l’accès à l’identité managée affectée par l’utilisateur, en fonction des besoins de la ressource cible.
Par exemple, pour Azure Key Vault, ajoutez l’identité aux stratégies d’accès du coffre de clés. Pour Stockage Blob Azure, affectez le rôle nécessaire pour l’identité au compte de stockage.
Désactiver l’identité managée
Pour cesser d’utiliser l’identité managée pour l’authentification, commencez par supprimer l’accès de l’identité à la ressource cible. Ensuite, sur votre ressource d’application logique, désactivez l’identité affectée par le système ou supprimez l’identité affectée par l’utilisateur.
Quand vous désactivez l’identité managée sur votre ressource d’application logique, vous supprimez la capacité de cette identité à demander l’accès aux ressources Azure auxquelles elle avait accès.
Notes
Si vous désactivez l’identité affectée par le système, toutes les connexions utilisées par les workflows dans le workflow de cette application logique ne fonctionnent pas au moment de l’exécution, même si vous réactivez immédiatement l’identité. Ce comportement se produit car la désactivation de l’identité entraîne la suppression de l’ID d’objet. Chaque fois que vous activez l’identité, Azure génère l’identité avec un ID d’objet différent et unique. Pour résoudre ce problème, vous devez recréer les connexions afin qu’elles utilisent l’ID d’objet actuel pour l’identité affectée par le système actuelle.
Essayez autant que possible de ne pas désactiver l’identité affectée par le système. Si vous souhaitez supprimer l’accès de l’identité aux ressources Azure, supprimez l’attribution de rôle de l’identité de la ressource cible. Si vous supprimez votre ressource d’application logique, Azure supprime automatiquement l’identité managée de Microsoft Entra ID.
Les étapes décrites dans cette section traitent de l’utilisation du portail Azure et du modèle ARM (Azure Resource Manager). Pour Azure PowerShell, Azure CLI et l’API REST Azure, consultez la documentation suivante :
Outil | Documentation |
---|---|
Azure PowerShell | 1. Supprimer une attribution de rôle 2. Supprimer une identité affectée par l’utilisateur |
Azure CLI | 1. Supprimer une attribution de rôle 2. Supprimer une identité affectée par l’utilisateur |
API REST Azure | 1. Supprimer une attribution de rôle 2. Supprimer une identité affectée par l’utilisateur |
Pour plus d’informations, consultez Supprimer des attributions de rôles Azure.
Désactiver l’identité managée dans le portail Azure
Pour supprimer l’accès pour l’identité managée, supprimez l’attribution de rôle de l’identité de la ressource cible, puis désactivez l’identité managée.
Supprimer une attribution de rôle
Les étapes suivantes permettent de supprimer l’accès à la ressource cible de l’identité managée :
Dans le portail Azure, accédez à la ressource Azure cible dont vous souhaitez supprimer l’accès à l’identité managée.
Dans le menu de la ressource cible, sélectionnez Contrôle d’accès (IAM) . Sous la barre d’outils, sélectionnez Attributions de rôle.
Dans la liste des rôles, sélectionnez les identités managées que vous souhaitez supprimer. Dans la barre d’outils, sélectionnez Supprimer.
Conseil
Si l’option Supprimer est désactivée, vous n’avez probablement pas les autorisations appropriées. Pour plus d’informations sur les autorisations vous permettant de gérer des rôles pour des ressources, consultez l’article Autorisations des rôles d’administrateur dans Microsoft Entra ID.
Désactiver l’identité managée sur la ressource d’application logique
Dans le portail Azure, ouvrez votre ressource d’application logique.
Dans le menu de la ressource d’application logique, sous Paramètres, sélectionnez Identité, puis suivez les étapes correspondant à votre identité :
Sélectionnez Affecté(e) par le système>Actif>Enregistrer. Quand Azure vous invite à confirmer l’opération, sélectionnez Oui.
Sélectionnez Affecté(e) par l’utilisateur et l’identité managée, puis sélectionnez Supprimer. Quand Azure vous invite à confirmer l’opération, sélectionnez Oui.
Désactiver l’identité managée dans un modèle ARM
Si vous avez créé l’identité managée de l’application logique à l’aide d’un modèle ARM, définissez la propriété enfant de l’identity
objet type
sur None
.
"identity": {
"type": "None"
}