Dans cet article, nous verrons comment sécuriser vos appels d'API Graph dans Logic App en utilisant une identité managée (system-assigned managed identity).

Bienvenue dans la quatrième partie de la série d'articles sur Logic Apps.

Dans la première partie, nous avons vu comment créer votre première Logic App.

Ensuite, nous avons vu comment interroger MS Graph au travers d'une application Azure.

Dans la troisième partie, nous avons vu comment sécuriser l'authentification en ajoutant les informations d'une application Azure dans un Key Vault.

Voyons maintenant comment améliorer la sécurité de notre Logic App en utilisant une identité managée (system-assigned managed identity).


Managed identity, qu'est-ce que c'est ?

Un peu de contexte

Pour automatiser vos actions avec Intune, Azure ou même AD on premise, l'étape la plus importante et souvent la plus problématique est l'authentification.

Personne ne veut laisser trainer un mot de passe en dur, personne j'espère en tout cas ?

Nous avons donc besoin d'un autre moyen de nous authentifier.

C’est là que l’identité managée est essentielle.


Qu'est-ce que c'est ?

Une identité managée est une identité, compte sur Azure, Entra ID.

Lorsque vous configurez une ressource (Logic App ou Azure Automation) pour utiliser une identité managée, une application Azure Enterprise est automatiquement créée.

Votre ressource s'authentifiera ensuite via cette application (identité managée) sans avoir à saisir des identifiants.

Pour activer une identité managée sur une ressource, vous devez accéder à la partie Identité.

Vous y trouverez deux types d'identité managée.

L'activation d'une identité managée sur une ressource ne lui permet pas d'effectuer des actions sur votre Intune, Azure...

En effet pour cela, il faut définir des autorisations sur l'identité managée.


system-assigned

Lorsque vous configurez une identité managée, en mode system-assigned, à une ressource, une nouvelle application d’entreprise Azure est créée.

Si vous créez plusieurs Logic Apps, par exemple, une application Azure sera créée pour chacune d'elles.

Une identité managée en mode system-assigned est associée à une seule ressource (un seul Logic App ou Azure Automation).

Cela signifie également qu'il faudra gérer les permissions pour chacun d’entre eux.

Lorsqu'une Logic App est supprimée, l’identité managée associée l'est également.


user-assigned

Une identité managée en mode user-assigned est une identité Azure pouvant être associée à plusieurs ressources (Logic App, Azure Automation).

Dans cet article, nous allons configurer une identité managée en mode system-assigned.

Dans mon prochain article, nous nous concentrerons sur la partie user-assigned.


Création de la Logic App

1. Allez dans Logic Apps

2. Cliquez sur Add

3. Sélectionnez votre souscription

4. Sélectionnez votre resource group

5. Saisissez un nom

6. Sélectionnez votre Region

7. Sélectionnez Consumption

8. Cliquez sur Review + Create


Configurez l'identité managée

1. Allez dans Logic Apps

2. Allez dans Identity

3. Allez dans l'onglet System assigned

4. Allez dans Status

5. Sélectionnez On

6. Cliquez sur Yes

Nous venons de configurer notre Logic App pour utiliser une identité managée en mode system-assigned.

Dans la partie Enterprise application, une application Azure portera le même nom.

Si nous exécutons des appels d'API Graph avec notre Logic App, celle-ci échouera.

En effet, il faut maintenant ajouter des permissions sur l'application Azure.


Ajout de permissions

Comme mentionné ci-dessus, nous devons ajouter certaines permissions à l'application.

Cela ne peut pas être fait via le portail Azure mais uniquement via PowerShell.

Vous pouvez trouver ci-dessous un script PowerShell qui peut être utilisé pour cela:

Vous devez configurer les variables ci-dessous:

Dans mon cas, je souhaite ajouter la permission permettant de lister les appareils Intune.

Ci-dessous le script à utiliser:

Il faudra procéder comme ci-dessous:

1. Exécutez le script avec un compte global admin

2. Allez dans la partie Enterprise application

3. Allez dans votre appli

3. Allez dans Permissions

4. Les permissions sont affichées


Logic App step by step

Step 1 - Recurrence

1. Allez dans Logic App Designer

2. Cliquez sur recurrence

3. Choisissez ce que vous souhaitez


Step 2 - Graph query et identité managée

Nous allons ici faire une requête Graph en utilisant l'identité managée.

Pour cela, nous ajouterons une étape HTTP.

Dans notre exemple nous souhaitons lister les appareils Intune.

La ressource Graph appropriée est: /deviceManagement/managedDevices


Nous procèderons comme ci-dessous:

1. Cliquez sur New step

2. Sélectionnez HTTP

3. Dans Method, Sélectionnez GET

4. Dans URI, saisissez l'URL Graph

5. Dans notre cas c'est https://graph.microsoft.com/beta/deviceManagement/managedDevices

6. Cliquez sur Add new parameter

7. Cochez Authentication

8. Sélectionnez Managed identity

9. Sélectionnez System assigned managed identity

10. Dans Audience, saisissez https://graph.microsoft.com

11. Sauvegardez l'app

12. Cliquez sur Run trigger > Run