/
/

Come usare le API Microsoft Graph per estrarre report di conformità da più tenant

di Team Ninja
How to Use Microsoft Graph API to Pull Compliance Reports Across Multiple Tenants blog banner image

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

Punti chiave

  • Questa guida ti mostra come usare le API Microsoft Graph per estrarre i dati di conformità di Microsoft 365 da più tenant tramite un unico endpoint.
  • Ogni tenant Azure AD richiede una propria registrazione dell’app con le autorizzazioni Reports.Read.All, AuditLog.Read.All, SecurityEvents.Read.All e Directory.Read.All, oltre al consenso dell’amministratore, prima che le chiamate alle API Graph funzionino.
  • L’SDK PowerShell di Microsoft Graph esegue l’autenticazione con l’ID client, l’ID tenant e il secret di un’app registrata, quindi invia le richieste alle API Graph per recuperare i log di accesso, gli avvisi di sicurezza e le etichette di conservazione.
  • Salvare le credenziali dei tenant in un file JSON e scorrerle in ciclo permette ai team IT di estrarre ed esportare i dati di conformità da ogni tenant gestito a cadenza periodica, invece di accedere manualmente.
  • I secret client scaduti e i limiti di frequenza di Microsoft Graph sono i punti di errore più comuni: avvisi proattivi sulla rotazione dei secret e logica di retry contano quanto la configurazione iniziale.
  • Le piattaforme di automazione che supportano gli script PowerShell sugli endpoint gestiti aiutano a pianificare queste estrazioni tramite API Graph e ad aggiungere il contesto a livello di dispositivo.

Gli strumenti di sicurezza e conformità delle API Microsoft Graph sono indispensabili in qualsiasi ambiente enterprise. Offrono un endpoint unificato da cui accedere a tutti i log di controllo, i report DLP, gli incidenti e le policy di conservazione degli account Microsoft 365 della tua organizzazione.

L’uso di questo strumento porta diversi vantaggi chiave: mantiene la visibilità sulla conformità tra più tenant, automatizza i report senza dipendere dall’accesso al portale, offre un metodo di autenticazione sicuro basato su app e permette integrazioni semplici con SIEM e dashboard personalizzate.

Guida all’accesso ai report di conformità con Microsoft Graph

Prima di iniziare devi configurare l’applicazione nel portale Azure AD e assicurarti che disponga delle autorizzazioni necessarie. Poi puoi collegare il tuo account a Microsoft Graph tramite Windows PowerShell e generare i report in modo automatico. Hai anche la possibilità di automatizzare il processo con un file .JSON.

I GPO possono essere utilizzati per rafforzare le tue procedure di sicurezza. Puoi usare il Registro di sistema di Windows per garantire che tutte le policy vengano applicate in modo coerente su tutti i dispositivi gestiti. E se si verifica un errore, puoi usare CMD per la risoluzione dei problemi.

Prerequisiti:

  • Registrazione di un’app Azure AD per ogni tenant (oppure usa Microsoft Lighthouse, necessario per l’accesso delegato)
  • Serve il consenso dell’amministratore per gli ambiti API richiesti.
  • Per i report avanzati è necessario il componente aggiuntivo Microsoft 365 E5 Compliance.
  • Devi disporre di Windows PowerShell con l’SDK Microsoft Graph installato.
  • Facoltativo/preferibile: accesso a Intune, ai GPO e al Registro di sistema di Windows per la convalida delle policy sugli endpoint

Nel video viene mostrato Come usare le API Microsoft Graph per estrarre report di conformità da più tenant — un riferimento utile prima di muoverti tra le impostazioni e configurarle.

Passaggio 1: registra un’app in Azure per l’accesso a Graph

  1. Apri il portale Azure AD nel browser.
  2. Vai su App Registrations > New Registration.
  3. Assegna un nome all’app che vuoi registrare.
  4. Imposta il tipo di account su Accounts in this organizational directory only (Contoso only – Single tenant).
  5. Al termine, modifica le autorizzazioni dell’applicazione facendo clic su Add a permission. Verrai portato a Microsoft Graph.
  6. Concedi le autorizzazioni seguenti:
    • Reports.Read.All
    • AuditLog.Read.All
    • SecurityEvents.Read.All
    • Directory.Read.All
  7. Fai clic su Add Permissions.
  8. Fai clic sul pulsante Grant admin consent. Da questo momento l’applicazione può leggere tutti i profili utente a cui le hai dato accesso.
  9. Vai su Certificates & secrets.
  10. Seleziona Client Secrets > New Client secret.
  11. Compila le informazioni richieste e segui le istruzioni a schermo. Questo valore farà da password per l’applicazione.
  12. Annota l’ID applicazione (client), l’ID directory (tenant) e il valore del secret. Ti serviranno per accedere nuovamente all’applicazione in futuro.

Ripeti o automatizza questo processo per ogni tenant che lo richiede.

Passaggio 2: connettiti a Microsoft Graph da PowerShell

  1. Apri il menu Start e cerca Windows PowerShell.
  2. Fai clic con il tasto destro su Windows PowerShell > Esegui come amministratore.
  3. Per installare Microsoft Graph, digita il comando seguente e premi Invio:

Install-Module Microsoft.Graph -Scope CurrentUser

Import-Module Microsoft.Graph

  1. Per connetterti con le credenziali della tua app, digita il comando seguente e premi Invio:

Connect-MgGraph -ClientId "APP_ID" -TenantId "TENANT_ID" -ClientSecret (ConvertTo-SecureString "SECRET" -AsPlainText -Force)

Sostituisci “APP_ID” con l’ID client, “TENANT_ID” con l’ID tenant e “SECRET” con il valore del secret che hai generato.

  1. Per selezionare l’ambito, digita Select-MgProfile -Name "beta" e premi Invio.

Ora sei connesso a Microsoft Graph.

Passaggio 3: estrai i report di conformità con le API Microsoft Graph

Una volta effettuato l’accesso a Microsoft Graph da Windows PowerShell, segui questi passaggi:

  1. Per recuperare i log di controllo, digita questo comando e premi Invio:

$logs = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"

  1. Per elencare gli avvisi DLP, digita questo comando e premi Invio:

$alerts = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/alerts"

  1. Per elencare le policy di conservazione, digita questo comando e premi Invio:

$policies = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/retentionLabels"

  1. Per esportare i dati in un file .CSV, digita questo comando e premi Invio:

$logs.value | Export-Csv -Path ".\Tenant_AuditLogs.csv" -NoTypeInformation

Ripeti questo processo per ogni tenant, accedendo con le relative credenziali.

Facoltativo: automatizza il reporting tra più tenant

Gli amministratori IT possono salvare tutte le credenziali dei tenant in un file JSON. Possono eseguire questo file per scorrere in ciclo ogni tenant ogni volta che serve, connettersi a ciascuno di essi e consolidare i dati. Possono inoltre eseguirlo automaticamente a cadenza regolare con l’Utilità di pianificazione, tramite il loro strumento di gestione degli endpoint.

Ecco un esempio di struttura del ciclo sui tenant:

foreach ($tenant in $tenantList) {
Connect-MgGraph -ClientId $tenant.ClientId -TenantId $tenant.TenantId -ClientSecret $tenant.Secret
$auditData = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"
$auditData.value | Export-Csv -Path ".\$($tenant.Name)_Audit.csv" -Append
}

Facoltativo: usa il Registro di sistema per arricchire il contesto dei report sugli endpoint

Situazione d’uso: le chiavi di registro possono essere usate per garantire che i tag dei dispositivi e le etichette di reporting vengano applicati in modo coerente su tutti i dispositivi. Per farlo, segui questi passaggi:

  1. Apri il menu Start e cerca Editor del Registro di sistema per aprire il programma.
  2. Individua la chiave di registro corrispondente all’applicazione che vuoi verificare. Come riferimento, ecco un percorso di registro di esempio e i relativi valori:

HKEY_LOCAL_MACHINE\SOFTWARE\Contoso\Compliance

    • TenantTag (String) – Il valore deve essere “ClientA”.
    • LastAuditSync (String) – Il valore deve essere “[Data dell’ultima sincronizzazione di controllo]”.

Nota: puoi usare degli script per leggere questi tag e includere i metadati degli endpoint nei report generati da Graph.

Facoltativo: usa i Criteri di gruppo per lo stato di conformità degli endpoint

Situazione d’uso: i criteri di gruppo possono essere usati per supportare l’applicazione delle regole e garantire la conformità degli endpoint, in particolare per il punteggio di conformità e il reporting sulla sensibilità dei dati.

  1. Apri il menu Start e cerca Modifica criteri di gruppo per aprire il programma.
  2. Vai in questo percorso: Configurazione del computer > Modelli amministrativi > Componenti di Windows > Raccolta dati.
  3. Abilita le policy seguenti:
    • Consenti dati di telemetria – Dovresti impostarla anche su Avanzata o Completa.
    • Configura ID commerciale per il raggruppamento dei dispositivi

Facoltativo: usa CMD per verificare autorizzazioni e connettività

Situazione d’uso: è utile negli ambienti on-premise o ibridi in cui gli endpoint devono essere allineati ai requisiti di conformità.

  1. Apri il menu Start e cerca Prompt dei comandi.
  2. Fai clic con il tasto destro su Prompt dei comandi > Esegui come amministratore.
  3. Per verificare l’accesso a Internet e all’endpoint Graph, digita questo comando e premi Invio:

nslookup graph.microsoft.com

ping graph.microsoft.com

Per verificare lo stato di sincronizzazione dell’agente locale, digita questo comando e premi Invio:

dsregcmd /status

Per assicurarti che i criteri GPO siano stati applicati, digita questo comando e premi Invio:

gpresult /h gpo.html

Guida rapida

NinjaOne ti aiuta a usare le API Microsoft Graph per estrarre report di conformità da più tenant. La piattaforma NinjaOne è pensata per semplificare il lavoro con gli ecosistemi Microsoft 365, inclusi scenari complessi come il reporting di conformità multi-tenant, e offre funzionalità specifiche per gestire e automatizzare questi processi.

  • Reporting di conformità: estrai report di sicurezza e conformità da tutti gli account gestiti.
  • Automazione: automatizza la generazione dei report e i processi di raccolta dei dati.
  • Integrazione: si collega senza difficoltà a Microsoft Graph per accedere ai dati in tempo reale.
  • Scalabilità: progettata per gestire il monitoraggio della conformità su larga scala in tutta l’organizzazione.

Aspetti a cui prestare attenzione

Problema/rischio Possibili conseguenze Soluzione/ripristino
Compare un errore “Access Denied”. Non riesci ad accedere ai dati che ti servono. Verifica che il consenso dell’amministratore e gli ambiti API richiesti siano stati assegnati correttamente.
Ricevi una risposta vuota. Non ottieni i dati che ti servono. Assicurati che il tenant disponga delle licenze appropriate e che la registrazione dei log sia attiva.
Il secret client è scaduto. Non potrai accedere ai dati in Microsoft Graph. Imposta un avviso nel tuo strumento di gestione degli endpoint che ti segnali quando i secret stanno per scadere, così da evitare il problema.
Si verifica un errore nello script. Non riuscirai a estrarre i report. Usa blocchi Try/Catch e il logging dettagliato per individuare l’origine dell’errore.

Altri aspetti da considerare quando usi Microsoft Graph per estrarre i report di conformità

  • Tieni conto dei limiti di frequenza e del throttling di Microsoft Graph. In alcuni scenari potresti dover ripetere determinate operazioni, soprattutto se stai estraendo grandi quantità di dati.
  • Puoi ridurre la complessità usando Azure Lighthouse o i modelli di accesso tra tenant.
  • Usa Azure Key Vault o una soluzione di archiviazione crittografata per conservare i tuoi secret client.
  • Assicurati che solo il personale autorizzato possa accedere ai report che contengono dati relativi a singoli utenti.

I servizi NinjaOne

NinjaOne potenzia l’automazione della conformità basata su Graph grazie a:

  • Esecuzione tra più tenant: puoi pianificare e distribuire script PowerShell di reporting su tutti i tenant gestiti con lo strumento PowerShell remoto di NinjaOne.
  • Gestione centralizzata delle credenziali: conserva in modo sicuro le credenziali delle API Graph e richiamale per ogni tenant in una soluzione di archiviazione sicura e crittografata.
  • Avvisi e dashboard di conformità: integra i risultati dei report in dashboard personalizzate e ricevi notifiche al superamento delle soglie di rischio.
  • Contesto a livello di endpoint: estrai i dati del registro e dei GPO specifici di ogni dispositivo per arricchire i report di conformità con lo strumento di gestione degli endpoint di NinjaOne.
  • Gestione dei ticket automatizzata: imposta avvisi quando vengono rilevate determinate condizioni di conformità (ad esempio inattività dei controlli o policy di conservazione mancanti).

Sfrutta Microsoft Graph per i tuoi report di conformità

Microsoft Graph è uno strumento potente per automatizzare il reporting di conformità in un ambiente enterprise. Offre agli amministratori IT una visibilità scalabile su attività dei tenant, protezione dei dati e postura di governance.

Argomenti correlati:

FAQs

I dati di base su accessi e avvisi di sicurezza sono disponibili con le licenze Microsoft 365 standard, mentre i report di conformità avanzati richiedono una licenza Microsoft 365 E5 o il componente aggiuntivo E5 Compliance.

L’endpoint v1.0 è stabile e supportato per l’uso in produzione, mentre l’endpoint beta espone API di conformità e sicurezza più recenti o ancora in sviluppo, che possono cambiare o smettere di funzionare senza preavviso. Affidarsi agli endpoint beta per automazioni pianificate su più tenant comporta un rischio di manutenzione costante.

La conservazione dipende dal livello di licenza Microsoft 365: i log di accesso vengono in genere conservati 30 giorni nella maggior parte dei piani, con periodi più lunghi grazie alle licenze Azure AD premium, mentre i log di controllo della directory seguono limiti analoghi in base al livello.

Sì. Alla registrazione dell’app servono solo le autorizzazioni API specifiche concesse con il consenso dell’amministratore, non un ruolo di amministratore globale assegnato a una persona.

Microsoft Graph applica il throttling delle richieste per app e per tenant, restituendo uno stato 429 con l’header Retry-After quando i limiti vengono raggiunti. Gli script che estraggono dati da molti tenant dovrebbero implementare un backoff esponenziale e una logica di retry, invece di inviare richieste in un ciclo serrato.

Le API Graph permettono di automatizzare e consolidare gli stessi dati di base mostrati dal portale Purview, ma Purview resta il sistema di riferimento per configurare le policy DLP, le etichette di conservazione e i casi di eDiscovery.

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.