La gouvernance des agents IA : un défi architectural majeur
Le déploiement à grande échelle d'agents IA et de skills dans Microsoft Fabric soulève une question fondamentale pour les ingénieurs cloud et les architectes data : comment un agent sait-il quelle donnée est pertinente pour répondre à une requête donnée ? Sans mécanisme de guidage explicite, un agent opère en aveugle — il agrège des sources hétérogènes, mélange des contextes métier incompatibles et produit des réponses imprécises, voire problématiques sur le plan de la conformité.
Ce défi n'est pas uniquement technique. Il touche à la gouvernance des données, à la séparation des contextes d'usage et à la capacité de l'organisation à projeter sa propre intelligence classificatoire dans ses systèmes IA. La bonne nouvelle : vous disposez probablement déjà de l'infrastructure nécessaire pour y répondre.
Les agents IA dans Fabric opèrent via des AI Skills, des composants configurables qui définissent comment l'agent interagit avec les sources de données, quels raisonnements il applique et quelles contraintes il respecte. C'est à ce niveau que l'intégration des sensitivity labels prend tout son sens.
Les étiquettes de confidentialité : bien plus qu'un mécanisme de protection
Les sensitivity labels (étiquettes de confidentialité) sont définies centralement dans Microsoft Purview et peuvent être appliquées à l'ensemble des artefacts Fabric : rapports Power BI, Semantic Models, Lakehouses, Warehouses et notebooks. Leur rôle traditionnel est de classifier la donnée et d'enforcer des politiques de protection — chiffrement, restrictions d'export, watermarking, etc.
Mais leur architecture expose également une dimension sous-exploitée : ces labels sont disponibles via des API publiques, ce qui permet à des workflows automatisés et à des agents IA d'y accéder programmatiquement. Ce point est central pour comprendre le pattern décrit dans cet article.
Architecture des sensitivity labels dans Fabric
Voici comment s'articule le système de classification dans l'écosystème Microsoft :
- Microsoft Purview Information Protection : point central de définition des labels (General, Confidential, Highly Confidential, ou labels personnalisés)
- Fabric REST API : expose les métadonnées de classification sur chaque artefact
- Power BI / Fabric SDK : permet la lecture et l'écriture programmatique des labels
- AI Skills : couche d'orchestration où les règles basées sur les labels sont appliquées

Pour récupérer les métadonnées de sensitivity label d'un artefact Fabric via l'API REST, utilisez l'endpoint /v1.0/myorg/datasets/{datasetId}/sensitivityLabel pour les Semantic Models, ou l'API admin /v1.0/myorg/admin/datasets avec le paramètre $expand=sensitivityLabel pour une vue globale.
Cas d'usage concret : l'AI Skill d'analyse de rapports
Prenons un scénario représentatif d'un environnement entreprise. Une organisation déploie une AI Skill dans Fabric dont la mission est d'analyser des rapports, d'en extraire des insights et de répondre à des questions métier. Le corpus de données comprend :
- Des rapports publics (métriques de performance commerciale, tableaux de bord opérationnels) → label
General - Des rapports confidentiels (prévisions financières, négociations clients) → label
Confidential - Des rapports hautement sensibles (stratégie exécutive, opérations M&A) → label
Highly Confidential
Sans logique de gouvernance intégrée, la skill analyse tous les rapports de manière indifférenciée. Un employé posant la question "Quelles sont nos projections Q3 ?" pourrait recevoir une réponse amalgamant données publiques et données confidentielles — ce qui constitue un risque de conformité réel.
Définition des règles de traitement par label
L'architecture cible consiste à intégrer des règles explicites dans la définition de la skill, basées sur les sensitivity labels. Voici une représentation structurée de cette logique :
1{2 "skillName": "ReportAnalysisSkill",3 "labelPolicies": [4 {5 "label": "General",6 "actions": [7 "full_analysis",8 "include_charts",9 "include_summaries",10 "include_datapoints"11 ],12 "restrictions": []13 },14 {15 "label": "Confidential",16 "actions": [17 "summary_only",18 "extract_key_findings"19 ],20 "restrictions": [21 "authorized_users_only",22 "no_detail_exposure",23 "log_access_audit"24 ]25 },26 {27 "label": "Highly Confidential",28 "actions": [29 "high_level_briefing_only"30 ],31 "restrictions": [32 "executives_explicit_clearance",33 "no_detailed_data",34 "track_all_access",35 "track_all_queries"36 ]37 }38 ]39}Les labels General, Confidential et Highly Confidential utilisés dans cet article sont des exemples de référence. Chaque organisation définit sa propre taxonomie de labels dans Microsoft Purview. Votre implémentation doit impérativement s'aligner sur la nomenclature interne de votre organisation.
Comportement de la skill à l'exécution
Voici comment la skill se comporte de manière contextuelle selon la nature de la requête et les labels des artefacts interrogés :
- Requête générale ("Quelles sont nos tendances de ventes ?") → La skill lit uniquement les rapports labelisés
Generalet retourne une analyse complète avec visualisations et données chiffrées - Requête sur les prévisions budgétaires → La skill vérifie les permissions de l'utilisateur, accède aux rapports
Confidentialet retourne uniquement un résumé synthétique si l'utilisateur est autorisé - Requête sur la stratégie exécutive → La skill décline la réponse ou l'escalade vers les profils disposant d'une autorisation explicite sur les contenus
Highly Confidential
L'employé conserve l'accès à l'ensemble des rapports auxquels il a droit. Ce qui change, c'est la sélection des inputs que l'agent utilise pour construire sa réponse.
Implémentation technique : intégration via l'API Fabric
La récupération programmatique des sensitivity labels pour alimenter la logique d'une AI Skill peut s'effectuer via PowerShell ou via des appels REST directs. Voici un exemple de script PowerShell exploitant le module MicrosoftPowerBIMgmt :
1# Installation du module si nécessaire2# Install-Module -Name MicrosoftPowerBIMgmt -Scope CurrentUser3 4# Authentification5Connect-PowerBIServiceAccount6 7# Récupération de tous les datasets avec leurs sensitivity labels (vue admin)8$datasets = Invoke-PowerBIRestMethod `9 -Url "admin/datasets?\$expand=sensitivityLabel" `10 -Method GET | ConvertFrom-Json11 12# Filtrage par label pour identifier les artefacts Confidential13$confidentialDatasets = $datasets.value | Where-Object {14 $_.sensitivityLabel.labelId -ne $null -and15 $_.sensitivityLabel.labelName -eq "Confidential"16}17 18# Export du résultat pour audit ou ingestion par une skill19$confidentialDatasets | Select-Object id, name, sensitivityLabel | 20 ConvertTo-Json -Depth 3 | 21 Out-File -FilePath ".\confidential_datasets_inventory.json" -Encoding UTF822 23Write-Host "Inventaire généré : $($confidentialDatasets.Count) datasets Confidential identifiés"Pour une intégration plus granulaire dans une skill Fabric avec appel REST direct :
1# Récupération du token d'accès via Azure CLI2$token = (az account get-access-token --resource https://analysis.windows.net/powerbi/api | ConvertFrom-Json).accessToken3 4$headers = @{5 "Authorization" = "Bearer $token"6 "Content-Type" = "application/json"7}8 9# Appel API pour un rapport spécifique10$reportId = "<your-report-id>"11$response = Invoke-RestMethod `12 -Uri "https://api.powerbi.com/v1.0/myorg/reports/$reportId/sensitivityLabel" `13 -Headers $headers `14 -Method GET15 16$labelName = $response.sensitivityLabel.labelName17Write-Host "Label du rapport : $labelName"18 19# Logique de routage basée sur le label20switch ($labelName) {21 "General" { Write-Host "Analyse complète autorisée" }22 "Confidential" { Write-Host "Résumé uniquement - vérification des permissions requise" }23 "Highly Confidential" { Write-Host "Accès restreint - escalade exécutive requise" }24 default { Write-Host "Label non reconnu - traitement par défaut appliqué" }25}Les appels aux API admin de Power BI nécessitent des droits d'administrateur Fabric ou Power BI. Pour les environnements de production, utilisez impérativement un Service Principal avec les permissions minimales requises, et ne stockez jamais de tokens en clair dans vos scripts. Privilégiez Azure Key Vault pour la gestion des secrets.
Pourquoi les sensitivity labels améliorent la précision de l'IA
Une question légitime se pose : si l'agent a déjà accès à toutes les données autorisées, pourquoi se préoccuper de ce qu'il utilise pour construire ses réponses ?
La réponse est à la fois technique et organisationnelle. Les modèles de langage de grande taille (LLMs) sont sensibles au contexte injecté dans leur fenêtre d'attention. Plus le contexte est large et hétérogène, plus le risque de confusion sémantique augmente — un phénomène connu sous le nom de context pollution. En sélectionnant précisément les inputs selon leur label de confidentialité, vous réduisez le bruit et améliorez la précision topique des réponses.
D'un point de vue organisationnel, les classifications de données reflètent la connaissance métier accumulée : l'organisation sait quelles données sont généralement utiles, lesquelles sont sensibles et lesquelles appartiennent à des contextes précis. Transmettre cette intelligence classificatoire à vos agents IA, c'est leur donner accès à des années d'expérience organisationnelle codifiée.
Guide de déploiement : mise en œuvre pas à pas
Avant toute implémentation, réalisez un inventaire complet de l'état de labelisation de vos artefacts Fabric. Utilisez les rapports d'activité Microsoft Purview ou l'API admin Power BI pour identifier les artefacts non labelisés. La cohérence du labelisation est le prérequis absolu — sans signal fiable, la logique de guidage est inopérante.
1# Inventaire des artefacts sans sensitivity label2Connect-PowerBIServiceAccount3 4$allDatasets = Invoke-PowerBIRestMethod `5 -Url "admin/datasets?\$expand=sensitivityLabel" `6 -Method GET | ConvertFrom-Json7 8$unlabeledDatasets = $allDatasets.value | Where-Object {9 $null -eq $_.sensitivityLabel -or $null -eq $_.sensitivityLabel.labelId10}11 12Write-Host "Artefacts non labelisés : $($unlabeledDatasets.Count)"13$unlabeledDatasets | Select-Object id, name | ConvertTo-Json | Out-File ".\unlabeled_inventory.json"En collaboration avec les équipes de gouvernance des données et les propriétaires métier, définissez formellement comment chaque label doit influencer le comportement de vos AI Skills. Documentez cette matrice et versionnez-la — elle constituera la référence pour toutes vos implémentations de skills.
La matrice doit couvrir : le niveau d'analyse autorisé, les restrictions de restitution, les obligations d'audit et les conditions d'escalade.
Implémentez les règles de traitement directement dans la définition de votre AI Skill. Si vous utilisez le framework Semantic Kernel (recommandé pour les intégrations Fabric avancées), vous pouvez créer un plugin dédié à l'évaluation des labels :
1[KernelFunction("evaluate_sensitivity_label")]2[Description("Évalue le label de confidentialité d'un artefact et retourne le niveau d'analyse autorisé")]3public async Task<string> EvaluateSensitivityLabelAsync(4 [Description("ID de l'artefact Fabric")] string artifactId,5 [Description("Type d'artefact : report, dataset, lakehouse")] string artifactType)6{7 var label = await _fabricApiClient.GetSensitivityLabelAsync(artifactId, artifactType);8 9 return label?.LabelName switch10 {11 "General" => "full_analysis",12 "Confidential" => "summary_only",13 "Highly Confidential" => "restricted_executive_only",14 _ => "default_restricted"15 };16}Déployez la logique sur un périmètre restreint — par exemple, une skill d'analyse de rapports pour une business unit spécifique. Mesurez la qualité des réponses avant/après l'intégration des labels : pertinence contextuelle, absence de data leakage inter-niveaux, satisfaction utilisateur. Itérez sur la matrice de traitement avant d'étendre à d'autres skills.
Configurez les logs d'accès dans Microsoft Purview pour tracer toutes les interactions de vos agents IA avec des données Confidential et Highly Confidential. Mettez en place des alertes sur les patterns d'accès anormaux. Planifiez des revues trimestrielles de la matrice de traitement pour l'aligner sur l'évolution de votre taxonomie.
Ressources de référence
Pour approfondir l'implémentation de ce pattern, consultez les ressources officielles Microsoft suivantes :
- Protection des informations dans Microsoft Fabric — Documentation officielle sur l'architecture de protection des données dans Fabric
- Étiquettes de confidentialité dans Fabric — Guide complet sur la configuration et l'application des sensitivity labels
- API REST Power BI — SensitivityLabels — Référence API pour l'accès programmatique aux labels
- Microsoft Purview Information Protection — Portail de définition et gestion centralisée des labels
- Semantic Kernel — Plugin development — Framework recommandé pour l'intégration avancée d'agents IA avec Fabric
Ce pattern de guidage contextuel par sensitivity labels est complémentaire des mécanismes de Row-Level Security (RLS) et Object-Level Security (OLS) dans Fabric. Une architecture de gouvernance IA robuste combine ces trois niveaux : RLS/OLS pour le contrôle d'accès aux données, sensitivity labels pour le guidage contextuel de l'agent, et Microsoft Purview pour l'audit et la conformité centralisés.



