Raccogli i log delle attività utente di Microsoft Dynamics 365
Questo documento descrive come raccogliere i log dell'attività utente di Microsoft Dynamics 365 configurando un feed Google SecOps utilizzando Microsoft Azure Blob Storage V2.
Microsoft Dynamics 365 è una piattaforma di applicazioni aziendali basata su cloud che combina funzionalità CRM ed ERP. I log delle attività utente acquisiscono le azioni e gli eventi eseguiti dagli utenti all'interno delle applicazioni Dynamics 365, tra cui operazioni sulle entità, accesso ai dati e attività amministrative. Dynamics 365 è basato su Microsoft Dataverse, che fornisce una registrazione completa degli audit tramite il log di controllo unificato di Microsoft Purview.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso con privilegi al portale Microsoft Azure con autorizzazioni per:
- Crea account di archiviazione
- Configurare Azure Synapse Link per Dataverse
- Gestisci le chiavi di accesso
- Un abbonamento a Microsoft 365 che include Dynamics 365
- Ruolo di sicurezza Amministratore di sistema nell'ambiente Dynamics 365
Accesso come amministratore globale o amministratore di Power Platform al Centro amministrativo Power Platform
Abilitare il controllo di Dataverse
Prima di esportare i log delle attività utente di Dynamics 365, devi attivare l'audit nel Centro amministrazione Power Platform.
- Accedi al centro di amministrazione di Power Platform.
- Nel riquadro di navigazione, seleziona Ambienti.
- Seleziona l'ambiente che contiene il deployment di Dynamics 365.
- Nella barra dei comandi, seleziona Impostazioni.
- Espandi Controllo e log e seleziona Impostazioni di controllo.
- Nella sezione Controllo, attiva le seguenti opzioni:
- Avvia controllo: attiva il controllo per l'ambiente.
- Accesso ai log: monitora gli accessi degli utenti.
- Leggere i log: acquisisce la maggior parte delle attività ed eventi degli utenti.
- Imposta i criteri di conservazione per i log di controllo in base ai tuoi requisiti.
- Seleziona Salva per applicare le modifiche.
Abilita il controllo a livello di tabella
- Accedi a Power Apps e seleziona l'ambiente.
- Nella barra dei comandi, seleziona Impostazioni > Impostazioni avanzate.
- Vai a Impostazioni > Personalizzazioni > Personalizza il sistema.
- Nel riquadro di navigazione, in Componenti, espandi Entità e seleziona l'entità da controllare (ad esempio, Account).
- Scorri verso il basso fino a Servizi di dati e seleziona la casella di controllo Controllo.
- Nella sezione Controllo, attiva le seguenti opzioni:
- Controllo di un singolo record. Registra un record all'apertura.
- Controllo di più record. Registra tutti i record visualizzati in una pagina aperta.
- Seleziona Salva e poi Pubblica.
- Ripeti i passaggi 4-7 per ogni tabella che vuoi controllare.
Per saperne di più, vedi Registrazione dell'attività di Microsoft Dataverse e delle app basate su modelli.
Configura l'account di archiviazione Azure
Crea account di archiviazione
- Nel portale Azure, cerca Account di archiviazione.
- Fai clic su + Crea.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Abbonamento Seleziona il tuo abbonamento Azure Gruppo di risorse Seleziona esistente o crea nuovo Nome dell'account di archiviazione Inserisci un nome univoco (ad esempio, secopsd365logs).Regione Seleziona la stessa regione del tuo ambiente Dataverse Prestazioni Standard (consigliato) Ridondanza GRS (archiviazione con ridondanza geografica) o LRS (archiviazione con ridondanza locale) Seleziona la scheda Avanzate e attiva l'opzione Spazio dei nomi gerarchico.
Fai clic su Review + create (Rivedi e crea).
Rivedi la panoramica dell'account e fai clic su Crea.
Attendi il completamento del deployment.
Recuperare le credenziali dell'account Storage
- Vai all'account di archiviazione che hai appena creato.
- Nel riquadro di navigazione a sinistra, seleziona Chiavi di accesso in Sicurezza e networking.
- Fai clic su Mostra chiavi.
- Copia e salva quanto segue per utilizzarlo in un secondo momento:
- Nome dell'account di archiviazione:
secopsd365logs - Chiave 1 o Chiave 2: la chiave di accesso condivisa (una stringa casuale di 512 bit con codifica base64)
- Nome dell'account di archiviazione:
Recupera l'endpoint del servizio Blob
- Nello stesso account di archiviazione, seleziona Endpoint dal menu di navigazione a sinistra.
- Copia e salva l'URL dell'endpoint del servizio Blob.
- Esempio:
https://secopsd365logs.blob.core.windows.net/
- Esempio:
Concedi le autorizzazioni dell'account di archiviazione
Concedi le autorizzazioni all'amministratore di Power Platform che configurerà Azure Synapse Link:
- In Storage Account, seleziona Controllo dell'accesso (IAM) nel riquadro a sinistra.
- Fai clic su + Aggiungi > Aggiungi assegnazione ruolo.
- Assegna i seguenti ruoli all'amministratore di Power Platform:
- Storage Blob Data Contributor
- Proprietario dei dati del blob di archiviazione
Configurare Azure Synapse Link per Dataverse
Azure Synapse Link for Dataverse esporta la tabella di controllo Dataverse in Azure Data Lake Storage Gen2, che è compatibile con i feed Azure Blob Storage V2.
Crea l'area di lavoro Azure Synapse
- Nel portale Azure, cerca Synapse Analytics.
- Fai clic su + Crea.
- Fornisci i seguenti dettagli di configurazione:
- Abbonamento: seleziona l'abbonamento in cui hai creato l'account di archiviazione.
- Gruppo di risorse: seleziona lo stesso gruppo di risorse dell'account di archiviazione.
- Nome spazio di lavoro: inserisci un nome univoco (ad esempio
synapse-d365-secops). - Regione: seleziona la stessa regione del tuo ambiente Dataverse.
- Nome account di archiviazione: seleziona l'account di archiviazione che hai creato in precedenza (
secopsd365logs). - Nome file system: fai clic su Crea nuovo e inserisci un nome (ad esempio
d365-audit).
- Fai clic su Rivedi e crea, quindi su Crea.
- Attendi il completamento del deployment.
Crea un pool Apache Spark
- Nel portale Azure, vai all'area di lavoro Synapse che hai creato.
- Fai clic su + Nuovo pool Apache Spark.
- Fornisci i seguenti dettagli di configurazione:
- Nome pool Apache Spark: inserisci un nome (ad esempio,
sparkpoold365). - Numero di nodi: inserisci
5.
- Nome pool Apache Spark: inserisci un nome (ad esempio,
- Seleziona la scheda Impostazioni aggiuntive e inserisci
5per il Numero di minuti di inattività. - Fai clic su Rivedi e crea, quindi su Crea.
Collega la tabella di controllo di Dataverse allo spazio di lavoro Synapse
- Accedi a Power Apps e seleziona l'ambiente contenente la tua implementazione di Dynamics 365.
- Nel riquadro di navigazione a sinistra, seleziona Azure Synapse Link. Se l'elemento non è visibile, seleziona Altro > Scopri tutto e individua Azure Synapse Link.
- Fai clic su Nuovo collegamento.
- Nella pagina Nuovo collegamento:
- Seleziona l'opzione Connetti al tuo workspace Azure Synapse Analytics.
- Abbonamento: seleziona l'abbonamento Azure.
- Gruppo di risorse: seleziona il gruppo di risorse contenente lo spazio di lavoro Synapse.
- Account di archiviazione: seleziona l'account di archiviazione (
secopsd365logs). - Seleziona l'opzione Utilizza il pool Spark per il job di conversione dei dati Delta Lake.
- Pool Spark: seleziona il pool Spark che hai creato (
sparkpoold365). - Account di archiviazione: seleziona lo stesso account di archiviazione.
- Fai clic su Avanti.
- Espandi la scheda Avanzate e inserisci
480minuti nel campo Intervallo di tempo. - Sotto l'elenco delle tabelle, seleziona le tabelle Audit e Utente.
Fai clic su Salva.
Per saperne di più, consulta Accedere ai dati di controllo dell'accesso con Azure Synapse Link e Power BI.
Configurare un feed in Google SecOps per importare i log delle attività utente di Microsoft Dynamics 365
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Microsoft Dynamics 365 User Activity). - Seleziona Microsoft Azure Blob Storage V2 come Tipo di origine.
- Seleziona Microsoft Dynamics 365 come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI Azure: inserisci l'URL dell'endpoint del servizio BLOB con il percorso del container:
https://secopsd365logs.blob.core.windows.net/d365-audit/Sostituisci quanto segue:
secopsd365logs: il nome del tuo account di archiviazione Azure.d365-audit: il nome del file system (container) configurato nello spazio di lavoro Synapse.
- Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze:
- Mai: non elimina mai i file dopo i trasferimenti.
- Elimina file trasferiti: elimina i file dopo il trasferimento riuscito.
- Elimina file trasferiti e directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.
- Età massima del file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni)
- Chiave condivisa: inserisci il valore della chiave condivisa (chiave di accesso) che hai acquisito in precedenza dall'account di archiviazione.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configura il firewall di Azure Storage (se abilitato)
Se il tuo account di archiviazione Azure utilizza un firewall, devi aggiungere gli intervalli IP di Google SecOps.
- Nel portale Azure, vai al tuo account di archiviazione.
- Seleziona Networking in Sicurezza + networking.
- In Firewall e reti virtuali, seleziona Attivato da reti virtuali e indirizzi IP selezionati.
- Nella sezione Firewall, in Intervallo di indirizzi, fai clic su + Aggiungi intervallo IP.
Aggiungi ogni intervallo IP di Google SecOps in notazione CIDR.
Per ottenere gli intervalli IP attuali:
- Consulta la documentazione relativa alla lista consentita IP
- In alternativa, recuperali in modo programmatico utilizzando l'API di gestione dei feed.
Fai clic su Salva.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
| BuildNumber | about.labels | Unito about_BuildNumber con la chiave "BuildNumber" e il valore di BuildNumber se non è vuoto |
| RECORD_IDENTIFIER | additional.fields | Unite alle etichette create da ogni campo rispettivo, se non vuoto |
| 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 | |
| Tipo | additional.fields | |
| Alive | additional.fields | |
| PARTITION | additional.fields | |
| has_user | metadata.event_type | Impostato su "GENERIC_EVENT", poi su "USER_UNCATEGORIZED" se has_user è true, altrimenti su "STATUS_UPDATE" se has_principal è true |
| has_principal | metadata.event_type | |
| RECVERSION | metadata.product_version | Valore copiato direttamente se non è vuoto |
| SessionId | network.session_id | Valore copiato direttamente se non è vuoto |
| LOG_SEQUENCE_NUMBER | security_result.detection_fields | Unito LOG_SEQUENCE_NUMBER_label con la chiave "LOG_SEQUENCE_NUMBER" e il valore di LOG_SEQUENCE_NUMBER se non è vuoto |
| ID utente | target.user.userid | Valore copiato direttamente se non è vuoto |
| timestamp | timestamp | Analizzato utilizzando la corrispondenza della data con il formato ISO8601 o RFC 3339 se non è vuoto |
| metadata.product_name | metadata.product_name | Impostato su "MICROSOFT_DYNAMICS_365" |
| metadata.vendor_name | metadata.vendor_name | Impostato su "MICROSOFT_DYNAMICS_365" |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.