Skip to main content

Command Palette

Search for a command to run...

Logic App - Access Policies are missing

Comment corriger le déploiement d'une Logic App

Updated
‱2 min read
Logic App - Access Policies are missing
A

Ayant eu de multiples expĂ©riences dans le monde du conseil, j'ai pu acquĂ©rir une expertise dans la conception et la construction de services de collaboration d'entreprise. Je suis passionnĂ© par les technologies Microsoft et surtout Azure. Aujourd'hui je possĂšde une solide expĂ©rience en mĂ©thodologie de dĂ©veloppement et j'ai menĂ© des Ă©quipes de dĂ©veloppement technique au succĂšs. Je possĂšde Ă©galement une solide connaissance de l'infrastructure qui fait de moi une ressource efficace pour mettre en Ɠuvre la transformation numĂ©rique vers le cloud Microsoft. Je suis un professionnel efficace et honnĂȘte qui aime relever les challenges. Aimant partager mes connaissances; je suis Ă  l'aise en tant que Technical Leader et en tant que membre d'une Ă©quipe. Mes compĂ©tences techniques sont les suivantes: Azure, DevOps, Architecture Applicative, DĂ©veloppement de solution Cloud Native, Ă©cosystĂšme Microsoft... et bien d'autres. Pour voir mes certifications Microsoft : https://www.youracclaim.com/users/antoine-loizeau

ProblĂšme

Suite Ă  un dĂ©ploiement automatiser en IaC d’une Logic App via de l’ARM Template, je me suis trouvĂ© face Ă  un soucis sur les connexions aux services oĂč les statuts Ă©taient dans l’état suivant: Access Policies are missing

En dĂ©butant l’analyse, je suis aller chercher le dĂ©tail dans la vue JSON et voici une extraction de la configuration plutĂŽt basique de la connexion associĂ©e Ă  un service SQL qui me posait problĂšme :

{
    "managedApiConnections": {        
        "sql": {
            "api": {
                "id": "@parameters('Paramsqlapi')"
            },
            "authentication": {
                "type": "ManagedServiceIdentity"
            },
            "connection": {
                "id": "@parameters('Paramsqlconnection')"
            },
            "connectionProperties": {
                "authentication": {
                    "audience": "https://database.windows.net/",
                    "type": "ManagedServiceIdentity"
                }
            },
            "connectionRuntimeUrl": "@parameters('ParamsqlconnectionRuntimeUrl')"
        }
    }
}
💡
Les connecteurs API gĂ©rĂ©s nĂ©cessitent plus que le simple dĂ©tail de connexion tel que reprĂ©sentĂ© ci-dessus pour ĂȘtre correctement intĂ©grĂ©s dans la configuration de la Logic App.

Le connecteur d'API géré demande également que la Logic App ait obtenu les permissions nécessaires pour accéder au connecteur. Cette autorisation est accordée en utilisant des politiques d'accÚs spécifiques. La configuration de ces politiques peut se faire de différentes maniÚres.

Par exemple, vous pouvez les dĂ©finir directement via le portail Azure, oĂč vous pourrez ajuster et administrer les permissions en fonction des besoins de votre Logic App. Il est aussi possible de configurer ces politiques d'accĂšs lors de dĂ©ploiements d'infrastructure, ce qui permet d'intĂ©grer cette Ă©tape dans le processus de mise en place de vos ressources. Ainsi, l'accĂšs au connecteur par la Logic App est sĂ©curisĂ© et contrĂŽlĂ© suivant les directives Ă©tablies dans les politiques d'accĂšs.

C'est Ă  ce moment-lĂ  que j'ai rĂ©alisĂ© que la ressource de politique d'accĂšs, qui est une ressource enfant de Microsoft.Web/connections, n'a pas Ă©tĂ© documentĂ©e, ni accessible via l’export du modĂšle via le portail Azure, ni via le Resource Explorer.

Solution

Voici le dĂ©tail de la fameuse ressource “accessPolicies“ Ă  dĂ©finir:

ParameterDescription
<connection-name\>The name for your managed API connection, for example office365
<object-ID\>The object ID for your Microsoft Entra identity, previously saved from your app registration
<tenant-ID\>The tenant ID for your Microsoft Entra identity, previously saved from your app registration

Vous pouvez utiliser ce schéma de modÚle ARM dans votre code :

{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

Au final, voici la documentation Microsoft qui m’a aidĂ© Ă  trouver la solution Ă  mon problĂšme : https://learn.microsoft.com/en-us/azure/logic-apps/azure-arc-enabled-logic-apps-create-deploy-workflows?tabs=azure-cli#arm-template

More from this blog

A

Antoine LOIZEAU | MVP đŸ„‡ Senior Cloud Architect ☁ Expert DevSecOps 🚀

55 posts

Ayant eu de multiples expériences dans le monde du conseil, j'ai pu acquérir une expertise dans la conception et l'automatisation de solutions Cloud Native.