La maggior parte degli incidenti in Microsoft 365 non nasce da un exploit sofisticato, ma da igiene dell’identità trascurata: un account amministrativo di troppo, un segreto d’app scaduto che blocca un’integrazione, un guest di un fornitore che ha ancora accesso a un anno di distanza, un consenso OAuth dato con leggerezza. Il problema non è la mancanza di dati — Entra ID li ha tutti — ma il fatto che siano sparsi e difficili da rivedere con regolarità.
PowerShell li mette in fila. Con il Microsoft Graph PowerShell SDK puoi interrogare l’identità del tenant in modo ripetibile e ottenere CSV che valgono come evidenze di governance. Abbiamo raccolto 10 script — tutti di sola lettura — in un toolkit gratuito.
I 10 script, in 4 aree
Accessi privilegiati — chi ha i poteri
- 01 · Get-EntraPrivilegedRoleMembers — i ruoli directory attivi e i loro membri (chi è Global Administrator & co.).
- 02 · Get-EntraPimEligibleRoles — le assegnazioni eleggibili in PIM: chi può attivare un ruolo privilegiato (richiede Entra ID P2).
Igiene delle app — cosa ha accesso al tenant
- 03 · Get-EntraAppRegistrations — inventario delle app registration con numero di owner (le app senza owner rischiano l’abbandono).
- 04 · Get-EntraExpiringAppCredentials — segreti e certificati in scadenza entro N giorni (e già scaduti): il controllo anti-blocco per eccellenza.
- 05 · Get-EntraEnterpriseApps — i service principal (enterprise app) con tipo, stato e numero di credenziali.
Perimetro e collaborazione esterna
- 06 · Get-EntraGuestAccounts — i guest B2B con creazione e ultimo accesso, per rivedere chi entra dall’esterno (l’ultimo accesso richiede Entra ID P1).
- 09 · Get-EntraOAuth2PermissionGrants — i consensi OAuth2 delegati concessi alle app: dove individuare permessi eccessivi o app sospette.
Gruppi e sintesi
- 07 · Get-EntraGroupsWithoutOwners — i gruppi senza owner (gap di governance da chiudere).
- 08 · Get-EntraGroupBasedLicensing — i gruppi che assegnano licenze (group-based licensing), per capire come sono distribuite.
- 10 · Get-EntraIdentitySummary — il cruscotto: Global Admin, app, credenziali in scadenza a 30 giorni, service principal e guest, in una riga di sintesi datata.
Il flusso consigliato
- Parti dalle emergenze silenziose:
04(credenziali in scadenza) evita il blocco improvviso di un’integrazione — eseguilo con cadenza mensile. - Verifica i poteri:
01e02ti dicono chi amministra il tenant, ora e in potenza (PIM). - Rivedi il perimetro:
06(guest) e09(consensi) per chiudere accessi e permessi non più necessari. - Chiudi i gap di governance:
07(gruppi senza owner) e la fotografia rapida con10.
Scarica il toolkit
Scarica i 10 script identità (ZIP) — codice originale SynSphere, parametrico e commentato, con README e gli scope Graph a minor privilegio dichiarati script per script. Tutti di sola lettura. Licenza: uso interno aziendale gratuito.
Identità, sicurezza e NIS2
La gestione degli accessi (specie privilegiati) e la revisione periodica di app e permessi sono tra le misure attese dal recepimento italiano della NIS2. I report 01/02 (accessi privilegiati), 04 (credenziali) e 09 (consensi) sono evidenze concrete e datate. Per il quadro delle scadenze parti dalle misure di base NIS2 entro il 31 ottobre 2026; per la postura di sicurezza complementa con il toolkit Defender.
Se preferisci delegare
Tenere pulita l’identità — rinnovare le credenziali prima che scadano, ridurre gli amministratori, rivedere guest e consensi — è un lavoro continuo. È parte della nostra cybersecurity gestita: governance degli accessi, monitoraggio e reportistica per gli audit. Vuoi partire da una fotografia della tua identità? Falla con il toolkit o chiedi un assessment.
Per automatizzare anche utenti, licenze e sicurezza email di Microsoft 365, vedi l’automazione di Microsoft 365 con PowerShell.