Share via


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 supporta l'autenticazione basata su certificati e le autorizzazioni dell'applicazione, pertanto è possibile disporre di Automazione di Azure runbook autenticarsi 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

I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.

Automazione di Azure fornisce un ambiente ospitato nel cloud per l'esecuzione di 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

  1. 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.

  2. 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.

  3. Dopo aver creato l'account Automazione di Azure, selezionare Controllo di accesso (IAM). Selezionare quindi Visualizza in Visualizza l'accesso a questa risorsa. Questi utenti e entità servizio saranno successivamente in grado di interagire con il servizio Microsoft tramite gli script da creare in tale account Automazione di Azure.

  4. Esaminare gli utenti e le entità servizio elencati e assicurarsi che siano autorizzati. Rimuovere tutti gli utenti non autorizzati.

Creare una coppia di chiavi autofirmato 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 un certificato ricevuto da un'autorità di certificazione, passare alla sezione successiva.

Per generare un certificato autofirmato,

  1. Seguire le istruzioni in come creare un certificato autofirmato, opzione 2, per creare ed esportare un certificato con la relativa chiave privata.

  2. Visualizzare l'identificazione personale del certificato.

     $cert | ft Thumbprint
    
  3. 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 .pfx file 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 .pfx file e la usa per l'autenticazione in Microsoft Graph.

  1. Nel portale di Azure per l'account Automazione di Azure selezionare Certificati e Aggiungi un certificato.

  2. Caricare il .pfx file creato in precedenza e digitare la password specificata al momento della creazione del file.

  3. Dopo il caricamento della chiave privata, registrare la data di scadenza del certificato.

  4. È ora possibile eliminare il .pfx file dal computer locale. Tuttavia, non eliminare ancora il .crt file, perché questo file è 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.

  1. Nel portale di Azure per l'account Automazione di Azure selezionare Moduli e quindi Sfoglia raccolta.

  2. 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. Dopo aver selezionato OK, l'importazione di un modulo può richiedere alcuni minuti. 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.

  3. 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.

  4. 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.

  5. Importare altri moduli che lo script potrebbe richiedere, ad esempio Microsoft.Graph.Users. Ad esempio, se si usa Identity 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 nell'ID Microsoft Entra, in modo che Microsoft Entra ID riconosca il certificato del runbook Automazione di Azure per l'autenticazione.

Ruolo prerequisito: global Amministrazione istrator o altri amministratori che possono fornire il consenso delle applicazioni alle autorizzazioni dell'applicazione

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come global Amministrazione istrator.

  2. Passare a >Applicazioni> di identità>Registrazioni app.

  3. Seleziona Nuova registrazione.

  4. Digitare un nome per l'applicazione e selezionare Registra.

  5. 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.

  6. Selezionare Certificati e segreti e Carica certificato.

  7. Caricare il .crt file creato in precedenza.

  8. Selezionare Autorizzazioni API e Aggiungere un'autorizzazione.

  9. Selezionare Microsoft Graph e Autorizzazioni dell'applicazione.

  10. 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; È invece possibile assegnare l'entità servizio al ruolo proprietario catalogo o lettore catalogo del 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 la protezione delle identità, è necessario aggiungere l'autorizzazione IdentityRiskyUser.Read.All .
  11. Selezionare Concedi autorizzazioni di amministratore per concedere all'app tali autorizzazioni.

Creare variabili di Automazione di 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.

  1. Nel portale di Azure tornare all'account Automazione di Azure.

  2. Selezionare Variabili e Aggiungi variabile.

  3. Creare una variabile denominata Identificazione personale. Digitare, come valore della variabile, l'identificazione personale del certificato generata in precedenza.

  4. Creare una variabile denominata ClientId. Digitare, come valore della variabile, l'ID client per l'applicazione registrata in Microsoft Entra ID.

  5. 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 usando il certificato creato in precedenza abbia esito positivo.

  1. Selezionare Runbook e Crea un runbook.

  2. Digitare il nome del runbook, selezionare PowerShell come tipo di runbook da creare e selezionare Crea.

  3. Dopo aver creato il runbook, viene visualizzato un riquadro di modifica del testo che consente di digitare il codice sorgente di PowerShell del runbook.

  4. 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
  1. Selezionare Il riquadro Test e selezionare Avvia. Attendere alcuni secondi per il completamento dell'elaborazione Automazione di Azure dello script del runbook.

  2. 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 usare Entitlement Management

Se la registrazione dell'app per il runbook dispone delle autorizzazioni EntitlementManagement.Read.All o EntitlementManagement.ReadWrite.All , può usare le API di gestione entitlement.

  1. 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
}
  1. Selezionare Il riquadro Test e selezionare Avvia. Attendere alcuni secondi per il completamento dell'elaborazione Automazione di Azure dello script del runbook.

  2. Se l'esecuzione ha esito positivo, l'output anziché il 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 Param sezione 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.

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.

Analizzare l'output di un account Automazione di Azure in App per la logica (facoltativo)

Dopo la pubblicazione del 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, perché App per la logica può anche analizzare i risultati.

  1. In App per la logica di Azure creare un'app per la logica in Progettazione app per la logica a partire dalla ricorrenza.

  2. 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.

  3. Aggiungere il nome del runbook del parametro e digitare il nome del runbook da avviare. Se il runbook include parametri di input, è possibile specificare i valori.

  4. 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 processo nel passaggio precedente.

  5. È 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 il Analizzare lo schema JSON da un payload di esempio, assicurarsi di tenere conto dello script di PowerShell che potenzialmente restituisce Null. Potrebbe essere necessario modificare parte di "type": ​"string" in "type": [​"string",​ "null"​] in nello schema.

In Automazione di Azure, un runbook di PowerShell può non essere completato se tenta di scrivere una grande quantità di dati nel flusso di output contemporaneamente. In genere è possibile risolvere questo problema visualizzando l'output del runbook solo le informazioni necessarie per l'app per la logica, ad esempio usando il Select-Object -Property cmdlet per escludere le proprietà non necessarie.

Pianificare l'aggiornamento del certificato

Se è stato creato un certificato autofirmato seguendo i passaggi precedenti per l'autenticazione, tenere presente che il certificato ha una durata limitata prima della scadenza. È necessario rigenerare il certificato e caricare il nuovo certificato prima della data di scadenza.

Ci sono due posizioni in cui è possibile visualizzare la data di scadenza nel portale di Azure.

  • 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.

Passaggi successivi