Collecter les journaux d'activité des utilisateurs Microsoft Dynamics 365
Ce document explique comment collecter les journaux d'activité des utilisateurs Microsoft Dynamics 365 en configurant un flux Google SecOps à l'aide de Microsoft Azure Blob Storage V2.
Microsoft Dynamics 365 est une plate-forme d'applications métier basée sur le cloud qui combine des fonctionnalités de CRM et d'ERP. Les journaux d'activité des utilisateurs enregistrent les actions et les événements effectués par les utilisateurs dans les applications Dynamics 365, y compris les opérations sur les entités, l'accès aux données et les activités administratives. Dynamics 365 est basé sur Microsoft Dataverse, qui fournit une journalisation d'audit complète via le journal d'audit unifié Microsoft Purview.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Un accès privilégié au portail Microsoft Azure avec les autorisations suivantes :
- Créer des comptes de stockage
- Configurer Azure Synapse Link pour Dataverse
- Gérer les clés d'accès
- Un abonnement Microsoft 365 incluant Dynamics 365
- Le rôle de sécurité Administrateur système dans l'environnement Dynamics 365
Un accès Administrateur général ou Administrateur Power Platform au centre d'administration Power Platform
Activer l'audit Dataverse
Avant d'exporter les journaux d'activité des utilisateurs Dynamics 365, vous devez activer l'audit dans le centre d'administration Power Platform.
- Connectez-vous au centre d'administration Power Platform.
- Dans le volet de navigation, sélectionnez Environnements.
- Sélectionnez l'environnement contenant votre déploiement Dynamics 365.
- Dans la barre de commandes, sélectionnez Paramètres.
- Développez Audit et journaux , puis sélectionnez Paramètres d'audit.
- Sous Audit, activez les options suivantes :
- Démarrer l'audit : active l'audit pour l'environnement.
- Journaliser l'accès : suit les connexions des utilisateurs.
- Lire les journaux : capture la plupart des activités et événements des utilisateurs.
- Définissez la Règle de conservation pour les journaux d'audit en fonction de vos besoins.
- Sélectionnez Enregistrer pour appliquer les modifications.
Activer l'audit au niveau de la table
- Connectez-vous à Power Apps et sélectionnez l'environnement.
- Dans la barre de commandes, sélectionnez Paramètres > Paramètres avancés.
- Accédez à Paramètres > Personnalisations > Personnaliser le système.
- Dans le volet de navigation, sous Composants, développez Entités, puis sélectionnez l'entité à auditer (par exemple, Compte).
- Faites défiler la page jusqu'à Services de données , puis cochez la case Audit.
- Sous Audit, activez les options suivantes :
- Audit d'un seul enregistrement. Enregistrer un enregistrement lorsqu'il est ouvert.
- Audit de plusieurs enregistrements. Enregistrer tous les enregistrements affichés sur une page ouverte.
- Sélectionnez Enregistrer , puis Publier.
- Répétez les étapes 4 à 7 pour chaque table que vous souhaitez auditer.
Pour en savoir plus, consultez la section Journalisation des activités des applications pilotées par modèle et Microsoft Dataverse.
Configurer un compte Azure Storage
Créer un compte de stockage
- Dans le portail Azure, recherchez Comptes de stockage.
- Cliquez sur + Créer.
Fournissez les informations de configuration suivantes :
Paramètre Valeur Abonnement Sélectionnez votre abonnement Azure Groupe de ressources Sélectionnez un groupe existant ou créez-en un Nom du compte de stockage Saisissez un nom unique (par exemple, secopsd365logs)Région Sélectionnez la même région que votre environnement Dataverse Performances Standard (recommandé) Redondance GRS (stockage géo-redondant) ou LRS (stockage local redondant) Sélectionnez l'onglet Avancé , puis activez l'option Espace de noms hiérarchique.
Cliquez sur Examiner et créer.
Consultez la présentation du compte, puis cliquez sur Créer.
Attendez la fin du déploiement.
Obtenir les identifiants du compte de stockage
- Accédez au compte de stockage que vous venez de créer.
- Dans le volet de navigation de gauche, sélectionnez Clés d'accès sous Sécurité + mise en réseau.
- Cliquez sur Afficher les clés.
- Copiez et enregistrez les éléments suivants pour une utilisation ultérieure :
- Nom du compte de stockage :
secopsd365logs - Clé 1 ou Clé 2 : clé d'accès partagée (chaîne aléatoire de 512 bits encodée en base64)
- Nom du compte de stockage :
Obtenir le point de terminaison du service Blob
- Dans le même compte de stockage, sélectionnez Points de terminaison dans le volet de navigation de gauche.
- Copiez et enregistrez l'URL du point de terminaison du service Blob.
- Exemple :
https://secopsd365logs.blob.core.windows.net/
- Exemple :
Accorder des autorisations au compte de stockage
Accordez des autorisations à l'administrateur Power Platform qui configurera Azure Synapse Link :
- Dans le compte de stockage, sélectionnez Contrôle des accès (IAM) dans le volet de gauche.
- Cliquez sur + Ajouter > Ajouter une attribution de rôle.
- Attribuez les rôles suivants à l'administrateur Power Platform :
- Contributeur des données blob de stockage
- Propriétaire des données blob de stockage
Configurer Azure Synapse Link pour Dataverse
Azure Synapse Link pour Dataverse exporte la table d'audit Dataverse vers Azure Data Lake Storage Gen2, qui est compatible avec les flux Azure Blob Storage V2.
Créer un espace de travail Azure Synapse
- Dans le portail Azure, recherchez Synapse Analytics.
- Cliquez sur + Créer.
- Fournissez les informations de configuration suivantes :
- Abonnement : sélectionnez l'abonnement dans lequel vous avez créé le compte de stockage.
- Groupe de ressources : sélectionnez le même groupe de ressources que le compte de stockage.
- Nom de l'espace de travail : saisissez un nom unique (par exemple,
synapse-d365-secops). - Région : sélectionnez la même région que votre environnement Dataverse.
- Nom du compte de stockage : sélectionnez le compte de stockage que vous avez créé précédemment (
secopsd365logs). - Nom du système de fichiers : cliquez sur Créer et saisissez un nom (par exemple,
d365-audit).
- Cliquez sur Examiner et créer , puis sur Créer.
- Attendez la fin du déploiement.
Créer un pool Apache Spark
- Dans le portail Azure, accédez à l'espace de travail Synapse que vous avez créé.
- Cliquez sur + Nouveau pool Apache Spark.
- Fournissez les informations de configuration suivantes :
- Nom du pool Apache Spark : saisissez un nom (par exemple,
sparkpoold365). - Nombre de nœuds : saisissez
5.
- Nom du pool Apache Spark : saisissez un nom (par exemple,
- Sélectionnez l'onglet Paramètres supplémentaires , puis saisissez
5pour le Nombre de minutes d'inactivité. - Cliquez sur Examiner et créer , puis sur Créer.
Associer la table d'audit Dataverse à l'espace de travail Synapse
- Connectez-vous à Power Apps et sélectionnez l'environnement contenant votre déploiement Dynamics 365.
- Dans le volet de navigation de gauche, sélectionnez Azure Synapse Link. Si l'élément n'est pas visible, sélectionnez Plus > Tout découvrir , puis recherchez Azure Synapse Link.
- Sélectionnez Nouvelle association.
- Sur la page Nouvelle association :
- Sélectionnez l'option Se connecter à votre espace de travail Azure Synapse Analytics.
- Abonnement : sélectionnez l'abonnement Azure.
- Groupe de ressources : sélectionnez le groupe de ressources contenant l'espace de travail Synapse.
- Compte de stockage : sélectionnez le compte de stockage (
secopsd365logs). - Sélectionnez l'option Utiliser le pool Spark pour la tâche de conversion des données Delta Lake.
- Pool Spark : sélectionnez le pool Spark que vous avez créé (
sparkpoold365). - Compte de stockage : sélectionnez le même compte de stockage.
- Cliquez sur Suivant.
- Développez l'onglet Avancé , puis saisissez
480minutes dans le champ Intervalle de temps. - Dans la liste des tables, sélectionnez les tables Audit et Utilisateur.
Cliquez sur Enregistrer.
Pour en savoir plus, consultez la section Accéder aux données d'audit avec Azure Synapse Link et Power BI.
Configurer un flux dans Google SecOps pour ingérer les journaux d'activité des utilisateurs Microsoft Dynamics 365
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Ajouter un flux.
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
Microsoft Dynamics 365 User Activity). - Sélectionnez Microsoft Azure Blob Storage V2 comme Type de source.
- Sélectionnez Microsoft Dynamics 365 comme Type de journal.
- Cliquez sur Suivant.
Spécifiez les valeurs des paramètres d'entrée suivants :
- URI Azure : saisissez l'URL du point de terminaison du service Blob avec le chemin d'accès au conteneur :
https://secopsd365logs.blob.core.windows.net/d365-audit/Remplacez les éléments suivants :
secopsd365logs: nom de votre compte de stockage Azure.d365-audit: nom du système de fichiers (conteneur) configuré dans l'espace de travail Synapse.
- Option de suppression de la source : sélectionnez l'option de suppression de votre choix :
- Jamais : ne supprime jamais aucun fichier après les transferts.
- Supprimer les fichiers transférés : supprime les fichiers une fois le transfert réussi.
- Supprimer les fichiers transférés et les répertoires vides : supprime les fichiers et les répertoires vides une fois le transfert réussi.
- Âge maximal des fichiers : inclut les fichiers modifiés au cours des derniers jours (180 jours par défaut)
- Clé partagée : saisissez la valeur de la clé partagée (clé d’accès) que vous avez récupérée précédemment à partir du compte de stockage.
- Espace de noms de l'élément : l'espace de noms de l'élément
- Libellés d'ingestion : libellé à appliquer aux événements de ce flux
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
Configurer le pare-feu Azure Storage (si activé)
Si votre compte Azure Storage utilise un pare-feu, vous devez ajouter des plages d'adresses IP Google SecOps.
- Dans le portail Azure, accédez à votre compte de stockage.
- Sélectionnez Mise en réseau sous Sécurité + mise en réseau.
- Sous Pare-feu et réseaux virtuels, sélectionnez Activé à partir des réseaux virtuels et des adresses IP sélectionnés.
- Dans la section Pare-feu, sous Plage d'adresses, cliquez sur + Ajouter une plage d'adresses IP.
Ajoutez chaque plage d'adresses IP Google SecOps au format CIDR.
Pour obtenir les plages d'adresses IP actuelles :
- Consultez la documentation sur la liste d'autorisation d'adresses IP.
- Vous pouvez également les récupérer par programmation à l'aide de l'API Feed Management.
Cliquez sur Enregistrer.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| BuildNumber | about.labels | about_BuildNumber fusionné avec la clé "BuildNumber" et la valeur de BuildNumber si elle n'est pas vide |
| RECORD_IDENTIFIER | additional.fields | Fusionné avec les libellés créés à partir de chaque champ respectif s'il n'est pas vide |
| LastProcessedChange_DateTime | additional.fields | |
| DataLakeModified_DateTime | additional.fields | |
| Application_Object_Server_node | additional.fields | |
| ClientType | additional.fields | |
| LogoutDateTime | additional.fields | |
| LOGOUTDATETIMETZID | additional.fields | |
| TerminatedOk | additional.fields | |
| Type | additional.fields | |
| Alive | additional.fields | |
| PARTITION | additional.fields | |
| has_user | metadata.event_type | Défini sur "GENERIC_EVENT", puis sur "USER_UNCATEGORIZED" si has_user est défini sur "true", sinon sur "STATUS_UPDATE" si has_principal est défini sur "true" |
| has_principal | metadata.event_type | |
| RECVERSION | metadata.product_version | Valeur copiée directement si elle n'est pas vide |
| SessionId | network.session_id | Valeur copiée directement si elle n'est pas vide |
| LOG_SEQUENCE_NUMBER | security_result.detection_fields | LOG_SEQUENCE_NUMBER_label fusionné avec la clé "LOG_SEQUENCE_NUMBER" et la valeur de LOG_SEQUENCE_NUMBER si elle n'est pas vide |
| UserId | target.user.userid | Valeur copiée directement si elle n'est pas vide |
| timestamp | timestamp | Analysé à l'aide de la correspondance de date au format ISO8601 ou RFC 3339 si elle n'est pas vide |
| metadata.product_name | metadata.product_name | Défini sur "MICROSOFT_DYNAMICS_365" |
| metadata.vendor_name | metadata.vendor_name | Défini sur "MICROSOFT_DYNAMICS_365" |
Journal des modifications
Consulter le journal des modifications de ce parser
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.