9 gen 2023

Exchange Online: eseguire operazioni avanzate con Microsoft Graph

 In alcuni casi, come ad esempio per un’importazione errata con network upload, si rende necessario effettuare alcune attività massive (bulk) in Microsoft 365.

Eliminare una determinata cartella da tutte le mailbox presenti in un tenant è uno scenario più comune di quanto sembri e lo utilizzeremo come modello per capire come connetterci con Microsoft Graph tramite PowerShell ed il relativo SDK al fine produrre script di automazione che possano oltrepassare il limite del contesto utente.

Graph PowerShell SDK è solo un wrapper per l’API Graph, che a sua volta non è altro che un’API REST. Un’API REST, nota anche come API RESTful, è un’interfaccia di programmazione delle applicazioni (API o API web) conforme ai vincoli dello stile architetturale REST, che consente l’interazione con servizi web RESTful.

Il repository GitHub di riferimento e supporto per Graph PowerShell SDK è il seguente: microsoftgraph/msgraph-sdk-powershell · GitHub

Connettersi alle API di Microsoft Graph tramite PowerShell

Come primissima cosa è mandatorio installare l’SDK di Graph. L’SDK farà in modo che sia possibile attestarci alle Graph API semplicemente tramite Microsoft PowerShell.

Installiamo quindi il modulo Microsoft.Graph meglio conosciuto come Microsoft Graph Powershell SDK. Da notare che tutti i cmdlet di questo modulo iniziano con “Mg

Install-Module Microsoft.Graph -Scope AllUsers -Force

NB: lo scope AllUsers richiede diritti amministrativi, contrariamente non sono necessari per lo scope CurrentUser.

Un argomento molto importante, con cui è preferibile prendere confidenza quando ci si cimenta nell’utilizzo delle API di Microsoft Graph ,sono gli ambiti anche noti come scope. Se ad esempio un account dispone delle autorizzazioni per un determinato ruolo, non significa che gli venga automaticamente concesso tale ambito.

Verificare l’ambito di un cmdlet

Per questioni di sicurezza, e per evitare di disporre di privilegi eccessivi, è consigliabile utilizzare solo gli ambiti applicabili alla sessione corrente. Ma come si può sapere esattamente quali ambiti sono necessari per i cmdlet che intendiamo usare?

La risposta scontata è naturalmente la documentazione, ma esiste un altro modo probabilmente più efficace anche se dipende molto da come si è abituati: Graph Explorer! Da qui possiamo verificare tutte le autorizzazioni necessarie per ogni query.

continua su WindowServer.it

Nessun commento:

Posta un commento