Suite à la partie 1, ou je vous explique les objectifs, les enjeux et les ressources nécessaires pour construire un reporting Intune avancée avec Graph API & Power BI : Lien vers la partie 1

Dans cette partie 2, nous verrons

  • La configuration de la managed identity
  • La création des runbooks Powershell dans Azure Automation
  • Le stockage des données dans l’Azure Blob Storage

Avant de continuer, je précise que mes ressources Azure (Blob et Automation Account) sont déja présentes, ces étapes ne nécessite pas de particularités et le provisionning se fait souvent avec vos process en vigueur.

Partie 1 : Configuration de l’identité managée

L’utilisation de la Managed Identity supprime la gestion des identifiants sensibles (app registration / secret) , ce qui renforce la sécurité et simplifie l’administration.

1. Activer la Managed Identity sur le compte Automation

  1. Va dans ton compte Azure Automation.
  2. Dans le menu de gauche, clique sur Account Settings puis Identity
  3. Sous System assigned, active la Managed Identity → On.
  4. Sauvegarde. Azure créera automatiquement une identité liée à ce compte.

2. Donner les rôles nécessaires à la MI

Cette identité doit avoir accès aux ressources Azure et à Microsoft Graph.

a. Pour Azure Blob Storage et Key Vault

  1. Toujours dans la partie du Managed identity
  2. Sous la partie « Permissions », clique sur « Azure role assignments »
  1. Clique ensuite sur Add Role Assignement
  2. Choisit le scope, ici Storage puis la ressource, votre blob storage
  3. Choisit le rôle Storage Blob Data Contributor et Sauvegarde.
  4. Tu peux réitérer la même opération pour ton Key Vault en choisissant votre Key vault en ressource et le rôle Key Vault Secrets User.

b. Pour Microsoft Graph API (Intune)

La Managed Identity doit pouvoir faire des appels Graph API.
⚠️ Contrairement aux rôles RBAC Azure, il faut ici ajouter des permissions API :

  1. Dans Entra ID → Enterprise Applications.
  2. Pense à retirer les filtres et recherche ton compte Automation (c’est une Enterprise App une fois la managed identity activée),
  3. Ouvre-la, puis va dans Security / Permissions
  4. Clique sur Ajouter une autorisationMicrosoft GraphApplication permissions.
  5. Ajoute par exemple : (Les permissions seront à adaptées selon vos besoins!)
    • DeviceManagementManagedDevices.Read.All
    • DeviceManagementApps.Read.All
    • DeviceManagementConfiguration.Read.All
  6. Clique sur Grant admin consent.

3. Utiliser cette MI dans un runbook

Une fois configurée, tu peux utiliser directement la Managed Identity dans ton runbook Powershell comme ceci :

👉 Avec ça, ton Runbook s’authentifie auprès des ressources Azure (blob / graph API) et s’exécute sans aucun mot de passe ni secret : tout passe par la Managed Identity.

Partie 2 : La création des runbooks PowerShell dans Azure Automation

Après avoir configuré la Managed Identity de notre compte Automation, nous allons maintenant créer un runbook PowerShell. Ce runbook sera chargé de se connecter à Microsoft Graph, d’extraire les données Intune, puis de les exporter vers un conteneur Azure Blob Storage afin de les rendre exploitables dans Power BI.

1. Création d’un runbook dans Azure Automation

Avant de créer un runbook, pensez à importer les modules Powershell notamment celui Microsoft.Graph dans votre compte Azure Automation

  1. Ouvre ton compte Azure Automation dans le portail Azure.
  2. Dans le menu de gauche, sélectionne Runbooks, puis clique sur Create a runbook.
  3. Renseignez les champs :
    • Nom : par exemple Intune-ReportingApp-Runbook
    • Type de runbook : PowerShell
    • Version : PowerShell 7.2 (recommandé)
  4. Clique sur Créer pour valider.

À ce stade, un runbook vide est disponible. Il ne reste plus qu’à insérer notre script. Tu as deux options pour y ajouter ton script :

  1. Édition manuelle dans le portail
    • Clique sur ton runbook.
    • Va dans Edit.
    • Colle directement ton code PowerShell dans l’éditeur intégré.
    • Clique sur Save.
  2. Import d’un fichier existant (.ps1)
    • Clique sur Import runbook dans la section Runbooks.
    • Sélectionne ton fichier .ps1 préparé en local.
    • Renseigne le nom et le type de runbook (PowerShell) et lance l’import.

⚠️ Tant que ton runbook n’est pas publié, il ne pourra pas être planifié.
⚠️ Tu peux tester ton runbook avant publication via l’option Test Pane puis Start.

⚠️ Tu cherches des exemples de runbook, rendez vous sur mon github LeblogModernWorkplace/Intune-AutomationScripts: Intune Automation Scripts

2. Planification de l’exécution du runbook

L’intérêt d’Azure Automation est de pouvoir déclencher le runbook automatiquement.
Pour cela, il faut que votre runbook soit publier. (Bouton publish dans l’éditeur) puis :

  1. Allez dans l’onglet Ressources \ Schedules de votre runbook.
  2. Créez une nouvelle planification (par exemple tous les jours à 02h00).
  3. Associez-la à votre runbook.

Votre extract Graph API Intune sera ainsi généré et mis à jour automatiquement à intervalles réguliers selon votre convenance.

Bonnes pratiques

  • Logs : utilisez Write-Output et Write-Error pour tracer les étapes et faciliter le débogage.
  • Versionning : stockez vos scripts PowerShell dans un dépôt GitHub ou Azure DevOps, puis synchronisez-les avec Azure Automation pour garder un historique.
  • Principe du moindre privilège : assurez-vous que la Managed Identity dispose uniquement des rôles strictement nécessaires (Blob Contributor, accès Graph).

Partie 3 – Gestion du stockage des CSV exportés dans Azure Blob Storage

Une fois les données Intune collectées via notre runbook, elles doivent être stockées de manière sécurisée et accessible pour Power BI. Azure Blob Storage est la solution idéale : économique, scalable et parfaitement intégrée avec Azure Automation et Power BI.


1. Création du conteneur Blob

  1. Ouvre ton compte de stockage dans le portail Azure.
  2. Dans le menu de gauche, clique sur Conteneurs.
  3. Clique sur + Conteneur et donnez-lui un nom (exemple : intune-reports).
  4. Choisis le niveau d’accès (recommandé : Privé).
  5. Valide la création.

👉 Ce conteneur sera le réceptacle de tous les fichiers CSV générés par votre runbook.


2. Attribution des permissions à la Managed Identity

Pour que le runbook puisse écrire dans le conteneur, la Managed Identity du compte Azure Automation doit disposer des droits nécessaires :

  1. Dans ton compte de stockage → Contrôle d’accès (IAM).
  2. Clique sur Ajouter une attribution de rôle.
  3. Sélectionne le rôle Storage Blob Data Contributor.
  4. Attribue-le à l’identité managée de votre compte Automation.

Ainsi, votre runbook pourra déposer les fichiers directement dans le Blob Storage sans mot de passe ni clé de stockage.


3. Exemple PowerShell : Upload d’un fichier CSV

L’extrait de script ci-dessous illustre l’upload d’un fichier CSV vers un conteneur Blob :


4. Organisation et gestion des fichiers CSV

Pour éviter la confusion et faciliter l’exploitation dans Power BI, il est recommandé d’organiser vos exports :

  • Nommage horodaté : inclure la date dans le nom du fichier. $date = Get-Date -Format "yyyyMMdd" $blobName = "devices_$date.csv"
  • Nettoyage automatique : mettre en place un script ou une règle de cycle de vie dans Azure Storage pour supprimer les fichiers trop anciens (ex. plus de 30 jours).
  • Séparation par répertoires virtuels : utiliser des préfixes dans les noms de blob (intune/devices/, intune/apps/) pour classer les données.

Bonnes pratiques

  • Toujours privilégier les identités managées plutôt que les clés de stockage.
  • Limiter les rôles au principe du moindre privilège (ex. uniquement “Data Contributor” et non “Owner”).
  • Activer l’option Soft delete pour éviter les pertes accidentelles de fichiers.
  • Surveiller les accès avec Azure Monitor et configurer des alertes sur l’activité du stockage.

Conclusion

Avec cette configuration, les fichiers CSV générés par vos runbooks sont stockés de façon centralisée, sécurisée et organisée. Cela permet à Power BI de consommer les données en toute simplicité, et prépare le terrain pour la partie suivante : la visualisation des rapports Intune dans Power BI.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *