Dans cet article, nous verrons comment sécuriser vos appels d'API Graph dans Logic App en utilisant une identité managée (user-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


Création de l'identité managée

Dans l'article précédent, nous avons vu comment configurer une identité managée en mode system-assigned pour une Logic App.

Avec la partie user-assigned, il faut au préalable créer cette identité avant de pouvoir la configurer.


Nous procèderons comme ci-dessous:

1. Allez dans le portail Azure

2. Allez dans Managed identity


3. Cliquez sur Create

4. Choisissez vous souscription, resource groupe et région

5. Saisissez un nom

6. Cliquez sur Review+Create


Configuration de l'identité managée

1. Allez dans votre Logic Apps

2. Allez dans Identity

3. Allez dans l'onglet User assigned

4. Cliquez sur Add


5. Sélectionnez l'identité managée créée précédemment 

6. Cliquez sur Add


Nous avons jusque la créer notre Logic App, puis configurer cette dernière pour utiliser une identité managée.

Dans le but d'effectuer des actions comme sur Intune, il faut ensuite lui attribuer des permissions.


Ajout de permissions

Dans l'exemple suivant, nous souhaitons lister les devices Intune. 

Pour cela la permission requise est: DeviceManagementManagedDevices.Read.All

Ci-dessous le script à utiliser:

Nous procèderons ensuite comme ci-dessous:

1. Exécuter le script avec des droits global admin

2. Allez dans enterprise application

3. Sélectionnez l'app correspondant à votre nom de Logic App

3. Allez dans Permissions

4. Vous y trouverez les permissions ajouté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 Advanced parameters


7. Cochez Authentication


8. Sélectionnez Managed identity

9. Sélectionnez user-assigned managed identity


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

11. Sauvegardez l'app

12. Cliquez sur Run