Raccogli i log delle attività utente di Microsoft Dynamics 365
Questo documento descrive come raccogliere i log delle attività utente di Microsoft Dynamics 365 configurando un feed di 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 azioni ed 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 un audit logging completo tramite l'audit log unificato di Microsoft Purview.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso con privilegi al portale di Microsoft Azure con le autorizzazioni per:
- Crea account di archiviazione
- Configura Azure Synapse Link per Dataverse
- Gestisci le chiavi di accesso
- Un abbonamento a Microsoft 365 che include Dynamics 365
- Ruolo di sicurezza di amministratore di sistema nell'ambiente Dynamics 365
Accesso come amministratore globale o amministratore di Power Platform all'interfaccia di amministrazione di Power Platform
Abilita il controllo di Dataverse
Prima di esportare i log delle attività utente di Dynamics 365, devi attivare il controllo nell'interfaccia di amministrazione di Power Platform.
- Accedi all'interfaccia 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 Controlli e log e seleziona Impostazioni di controllo.
- Nella sezione Auditing, attiva le seguenti opzioni:
- Avvia controllo: attiva il controllo per l'ambiente.
- Accesso ai log: monitora gli accessi degli utenti.
- Log di lettura: acquisiscono la maggior parte delle attività utente e degli eventi.
- Imposta la Policy di conservazione per i log di controllo in base ai tuoi requisiti.
- Seleziona Salva per applicare le modifiche.
Abilita l'audit 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 dati e attiva la casella di controllo Controllo.
- Nella sezione Auditing, attiva le seguenti opzioni:
- Controllo di un singolo record. Registra un record quando viene aperto.
- 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ù, consulta Log delle attività di Microsoft Dataverse e delle app basate su modello.
Configura l'account Azure Storage
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 un elemento esistente o creane uno nuovo Nome account di archiviazione Inserisci un nome univoco (ad esempio secopsd365logs)Regione Seleziona la stessa regione dell'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).
Esamina la panoramica dell'account e fai clic su Crea.
Attendi il completamento del deployment.
Ottieni le credenziali dell'account di archiviazione
- Vai all'account di archiviazione che hai appena creato.
- Nel pannello di navigazione a sinistra, seleziona Chiavi di accesso in Sicurezza + networking.
- Fai clic su Mostra chiavi.
- Copia e salva i seguenti dati per un utilizzo futuro:
- Nome account di archiviazione:
secopsd365logs - Chiave 1 o Chiave 2: la chiave di accesso condivisa (una stringa casuale a 512 bit con codifica Base64)
- Nome account di archiviazione:
Ottieni 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 per l'account di archiviazione
Concedi le autorizzazioni all'amministratore di Power Platform che configurerà Azure Synapse Link:
- In Storage Account, seleziona Controllo degli accessi (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
- Storage Blob Data Owner
Configura Azure Synapse Link per Dataverse
Azure Synapse Link per Dataverse esporta la tabella di controllo di Dataverse in Azure Data Lake Storage Gen2, che è compatibile con i feed di Azure Blob Storage V2.
Crea un'area di lavoro Azure Synapse
- Nel portale Azure, cerca Synapse Analytics.
- Fai clic su + Crea.
- Fornisci i seguenti dettagli di configurazione:
- Sottoscrizione: seleziona la sottoscrizione in cui hai creato l'account di archiviazione.
- Gruppo di risorse: seleziona lo stesso gruppo di risorse dell'account di archiviazione.
- Nome workspace: 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 e poi su Crea.
- Attendi il completamento del deployment.
Crea pool Apache Spark
- Nel portale di Azure, vai all'area di lavoro di Synapse che hai creato.
- Fai clic su + Nuovo pool di 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 Numero di minuti di inattività. - Fai clic su Rivedi e crea e poi su Crea.
Connetti la tabella di controllo di Dataverse allo spazio di lavoro di Synapse
- Accedi a Power Apps e seleziona l'ambiente contenente il tuo deployment 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 Connettiti all'area di lavoro di Azure Synapse Analytics.
- Abbonamento: seleziona l'abbonamento Azure.
- Gruppo di risorse: seleziona il gruppo di risorse contenente l'area di lavoro di 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). - Storage account (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. - Nell'elenco delle tabelle, seleziona le tabelle Auditing e User.
Fai clic su Salva.
Per saperne di più, consulta Accedi ai dati di controllo con Azure Synapse Link e Power BI.
Configura un feed in Google SecOps per importare i log delle attività utente di Microsoft Dynamics 365
- Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > 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 es.
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 Azure Storage.d365-audit: il nome del file system (container) configurato nell'area 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 i file trasferiti: elimina i file dopo il trasferimento riuscito.
- Elimina i file trasferiti e le directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.
- Età massima dei file: includi i file modificati negli ultimi 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 di notizie nella schermata Finalizza e poi fai clic su Invia.
Configura il firewall di Azure Storage (se abilitato)
Se il tuo account Azure Storage utilizza un firewall, devi aggiungere gli intervalli IP di Google SecOps.
- Nel portale Azure, vai al tuo account di archiviazione.
- Seleziona Networking in Sicurezza e networking.
- In Firewall e reti virtuali, seleziona Abilitato 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 | Unione di about_BuildNumber con la chiave "BuildNumber" e il valore di BuildNumber se non è vuoto |
| RECORD_IDENTIFIER | additional.fields | Unite alle etichette create da ogni rispettivo campo, 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 | LOG_SEQUENCE_NUMBER_label unito 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 | Imposta su "MICROSOFT_DYNAMICS_365" |
| metadata.vendor_name | metadata.vendor_name | Imposta 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.