Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Automazione di Azure è un servizio cloud di Azure che consente di automatizzare processi e gestione di sistemi comuni o ripetitivi. 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 un semplice script.
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 Azure Automation per Microsoft Entra ID Governance, creando un semplice runbook che esegue query sulla gestione delle autorizzazioni tramite Microsoft Graph PowerShell.
Creare un account di Automazione di Azure
Azure Automation fornisce un ambiente basato su cloud per l'esecuzione del runbook. Questi runbook possono essere avviati automaticamente in base a una pianificazione o attivati da webhook o da Logic Apps.
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 Automazione di Azure da Microsoft e quindi selezionare Crea.
Dopo aver creato l'account di Automazione di Azure, selezionare Controllo di accesso (IAM). Selezionare quindi Visualizza in Visualizza l'accesso a questa risorsa. Questi utenti e principali del servizio saranno successivamente in grado di interagire con il servizio Microsoft tramite gli script che saranno creati nell'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'impronta digitale 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 di Azure Automation recupera la chiave privata dal file .pfx
e la usa per l'autenticazione su Microsoft Graph.
Nel portale di Azure per l'account di 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, Azure Automation non dispone di moduli di PowerShell precaricati per Microsoft Graph. È necessario aggiungere Microsoft.Graph.Authentication e successivamente altri moduli dalla galleria all'account di Automazione.
Nel portale di Azure per l'account Azure Automation, selezionare Moduli e quindi Esplora galleria.
Nella barra di ricerca digitare Microsoft.Graph.Authentication. Selezionare il modulo, selezionare Importa e selezionare 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 modificato 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'applicazione in Microsoft Entra ID, in modo che esso riconosca il certificato del runbook di Azure Automation per l'autenticazione.
- Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un amministratore dell'applicazione.
- Passare a Entra ID>Registrazioni app.
- Selezionare Nuova registrazione.
- Digitare 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 certificati segreti>>Carica certificato.
- Caricare il file
.crt
creato in precedenza.
- Caricare il file
- Selezionare Autorizzazioni> APIAggiungere un'autorizzazione.
- SelezionareAutorizzazioni dell'applicazione>.
Selezionare ognuna delle autorizzazioni necessarie per l'account di Automazione di Azure e quindi selezionare Aggiungi autorizzazioni.
- Se il runbook esegue solo query o aggiornamenti all'interno di un singolo catalogo, non è necessario attribuirgli le autorizzazioni dell'applicazione a livello di tenant; Al contrario, è possibile attribuire l'entità servizio al ruolo di Proprietario Catalogo o Lettore Catalogo del catalogo.
- Se il runbook, per la gestione delle autorizzazioni, esegue solo query, può usare l'autorizzazione EntitlementManagement.Read.All.
- Se il tuo runbook apporta modifiche alla gestione delle autorizzazioni, ad esempio per creare assegnazioni su più cataloghi, utilizza 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 dell'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.
- Accedi all'interfaccia di amministrazione di Microsoft Entra con almeno un ruolo di Amministratore dei ruoli con privilegi.
- Passare a Entra ID>Registrazioni app>Tutte le applicazioni.
- Selezionare l'applicazione creata nella sezione precedente.
- Selezionare Autorizzazioni API ed esaminare le autorizzazioni necessarie.
- Se appropriato, selezionare Concedi il consenso dell'amministratore per "Nome del tuo tenant" per dare 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 Thumbprint. Digitare, come valore della variabile, l'impronta digitale 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 di Azure Automation che utilizza 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 Runbooks e Creare 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 per alcuni secondi il completamento dell'elaborazione di Automazione di Azure dello script del runbook.
Se l'esecuzione del runbook ha esito positivo, verrà visualizzato il messaggio Benvenuto 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 utilizzare Entitlement Management
Se la registrazione dell'app per il runbook dispone delle autorizzazioni EntitlementManagement.Read.All o EntitlementManagement.ReadWrite.All, può utilizzare le API di gestione dei diritti.
- Ad esempio, per ottenere un elenco dei pacchetti di accesso della gestione delle assegnazioni di Microsoft Entra, è possibile aggiornare il runbook creato in precedenza e sostituire il testo con il seguente comando PowerShell.
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 per alcuni secondi il completamento dell'elaborazione di 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, Azure Automation non esegue alcuna autenticazione su una richiesta di webhook finché viene effettuata all'URL corretto, quindi è necessario un metodo alternativo per convalidare la richiesta.
Dopo aver configurato 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.
Analizza l'output di un account di Azure Automation in Logic Apps (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 tramite Automazione di Azure è indicata per quelli che non richiedono l'interazione con altri servizi di Azure o Office 365, i quali non dispongono di interfacce PowerShell.
Se si desidera inviare l'output del runbook a un altro servizio, è possibile prendere in considerazione l'uso di Azure Logic Apps per avviare il runbook di Azure Automation, poiché Logic Apps può anche analizzare i risultati.
In Azure Logic Apps, crea un'app logica nel Progettazione di app logiche iniziando con Ricorrenza.
Aggiungere l'operazione Crea lavori da Azure Automation. 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 di lavoro.
Aggiungere il parametro Nome del runbook e digitare il nome del runbook da avviare. Se un runbook dispone di parametri di input, allora è possibile fornire valori per tali parametri.
Seleziona Nuovo passaggio e aggiungi l'operazione Ottieni l'output del processo. Selezionare la stessa Sottoscrizione, lo stesso Gruppo di Risorse, lo stesso Account di Automazione del passaggio precedente e selezionare il valore dinamico dell'ID processo dal 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 genera automaticamente lo schema analizzare JSON da un payload di esempio, assicurarsi di considerare che lo script di PowerShell potrebbe restituire null; potrebbe essere necessario modificare alcuni
"type": "string"
in"type": ["string", "null"]
nello schema.
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 la schermata Certificati visualizza 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 di Automazione di Azure.