Padroneggiare Graph Explorer: tracciare l'impronta di un utente dall'inizio alla fine
By Mirko Peters ·
Bentornato sul blog di accompagnamento al podcast! In questo post andiamo molto oltre le interfacce di amministrazione frammentate che tutti conosciamo e con cui a volte facciamo fatica…
Automatically translated with AI from the original post. Read the English original
Bentornato sul blog di accompagnamento al podcast! In questo post andiamo molto oltre le interfacce di amministrazione frammentate che tutti conosciamo e con cui a volte facciamo fatica. Se hai mai provato a ricostruire un registro di audit completo di ciò a cui un utente specifico ha acceduto, che ha condiviso o modificato in Microsoft 365, sai già quanto possano risultare disconnesse le interfacce di amministrazione native. Per questo ci immergiamo a fondo in Microsoft Graph. Con l'API Graph possiamo passare senza difficoltà dai singoli utenti a gruppi, siti SharePoint, file, link esterni e perfino ai visualizzatori attivi. Se vuoi seguire la discussione audio che accompagna direttamente questa guida, non perdere l'episodio correlato Map Microsoft 365 Users, Groups, Files, and Shares with Graph.
Perché M365 non è isolato
Una delle convinzioni più diffuse tra amministratori e team di sicurezza è che i singoli servizi di Microsoft 365 funzionino come silos sicuri e autonomi. In realtà, le chat di Teams, le librerie di documenti di SharePoint e le cartelle di OneDrive si collegano continuamente tra loro tramite l'appartenenza ai gruppi sottostanti e l'ereditarietà delle autorizzazioni.
- Chat di Teams, librerie di SharePoint e cartelle di OneDrive si collegano tra loro tramite l'appartenenza ai gruppi.
- Una semplice azione del tipo "aggiungi a un gruppo" può sbloccare silenziosamente numerosi siti, canali e condivisioni esterne sottostanti, senza lasciare tracce evidenti nei log di audit delle viste standard.
- Il tuo rischio di conformità nasce da questi percorsi invisibili, come link per ospiti inseriti in chat private, file replicati in più librerie e condivisioni orfane rimaste attive molto tempo dopo la conclusione dei progetti.
Mappatura dell'impronta con Graph Explorer (dall'utente ai punti di contatto con i file)
Per capire davvero come gli accessi si propagano nel tuo tenant ti serve uno schema di query ripetibile. In Graph Explorer puoi eseguire una catena deliberata di chiamate API per mappare l'intera impronta dei punti di contatto di un utente:
- Parti dall'utente di destinazione:
GET /v1.0/users/{userPrincipalName}?$select=id,displayName,userPrincipalName - Elenca le sue appartenenze dirette e indirette:
GET /v1.0/users/{id}/memberOf?$select=id,displayName - Risali alle risorse collegate a quei gruppi. Per i gruppi di Microsoft 365 e i team, punta al sito SharePoint sottostante:
GET /v1.0/groups/{groupId}/drive/root/children?$select=id,name,lastModifiedDateTime,webUrl
Oppure elenca direttamente i drive e le librerie del sito:
GET /v1.0/sites/{siteId}/drives - Recupera le autorizzazioni sugli elementi e i link di condivisione:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$select=id,grantedToV2,link,roles,shareId - Traccia chi ha acceduto a cosa e quando, dove disponibile, usando i log di audit e di accesso:
GET /v1.0/auditLogs/signIns oppure /security/alerts, abbinati al contesto di file, sito o condivisione. - Chiudi il cerchio risalendo ai post e ai messaggi dei canali di Teams:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="filename" (richiede gli endpoint beta e le autorizzazioni appropriate).
Filtri per eliminare il rumore che userai davvero
Estrarre dati grezzi da Microsoft Graph può presto sembrare come bere da un idrante. Per trasformare enormi quantità di dati in informazioni utili devi usare parametri di query precisi.
- Isola le condivisioni esterne create negli ultimi 7 giorni applicando filtri di ambito:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$filter=link/scope eq 'anonymous' or link/scope eq 'organization'&$select=… - Isola i tipi di file a rischio aggiungendo le estensioni dei nomi file:
Aggiungi $filter=endsWith(resourceReference/name,'.xlsm') or endsWith(resourceReference/name,'.pst') - Individua le menzioni fuori orario di termini sensibili nei canali di Teams:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="confidential", poi filtra i risultati per createdDateTime al di fuori del normale orario di lavoro. - Mantieni i payload leggeri ed efficienti aggiungendo sempre $select, così da restituire solo ID, nomi, URL web, timestamp di ultima modifica e campi minimi delle autorizzazioni.
- Limita i risultati per un triage rapido usando $top=50 per i controlli a campione, ma ricordati di rimuovere questo limite quando esporti i dati in uno storage permanente.
Requisiti imprescindibili su scala enterprise (paginazione e throttling)
Quando scali queste query da un singolo utente di test a un tenant enterprise con centinaia di migliaia di oggetti, prestazioni e affidabilità diventano fondamentali.
- Un'estrazione di dati non è mai completa finché non segui esplicitamente la proprietà @odata.nextLink per ogni singola pagina di risultati.
- Gestisci le risposte HTTP 429 di limitazione delle richieste implementando routine di backoff esponenziale e assicurati che lo script possa riprendere in sicurezza dal punto in cui si era interrotto.
- Raggruppa le query con criterio: preferisci richieste meno numerose ma più grandi e ben strutturate a una valanga di chiamate minuscole, e memorizza nella cache le corrispondenze da gruppo a sito in modo aggressivo.
- Suddividi le scansioni massive del tenant per ID di siti SharePoint specifici o intervalli di date per evitare timeout delle richieste, e pianifica queste operazioni pesanti nelle ore di minor carico.
Errori comuni (e correzioni rapide)
Anche gli amministratori più esperti incontrano ostacoli quando costruiscono pipeline automatizzate di query su Graph. Tieni presenti queste trappole ricorrenti e le relative correzioni rapide:
- Problema: le esportazioni CSV si disallineano e si rompono quando gli schemi sottostanti cambiano nel tempo.
Correzione: usa direttamente l'API Graph con trasformazioni versionate e una gestione solida dei campi «sconosciuti». - Problema: identificatori misti, come GUID e User Principal Name, interrompono i join nel database.
Correzione: normalizza i dati in un modello semantico coerente che comprenda Utenti, Gruppi, Siti, Unità, Elementi e Autorizzazioni. - Problema: il «bias della prima pagina» rende cieco il monitoraggio e nasconde gravi incidenti di sicurezza sepolti nelle pagine successive.
Correzione: registra sempre il numero totale di pagine elaborate e attiva avvisi se il volume di record previsto diminuisce in modo inatteso. - Problema: essere sommersi da un volume ingestibile di file irrilevanti.
Correzione: filtra esplicitamente per ambito dei link, per finestre temporali di creazione o modifica specifiche e per elenchi mirati di termini sensibili. - Problema: condivisioni di Teams che non si ricollegano ai file sottostanti.
Correzione: correla gli URL web dei messaggi del canale direttamente agli elementi dell'unità e memorizza entrambi gli identificatori univoci.
KPI a livello dirigenziale che si possono ottenere
Trasformare gli output grezzi dell'API Graph in metriche strutturate offre alla dirigenza la visibilità di cui ha disperatamente bisogno. Gli indicatori chiave di prestazione che puoi ricavare includono:
- Velocità di esposizione esterna: misurazione dei nuovi link per ospiti generati ogni settimana, suddivisi per sito o team.
- Tasso di accesso ai file sensibili: monitoraggio degli utenti unici che visualizzano contenuti con etichetta, distinguendo gli utenti interni dagli ospiti esterni.
- Effetto domino dei gruppi: identificazione dei file che diventano improvvisamente accessibili entro 24 ore da una modifica dei membri di un gruppo.
- Circolazione ombra: monitoraggio dei file sensibili che si diffondono tra più team e siti nel corso di una singola sprint.
- Efficacia della pulizia: conteggio dei link di condivisione revocati e misurazione del tempo complessivo necessario per la risoluzione.
Ricetta rapida per iniziare (flusso da copiare e incollare)
Se vuoi avviare subito la tua prima traccia end-to-end in Graph Explorer, segui questo flusso sequenziale di copia e incolla:
- Query sui dettagli principali dell'utente e sui gruppi:
/users/{upn}?$select=id,displayName
/users/{id}/memberOf?$select=id,displayName - Per ogni gruppo Microsoft 365 individuato, estrai i figli della unità:
/groups/{groupId}/drive/root/children?$select=id,name,webUrl,lastModifiedDateTime&$top=200
Assicurati di seguire @odata.nextLink - Per ogni elemento file, verifica le autorizzazioni:
/drives/{driveId}/items/{itemId}/permissions?$select=id,roles,grantedToV2,link
Filtra in modo che link/ambito sia in ('anonymous','organization') - Esporta le righe pulite nel tuo data warehouse, includendo ora del tenant, ID del sito, ID dell'unità, ID dell'elemento, URL web, proprietario, ambito e dati di scadenza.
- Visualizza i dati aggregati in Power BI per il monitoraggio continuo dell'organizzazione.
Trasformarlo in una dashboard operativa permanente
Le query una tantum in Graph Explorer sono ottime per le indagini, ma una vera governance richiede automazione. Trasforma le tue query in una dashboard operativa permanente creando dataflow solidi, normalizzando le tabelle di utenti, gruppi, siti, unità, elementi, autorizzazioni e messaggi, e costruendo uno schema a stella incentrato sugli elementi file. Imposta aggiornamenti incrementali dei dati basati sulle date di modifica e configura avvisi in tempo reale che si attivino ogni volta che compaiono nuovi link esterni su contenuti sensibili con etichetta.
Piano di implementazione in 30 giorni
Pronto a mettere in pratica tutto questo in tutta l'organizzazione? Segui questo framework strutturato di implementazione in quattro settimane:
- Settimana 1: completa la registrazione dell'app, assegna le autorizzazioni Graph API con il privilegio minimo necessario e stabilisci query di base usando parametri $select e $filter precisi.
- Settimana 2: sviluppa gli script di paginazione, implementa la normalizzazione degli identificativi da ID a UPN ed esegui la tua prima esportazione dati riuscita.
- Settimana 3: costruisci il modello dati in Power BI e i KPI di base, inclusi il monitoraggio dell'esposizione esterna e l'analisi del rischio di propagazione.
- Settimana 4: automatizza l'aggiornamento dei dati, configura gli avvisi per le anomalie e documenta le procedure operative standard per i team di sicurezza e conformità.
A chi è rivolto
Questa metodologia è pensata su misura per ruoli specifici all'interno della tua organizzazione:
- Amministratori di Microsoft 365 e responsabili SecOps che sospettano che le dashboard amministrative predefinite nascondano aree critiche poco visibili.
- Team di conformità che richiedono una visibilità completa sulla condivisione, senza aggiungere altro software di terze parti.
- Responsabili della collaborazione che devono garantire in ultima istanza pratiche di condivisione esterna sicure e controllate.
Consigli pratici
Tieni a portata di mano questi consigli pratici mentre costruisci il tuo percorso di automazione con Graph:
- Inizia sempre l'indagine dall'utente o dal file, quindi espandila in entrambe le direzioni per eliminare i punti ciechi.
- Considera ogni azione "aggiungi al gruppo" come una modifica ad alto rischio e verifica le implicazioni sugli accessi a valle entro 24 ore.
- Mantieni un elenco aggiornato di termini sensibili da cercare nei messaggi di Teams e nei nomi dei file, e rivedilo regolarmente.
- Registra con attenzione il numero di pagine elaborate e i volumi di record: a volte il silenzio completo nei log è proprio il segnale di un job della pipeline non funzionante.
Conclusioni
Padroneggiare Microsoft Graph per tracciare l'attività degli utenti dall'inizio alla fine colma il divario tra le viste amministrative frammentate e una visibilità davvero completa sull'organizzazione. Passando da silos isolati a una mappatura relazionale degli accessi, puoi proteggere in modo proattivo i dati sensibili, eliminare la circolazione non controllata e fornire alla leadership i KPI concreti di cui ha bisogno. Per ascoltare altri approfondimenti di esperti, esempi reali e analisi dettagliate di scenari come questo, ascolta l'episodio completo su Map Microsoft 365 Users, Groups, Files, and Shares with Graph.
Iscriviti
Per approfondimenti e ricette pratiche con Graph, scopri i nuovi episodi su m365.show/subscribe