Ingestion d’événements d’audit dans Microsoft Sentinel via une application logique Azure¶
Vue d’ensemble
Ce guide explique comment configurer Afi pour envoyer des événements d’audit à Microsoft Sentinel via le webhook d’une application logique Azure.
Éléments envoyés par Afi
Architecture
Composants
| Composant | Rôle |
|---|---|
| Afi | Envoie des événements d’audit via un webhook |
| Application logique | Traite les webhooks entrants et transmet les données au point de terminaison de collecte de données |
| Point de terminaison de collecte de données (DCE) | Reçoit les données de l’application logique pour leur ingestion |
| Règle de collecte de données (DCR) | Analyse les données entrantes et applique des transformations |
| Espace de travail Log Analytics | Stocke les données ingérées à des fins d’analyse et de requêtes |
| Microsoft Sentinel | Plateforme SIEM pour l’analyse de sécurité et la réponse aux incidents |
Prérequis
- Un abonnement Azure
- Un compte Azure doté des autorisations Owner, User Access Administrator ou Role-Based Access Control Administrator
- Un compte administrateur d’organisation Afi
Partie 1 : Créer un espace de travail Log Analytics et activer Microsoft Sentinel¶
- Dans le portail Azure, recherchez Microsoft Sentinel et ouvrez-le.
- Cliquez sur + Create.
-
Cliquez sur + Create a new workspace.
-
Renseignez les champs suivants :
- Subscription : Votre abonnement
- Resource Group : Cliquez sur Create new et saisissez un nom (par exemple,
resource-group-afi-sentinel) - Name : Saisissez un nom d’espace de travail (par exemple,
logaw-afi-sentinel) - Region : Votre région préférée (par exemple, East US)
Information
Si vous disposez déjà de Microsoft Sentinel avec un espace de travail Log Analytics existant, vous pouvez ignorer la création de nouvelles ressources et utiliser celles qui existent. Ajustez les noms de ressources dans les étapes suivantes en conséquence.
-
Cliquez sur Review + Create → Create. Attendez la fin du déploiement : le message Your deployment is complete doit s’afficher.
-
Revenez à Microsoft Sentinel et cliquez sur + Create.
- Sélectionnez votre espace de travail dans la liste (par exemple,
logaw-afi-sentinel), puis cliquez sur Add.
Partie 2 : Créer un point de terminaison de collecte de données¶
Étape 1 - Créer un point de terminaison de collecte de données
- Dans le portail Azure, recherchez Data collection endpoints et ouvrez-le.
-
Cliquez sur + Create.
-
Renseignez les champs suivants :
- Endpoint Name : Saisissez un nom (par exemple,
dcendpoint-afi-sentinel) - Subscription : Votre abonnement
- Resource Group : Sélectionnez votre groupe de ressources (par exemple,
resource-group-afi-sentinel) - Region : La même région que celle de votre espace de travail Log Analytics (par exemple, East US)
- Endpoint Name : Saisissez un nom (par exemple,
-
Cliquez sur Review + Create → Create. Le nouveau point de terminaison apparaît dans la liste des points de terminaison de collecte de données.
Étape 2 - Obtenir l’URI d’ingestion des journaux du point de terminaison de collecte de données
- Ouvrez votre point de terminaison (par exemple,
dcendpoint-afi-sentinel). - Accédez à Overview.
- Copiez Logs Ingestion :
-
Conservez cette valeur ; vous en aurez besoin pour construire l’URI à l’étape de l’action « HTTP ».
Partie 3 : Créer une règle de collecte de données et une table personnalisée¶
Étape 1 - Créer une règle de collecte de données et définir une table personnalisée
-
Accédez à Log Analytics workspaces et ouvrez votre espace de travail (par exemple,
logaw-afi-sentinel).
-
Dans le menu de gauche, accédez à Settings → Tables.
-
Cliquez sur + Create pour ouvrir l’assistant de création.
Onglet Basic
-
Définissez Table name :
AfiSentinelAuditLogs.
-
Pour Data collection rule, cliquez sur Create a new data collection rule :
- Subscription : Votre abonnement
- Resource group :
resource-group-afi-sentinel - Region : La même région que celle de votre espace de travail Log Analytics (par exemple, East US)
- Name :
dcrule-afi-sentinel - Cliquez sur Done.
- Pour Data collection endpoint, sélectionnez
dcendpoint-afi-sentinel. -
Cliquez sur Next.
Onglet Schema
-
Créez un fichier
afi-sample.jsonavec le contenu suivant :{ "Action": "browse", "Actor": "JohnDoe", "ActorID": "JohnDoe", "ActorIP": "JohnDoe", "ActorName": "JohnDoe", "Details": { "content_preview": true }, "EventID": "JohnDoe", "Location": "JohnDoe", "Subject": "JohnDoe", "SubjectID": "JohnDoe", "SubjectKind": "JohnDoe", "TenantID": "JohnDoe", "TenantName": "JohnDoe", "Time": "2026-04-21T12:40:21Z" } -
Importez le fichier. Azure Monitor Logs détecte automatiquement les colonnes à partir de votre échantillon JSON. Une erreur concernant le champ TimeGenerated s’affiche ; ce comportement est attendu. Cliquez sur Transformation editor pour la corriger.
-
Dans l’éditeur de requêtes, remplacez la requête
sourcepar défaut par : -
Cliquez sur Run, puis sur Apply.
Information
Azure Monitor Logs utilise le champ TimeGenerated pour le filtrage et l’agrégation par période. Incluez-le afin de préserver des horodatages d’événements exacts.
-
Cliquez sur Next → Create.
Étape 2 - Obtenir les valeurs de la règle de collecte de données
Vous aurez besoin de deux valeurs de la règle de collecte de données pour configurer l’action HTTP de l’application logique.
- Dans le portail Azure, recherchez Data collection rules et ouvrez votre règle (par exemple,
dcrule-afi-sentinel). -
Cliquez sur JSON View dans l’angle supérieur droit pour afficher la configuration JSON brute.
-
Recherchez (Ctrl+F) les valeurs suivantes et conservez-les ; vous en aurez besoin pour construire l’URI à l’étape de l’action « HTTP » :
Propriété Exemple immutableId dcr-abc123def456...streams Custom-AfiSentinelAuditLogs_CLRemarque : Le nom du flux est sensible à la casse !
Partie 4 : Créer une application logique¶
Étape 1 - Créer une application logique
-
Dans le portail Azure, cliquez sur Create a resource.
-
Recherchez Logic App et sélectionnez-la.
-
Cliquez sur Create. Pour l’option d’hébergement, sélectionnez Consumption (paiement par exécution, adapté à cette intégration).
-
Renseignez les champs suivants :
- Subscription : Votre abonnement
- Resource Group : Sélectionnez votre groupe de ressources (par exemple,
resource-group-afi-sentinel) - Name : Saisissez un nom (par exemple,
logic-app-afi-sentinel) - Region : La même région que celle de votre espace de travail Log Analytics (par exemple, East US)
-
Cliquez sur Review + Create → Create. Attendez la fin du déploiement : le message Your deployment is complete doit s’afficher.
-
Cliquez sur Go to resource pour ouvrir l’application logique.
Étape 2 - Activer l’identité managée dans l’application logique
- Accédez à Settings → Identity.
- Définissez l’état de System assigned sur On.
-
Cliquez sur Save et confirmez avec Yes.
Étape 3 - Attribuer des autorisations (RBAC) à l’application logique
Attribuez le rôle Monitoring Metrics Publisher à l’application logique sur la règle de collecte de données afin d’autoriser l’ingestion des données via une identité managée, sans stocker de clés d’API.
- Dans le portail Azure, recherchez Data collection rules et ouvrez votre règle (par exemple,
dcrule-afi-sentinel). -
Dans le menu de gauche, accédez à Access control (IAM) → cliquez sur + Add → Add role assignment.
-
Dans l’onglet Role, recherchez et sélectionnez Monitoring Metrics Publisher, puis cliquez sur Next.
-
Dans l’onglet Members, configurez les éléments suivants :
- Assign access to : Managed identity
- Members : Cliquez sur + Select members et choisissez :
- Managed identity : Logic App
- Select : Votre Logic App (par exemple,
logic-app-afi-sentinel)
-
Cliquez deux fois sur Review + assign pour terminer l’attribution.
Partie 5 : Configurer le flux de travail de l’application logique¶
Flux de travail de l’application logique
| Composant | Rôle |
|---|---|
| Trigger (When HTTP request is received) | Reçoit les événements d’audit d’Afi |
| Compose | Encapsule les données d’événement dans un tableau pour l’API d’ingestion des journaux |
| HTTP | Envoie les données au point de terminaison de collecte de données |
- Ouvrez votre application logique (par exemple,
logic-app-afi-sentinel). -
Dans le menu de gauche, accédez à Development Tools → Logic App Designer. L’éditeur visuel de flux de travail s’ouvre.
Étape 1 - Créer le déclencheur When an HTTP request is received
Ce déclencheur crée une URL de webhook qui reçoit les événements d’audit d’Afi.
- Dans l’éditeur de flux de travail, cliquez sur Add a trigger.
- Recherchez Request et sélectionnez When an HTTP request is received.
-
Conservez les paramètres par défaut et cliquez sur Save.
-
Après l’enregistrement, une HTTP URL est générée. Conservez cette URL ; vous en aurez besoin pour configurer le webhook côté Afi.
Étape 2 - Créer l’action Compose
- Sous le déclencheur dans l’éditeur de flux de travail, cliquez sur + → Add an Action.
-
Recherchez Compose et sélectionnez-le.
-
Cliquez sur le champ de saisie → cliquez sur l’icône ⚡️ et choisissez Insert expression.
- Collez la fonction suivante :
-
Cliquez sur Add, puis sur Save.
Information
L’API d’ingestion des journaux attend un tableau. Cette action encapsule le corps JSON d’Afi dans un tableau.
Étape 3 - Créer l’action HTTP
- Sous l’action dans l’éditeur de flux de travail, cliquez sur + → Add an Action.
-
Recherchez HTTP et sélectionnez-le.
-
Configurez les champs suivants :
URI : Construisez-la à l’aide des valeurs que vous avez enregistrées :
https://<DCE-LOGS-INGESTION-URI>/dataCollectionRules/<DCR-IMMUTABLE-ID>/streams/<STREAM-NAME>?api-version=2023-01-01
Où :
<DCE-LOGS-INGESTION-URI>— URI Logs Ingestion de la partie 2, étape 2<DCR-IMMUTABLE-ID>— immutableId de la partie 3, étape 2<STREAM-NAME>— outputStream de la partie 3, étape 2
Exemple :
https://dce-afi-logs-abc1.eastus-1.ingest.monitor.azure.com/dataCollectionRules/dcr-0123456789abcdef/streams/Custom-AfiSentinelAuditLogs_CL?api-version=2023-01-01
Method : POST
En-têtes :
| Clé | Valeur |
|---|---|
| Content-Type | application/json |
Body : Cliquez sur le champ Body, puis sur l’icône ⚡️ et sélectionnez Outputs.
Étape 4 - Configurer l’authentification dans l’action HTTP
- Cliquez sur Advanced parameters → sélectionnez Authentication.
- Définissez Authentication type sur Managed Identity.
- Configurez les éléments suivants :
| Paramètre | Valeur |
|---|---|
| Managed identity | Identité managée attribuée par le système |
| Audience | https://monitor.azure.com |
Partie 6 : Configurer le webhook côté Afi¶
Accédez à l’onglet Configuration → SIEM pour créer un canal avec les paramètres suivants :
- Endpoint : Webhook
-
Webhook : URL du webhook de la partie 5, étape 1
Partie 7 : Tester l’intégration¶
Étape 1 - Générer un événement d’audit de test
Effectuez une action auditée côté Afi :
- Parcourez une sauvegarde
- Démarrez une restauration ou une exportation
- Exécutez une requête de recherche
Étape 2 - Vérifier l’application logique
- Ouvrez votre application logique (par exemple,
logic-app-afi-sentinel) et accédez à Overview → Run history. -
Actualisez l’historique. Vous devez voir une nouvelle exécution déclenchée par votre événement de test.
-
Vérifiez que l’état de l’exécution est Succeeded. En cas d’échec, cliquez sur l’exécution pour afficher les détails de l’erreur.
Partie 8 : Vérifier les événements d’audit de test dans Microsoft Sentinel¶
Enfin, vérifiez que Microsoft Sentinel a reçu les événements d’audit.
- Ouvrez Microsoft Sentinel et sélectionnez votre espace de travail (par exemple,
logaw-afi-sentinel). -
Dans le menu de gauche, accédez à General → Logs pour ouvrir l’éditeur de requêtes.
-
Exécutez la requête suivante pour afficher les événements d’audit récents :
-
Vos événements d’audit de test doivent apparaître dans les résultats.
Information
Les données initiales peuvent prendre jusqu’à 15 minutes avant d’apparaître dans Microsoft Sentinel.
Facultatif : examiner et ajouter des champs d’événement
Après les tests, vous constaterez peut-être que certains champs d’Afi n’apparaissent pas dans Microsoft Sentinel, ou vous souhaiterez supprimer des champs inutiles. L’échantillon initial utilise le minimum de champs nécessaire pour passer la validation ; vous pouvez maintenant ajuster le schéma d’après les données d’événement réelles.
- Ouvrez votre application logique (par exemple,
logic-app-afi-sentinel) et accédez à Overview → Run history. - Une liste des exécutions déclenchées par vos événements de test doit apparaître. Cliquez sur l’une d’elles pour afficher les détails.
- Cliquez sur l’action HTTP pour développer ses détails.
-
Examinez la section Body ; elle affiche tous les champs qu’Afi inclut dans les requêtes webhook.
-
Pour modifier les champs qui apparaissent dans Microsoft Sentinel, mettez à jour à la fois le schéma de la table personnalisée et streamDeclarations dans la règle de collecte de données.
Étape 1 - Mettre à jour le schéma de la table personnalisée
- Accédez à Log Analytics workspaces et ouvrez votre espace de travail (par exemple, logaw-afi-sentinel).
- Dans le menu de gauche, accédez à Settings → Tables.
-
Cliquez sur ... pour
AfiSentinelAuditLogs_CL→ Edit schema.
-
Ajoutez ou supprimez des champs selon vos besoins, puis cliquez sur Save.
Étape 2 - Mettre à jour streamDeclarations dans la règle de collecte de données
- Dans le portail Azure, ouvrez Cloud Shell (icône
>_dans l’angle supérieur droit) et sélectionnez Bash. - Exécutez :
az monitor data-collection rule show \
--name "dcrule-afi-sentinel" \
--resource-group "resource-group-afi-sentinel" \
-o json > dcr-current.json
- Cliquez sur Manage files → Download et saisissez le nom de fichier
dcr-current.json. - Modifiez le fichier localement en ajoutant les mêmes champs à
streamDeclarations: - Cliquez sur Manage files → Upload et sélectionnez le fichier
dcr-current.jsonmis à jour. - Exécutez :
az monitor data-collection rule create \
--name "dcrule-afi-sentinel" \
--resource-group "resource-group-afi-sentinel" \
--rule-file dcr-current.json
- Vérifiez la mise à jour en ouvrant JSON View dans votre règle de collecte de données.
Information
Le schéma de la table personnalisée et la règle de collecte de données sont distincts et ne se synchronisent pas automatiquement.
Étape 3 - Vérifier les événements d’audit de test dans Microsoft Sentinel
Vérifiez que les modifications apportées aux champs s’affichent correctement dans Microsoft Sentinel.


