Automatizzare le attività di governance di Microsoft Entra ID tramite Automazione di Azure e Microsoft Graph
Automazione di Azure è un servizio cloud di Azure che consente di automatizzare la gestione e i processi comuni o ripetitivi dei sistemi. Microsoft Graph è l'endpoint API unificato Microsoft per le funzionalità di Microsoft Entra che gestiscono utenti, gruppi, pacchetti di accesso, verifiche di accesso e altre risorse nella directory. È possibile gestire Microsoft Entra ID su larga scala dalla riga di comando di PowerShell, usando Microsoft Graph PowerShell SDK. È anche possibile includere i cmdlet di PowerShell di Microsoft Graph da un runbook basato su PowerShell in Automazione di Azure, in modo da automatizzare le attività di Microsoft Entra da uno script semplice.
Automazione di Azure e PowerShell Graph SDK supportano l'autenticazione basata su certificati e le autorizzazioni dell'applicazione, pertanto è possibile che i runbook di Automazione di Azure si autentichino in Microsoft Entra ID senza bisogno di un contesto utente.
Questo articolo illustra come iniziare a usare Automazione di Azure per Microsoft Entra ID Governance, creando un semplice runbook che esegue query sulla gestione entitlement tramite Microsoft Graph PowerShell.
Creare un account di Automazione di Azure
Suggerimento
La procedura descritta in questo articolo può variare leggermente in base al portale di partenza.
Automazione di Azure fornisce un ambiente ospitato nel cloud per l'esecuzione del runbook. Questi runbook possono essere avviati automaticamente in base a una pianificazione o attivati da webhook o da App per la logica.
Per usare Automazione di Azure è necessario avere una sottoscrizione di Azure.
Ruolo prerequisito: sottoscrizione di Azure o proprietario del gruppo di risorse
Accedere al portale di Azure. Assicurarsi di avere accesso alla sottoscrizione o al gruppo di risorse in cui si trova l'account Automazione di Azure.
Selezionare la sottoscrizione o il gruppo di risorse e selezionare Crea. Digitare Automazione, selezionare il servizio di Automazione di Azure da Microsoft e quindi selezionare Crea.
Dopo aver creato l'account Automazione di Azure, selezionare Controllo di accesso (IAM). Seleziona Visualizza dalla sezione Visualizza accesso a questa risorsa. Questi utenti ed entità servizio saranno successivamente in grado di interagire con il servizio Microsoft tramite gli script per essere creati in tale account Automazione di Azure.
Esaminare gli utenti e le entità servizio elencati e assicurarsi che siano autorizzati. Rimuovere tutti gli utenti non autorizzati.
Creare una coppia di chiavi autofirmata e un certificato nel computer
In modo che possa funzionare senza bisogno delle credenziali personali, l'account Automazione di Azure creato dovrà eseguire l'autenticazione a Microsoft Entra ID con un certificato.
Se si dispone già di una coppia di chiavi per l'autenticazione del servizio in Microsoft Entra ID e di un certificato ricevuto da un'autorità di certificazione, passare alla sezione successiva.
Generare un certificato autofirmato.
Seguire le istruzioni in come creare un certificato autofirmato, opzione 2, per creare ed esportare un certificato con la relativa chiave privata.
Mostra l'identificazione personale del certificato.
$cert | ft Thumbprint
Dopo aver esportato i file, è possibile rimuovere il certificato e la coppia di chiavi dall'archivio certificati utente locale. Nei passaggi successivi si rimuovono anche i file
.pfx
e.crt
, dopo che il certificato e la chiave privata sono stati caricati nei servizi Automazione di Azure e Microsoft Entra.
Caricare la coppia di chiavi in Automazione di Azure
Il runbook in Automazione di Azure recupera la chiave privata dal file .pfx
e la usa per l'autenticazione in Microsoft Graph.
Nel portale di Azure per l'account Automazione di Azure selezionare Certificati e Aggiungi un certificato.
Caricare il file
.pfx
creato in precedenza e digitare la password specificata al momento della creazione del file.Dopo il caricamento della chiave privata, registrare la data di scadenza del certificato.
È ora possibile eliminare il file
.pfx
dal computer locale. Tuttavia, non eliminare ancora il file.crt
in quanto sarà necessario in un passaggio successivo.
Aggiungere moduli per Microsoft Graph all'account Automazione di Azure
Per impostazione predefinita, Automazione di Azure non dispone di moduli di PowerShell precaricati per Microsoft Graph. È necessario aggiungere Microsoft.Graph.Authentication e quindi moduli aggiuntivi dalla raccolta all'account di Automazione.
Nel portale di Azure per l'account Automazione di Azure selezionare Moduli e poi Sfoglia raccolta.
Nella barra di ricerca digitare Microsoft.Graph.Authentication. Selezionare il modulo, selezionare Importa e poi OK per fare in modo che Microsoft Entra ID inizi a importare il modulo. Una volta selezionato OK, ci possono volere alcuni minuti perché l'importazione di un modulo venga completata. Non tentare di aggiungere altri moduli di Microsoft Graph fino al completamento dell'importazione del modulo Microsoft.Graph.Authentication, perché gli altri moduli hanno Microsoft.Graph.Authentication come prerequisito.
Tornare all'elenco Moduli e selezionare Aggiorna. Dopo che lo stato del modulo Microsoft.Graph.Authentication è stato cambiato in Disponibile, è possibile importare il modulo successivo.
Se si usano i cmdlet per le funzionalità di governance di Microsoft Entra ID, ad esempio la gestione entitlement, ripetere il processo di importazione per il modulo Microsoft.Graph.Identity.Governance.
Importare altri moduli che lo script potrebbe richiedere, ad esempio Microsoft.Graph.Users. Ad esempio, se si usa Microsoft Entra ID Protection, è possibile importare il modulo Microsoft.Graph.Identity.SignIns .
Creare una registrazione dell'app e assegnare le autorizzazioni
Successivamente, si crea una registrazione dell'app in Microsoft Entra ID, in modo che Microsoft Entra ID riconosca il certificato del runbook Automazione di Azure per l'autenticazione.
- Accedere all'Interfaccia di amministrazione di Microsoft Entra almeno come amministratore applicazione.
- Passare a Identità>Applicazioni>Registrazioni app.
- Seleziona Nuova registrazione.
- Immettere un nome per l'applicazione e selezionare Registra.
- Dopo aver creato la registrazione dell'applicazione, prendere nota dell'ID applicazione (client) e dell'ID directory (tenant) in quanto saranno necessari in un secondo momento.
- Selezionare Certificati e segreti>Certificati>Carica certificato.
- Caricare il file
.crt
creato in precedenza.
- Caricare il file
- Seleziona Autorizzazioni API>Aggiungi un'autorizzazione.
- Selezionare Autorizzazioni dell'applicazione>Microsoft Graph.
Selezionare ognuna delle autorizzazioni necessarie per l'account Automazione di Azure, quindi selezionare Aggiungi autorizzazioni.
- Se il runbook esegue solo query o aggiornamenti all'interno di un singolo catalogo, non è necessario assegnargli le autorizzazioni dell'applicazione a livello di tenant; sarà invece possibile assegnare l'entità servizio al ruolo proprietario catalogo o lettore catalogo.
- Se il runbook esegue solo query per la gestione entitlement, può usare l'autorizzazione EntitlementManagement.Read.All.
- Se il runbook apporta modifiche alla gestione entitlement, ad esempio per creare assegnazioni in più cataloghi, usare l'autorizzazione EntitlementManagement.ReadWrite.All.
- Per altre API, assicurarsi che venga aggiunta l'autorizzazione necessaria. Ad esempio, per Microsoft Entra ID Protection, potrebbe essere necessaria l'autorizzazione IdentityRiskyUser.Read.All.
Concedere il consenso amministratore
L'applicazione creata nella sezione precedente dispone di autorizzazioni che richiedono l’approvazione di un utente che abbia almeno il ruolo di amministratore con privilegi.
- Accedere all'interfaccia di amministrazione di Microsoft Entra almeno con il ruolo Amministratore del ruolo con privilegi .
- Passare a Identità>Applicazioni>Registrazioni app>Tutte le applicazioni.
- Selezionare l'applicazione creata nella sezione precedente.
- Esaminare le autorizzazioni API e rivedere le autorizzazioni richieste.
- Se appropriato, selezionare Concedi il consenso amministratore per "Nome tenant" per assegnare all'applicazione tali autorizzazioni.
Creare variabili di Automazione Azure
In questo passaggio si creano nell'account Automazione di Azure tre variabili usate dal runbook per determinare come eseguire l'autenticazione in Microsoft Entra ID.
Nel portale di Azure tornare all'account di Automazione di Azure.
Selezionare Variabili e Aggiungi variabile.
Creare una variabile denominata Identificazione personale. Digitare, come valore della variabile, l'identificazione personale del certificato generata in precedenza.
Creare una variabile denominata ClientId. Digitare, come valore della variabile, l'ID client per l'applicazione registrata in Microsoft Entra ID.
Creare una variabile denominata TenantId. Digitare, come valore della variabile, l'ID tenant della directory in cui è stata registrata l'applicazione.
Creare un runbook di PowerShell Automazione di Azure che può usare Graph
In questo passaggio viene creato un runbook iniziale. È possibile attivare questo runbook per verificare che l'autenticazione che usa il certificato creato in precedenza abbia esito positivo.
Selezionare Runbook e Crea un runbook.
Digitare il nome del runbook, selezionare PowerShell come tipo di runbook da creare e selezionare Crea.
Dopo aver creato il runbook, viene visualizzato un riquadro di modifica del testo che consente di digitare il codice sorgente di PowerShell del runbook.
Digitare il comando di PowerShell seguente nell'editor di testo.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
Connect-MgGraph -clientId $ClientId -tenantId $TenantId -certificatethumbprint $Thumbprint
Selezionare il riquadro Test e selezionare Avvia. Attendere alcuni secondi per il completamento dell'elaborazione Automazione di Azure dello script del runbook.
Se l'esecuzione del runbook ha esito positivo, verrà visualizzato il messaggio Benvenuti in Microsoft Graph!.
Dopo aver verificato che il runbook può eseguire l'autenticazione in Microsoft Graph, estendere il runbook aggiungendo i cmdlet per interagire con le funzionalità di Microsoft Entra.
Estendere il runbook per usare gestione entitlement
Se la registrazione dell'app per il runbook dispone delle autorizzazioni EntitlementManagement.Read.All o EntitlementManagement.ReadWrite.All, allora può usare le API di gestione entitlement.
- Ad esempio, per ottenere un elenco dei pacchetti di accesso alla gestione entitlement di Microsoft Entra, è possibile aggiornare il runbook creato in precedenza e sostituire il testo con il comando PowerShell seguente.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
$auth = Connect-MgGraph -clientId $ClientId -tenantid $TenantId -certificatethumbprint $Thumbprint
Import-Module Microsoft.Graph.Identity.Governance
$ap = @(Get-MgEntitlementManagementAccessPackage -All -ErrorAction Stop)
if ($null -eq $ap -or $ap.Count -eq 0) {
ConvertTo-Json @()
} else {
$ap | Select-Object -Property Id,DisplayName | ConvertTo-Json -AsArray
}
Selezionare il riquadro Test e selezionare Avvia. Attendere alcuni secondi per il completamento dell'elaborazione Automazione di Azure dello script del runbook.
Se l'esecuzione ha esito positivo, l'output al posto del messaggio di benvenuto sarà una matrice JSON. La matrice JSON include l'ID e il nome visualizzato di ogni pacchetto di accesso restituito dalla query.
Specificare i parametri per il runbook (facoltativo)
È anche possibile aggiungere parametri di input al runbook aggiungendo una sezione Param
nella parte superiore dello script di PowerShell. Ad esempio:
Param
(
[String] $AccessPackageAssignmentId
)
Il formato dei parametri consentiti dipende dal servizio chiamante. Se il runbook accetta parametri dal chiamante, è necessario aggiungere la logica di convalida al runbook per assicurarsi che i valori dei parametri forniti siano appropriati per l'avvio del runbook. Ad esempio, se il runbook viene avviato da un webhook, Automazione di Azure non esegue alcuna autenticazione su una richiesta webhook purché venga effettuata all'URL corretto, quindi è necessario un mezzo alternativo per convalidare la richiesta.
Una volta configurati i parametri di input del runbook, quando si testa il runbook è possibile specificare i valori tramite la pagina Test. In seguito, quando il runbook viene pubblicato, è possibile specificare parametri quando si avvia il runbook da PowerShell, l'API REST o un'app per la logica.
Analizzare l'output di un account Automazione di Azure in App per la logica (facoltativo)
Dopo aver pubblicato il runbook, è possibile creare una pianificazione in Automazione di Azure e collegare il runbook a tale pianificazione per l'esecuzione automatica. La pianificazione dei runbook da Automazione di Azure è adatta per i runbook che non devono interagire con altri servizi di Azure o Office 365 che non dispongono di interfacce di PowerShell.
Se si vuole inviare l'output del runbook a un altro servizio, è consigliabile usare App per la logica di Azure per avviare il runbook Automazione di Azure, visto che App per la logica può anche analizzare i risultati.
In App per la logica di Azure creare un'app per la logica in Progettazione App per la logica a partire dalla ricorrenza.
Aggiungere l'operazione Crea processo da Automazione di Azure. Eseguire l'autenticazione in Microsoft Entra ID e selezionare la sottoscrizione, il gruppo di risorse, l'account di Automazione creato in precedenza. Selezionare Attendi processo.
Aggiungere il nome del runbook del parametro e digitare il nome del runbook da avviare. Se un runbook dispone di parametri di input, allora è possibile fornire valori per tali parametri.
Selezionare Nuovo passaggio e aggiungere l'operazione Ottenere l'output del processo. Selezionare la stessa sottoscrizione, gruppo di risorse, account di Automazione del passaggio precedente e selezionare il valore dinamico dell'ID lavoro del passaggio precedente.
È quindi possibile aggiungere altre operazioni all'App per la logica, ad esempio l'azione Analizza JSON che usa il contenuto restituito al termine del runbook. (Se si sta generando automaticamente lo schema Analizza JSON da un payload di esempio, assicurarsi di tenere conto dello script di PowerShell che potenzialmente restituisce Null. In quel caso, potrebbe essere necessario modificare nello schema parte di
"type": "string"
in"type": ["string", "null"]
.)
In Automazione di Azure, un runbook di PowerShell può fallire nel completamento se tenta di scrivere una quantità elevata di dati nel flusso di output in una sola volta. In genere è possibile risolvere questo problema facendo in modo che l'output del runbook visualizzi solo le informazioni necessarie per l'App per la logica, ad esempio usando il cmdlet Select-Object -Property
per escludere le proprietà non necessarie.
Pianificare per mantenere il certificato aggiornato
Se è stato creato un certificato autofirmato seguendo i passaggi precedenti per l'autenticazione, tenere presente che il certificato ha una durata limitata. È necessario rigenerare il certificato e caricare il nuovo certificato prima della data di scadenza.
Nel portale di Azure è possibile visualizzare la data di scadenza in due posti.
- In Automazione di Azure, nella schermata Certificati viene visualizzata la data di scadenza del certificato.
- In Microsoft Entra ID, nella registrazione dell'app, nella schermata Certificati e segreti viene visualizzata la data di scadenza del certificato usato per l'account Automazione di Azure.