Script di sincronizzazione utente tramite Azure Runbook Automation

Impostazione del runbook dell'account di automazione di Azure

I runbook di Azure fanno parte del servizio Azure Automation che consente di automatizzare attività di gestione del cloud frequenti, lunghe e soggette a errori. Uno dei vari tipi di runbook è PowerShell, che è quello che utilizziamo per la sincronizzazione degli utenti. Lo script del runbook può essere modificato direttamente dal portale Azure o importato da un editor di testo nel runbook di Azure Automation.

Per iniziare a utilizzare il Runbook PowerShell, è necessario creare un account Azure Automation seguendo la guida: Guida rapida - Creare un account Azure Automation utilizzando il portale | Microsoft Learn

Abilitare l'identità gestita per l'account Azure Automation

Se l'account di automazione è già stato creato, quando si accede alla risorsa Azure Automation, seguire i passaggi successivi per abilitare la Managed Identity:

  • Fare clic su Identità nel riquadro di sinistra.
  • Assicurarsi che sia selezionata la scheda Sistema assegnato
  • Commuta lo stato da "off" a "on".
  • Copiare l'ID dell'oggetto (principale) in un blocco note. Verrà utilizzato in seguito.
  • Fare clic su Salva.

Concessione dei permessi all'identità gestita

Quando viene creata un'identità gestita, essa inizia con una tabula rasa e senza autorizzazioni. Ciò significa che è necessario concedere le autorizzazioni alle risorse con cui deve interagire. Nel nostro caso, dobbiamo concedere all'identità gestita del nostro account Automation l'accesso alla lettura e all'esecuzione di lavori dal Runbook di Azure Automation. Ancora più importante, dobbiamo sapere come concedere all'identità gestita le autorizzazioni per Graph API. Poiché i runbook di Azure Automation non richiedono un segreto o un certificato per connettersi a Graph API, questo è il modo ideale e più sicuro, poiché lasciamo che Azure gestisca tutto il processo di autenticazione nel cloud. Nella scheda Identità:

  • Aprire il terminale della shell del cloud
  • Eseguire il comando Connect-AzureAD
  • Eseguire $ServicePrincipalId = '041faf65-xxxx-xxxx-xxxx-xxxxxxxx' - inserire l'ID del principale dell'oggetto copiato prima
  • Eseguire $GraphResource = Get-AzureADServicePrincipal -Filtro "AppId eq '00000003-0000-0000-c000-000000000000′"
  • Correre

$Permission1 = $GraphResource.AppRoles | Where-Object {$_.value -eq 'User.Read.All'}

New-AzureADServiceAppRoleAssignment -ObjectId $ServicePrincipalId -PrincipalId $ServicePrincipalId -Id $Permission1.Id -ResourceId $GraphResource.ObjectId

  • Correre

$Permission2 = $GraphResource.AppRoles | Where-Object {$_.value -eq 'Group.Read.All'}

New-AzureADServiceAppRoleAssignment -ObjectId $ServicePrincipalId -PrincipalId $ServicePrincipalId -Id $Permission2.Id -ResourceId $GraphResource.ObjectId

  • Correre

$Permission3 = $GraphResource.AppRoles | Where-Object {$_.value -eq 'GroupMember.Read.All'}

New-AzureADServiceAppRoleAssignment -ObjectId $ServicePrincipalId -PrincipalId $ServicePrincipalId -Id $Permission3.Id -ResourceId $GraphResource.ObjectId

Dopo aver eseguito i comandi, è possibile visualizzare le autorizzazioni concesse per il Service Principal

  • Azure AD
  • Applicazioni aziendali
  • Il nome dell'applicazione deve essere l'account di automazione
  • Selezionare Autorizzazioni nel pannello di scorrimento a sinistra.

Installare i moduli necessari per il runbook

Affinché lo script venga eseguito correttamente, è necessario installare un paio di moduli necessari per il Runbook.

Il modulo si trova nell'account di automazione:

  • Nel riquadro di sinistra fare clic su Moduli

  • Fare clic su Sfoglia galleria

  • Cercare e selezionare i seguenti moduli
    • BrightBookingUserAdminTools - Tags: GoBright BrightBooking active-directory azuread PSModule
    • Microsoft.Graph.Applications
    • Microsoft.Graph.Authentication
    • Microsoft.Graph.Groups
    • Microsoft.Graph.Identity.DirectoryManagement
    • Microsoft.Graph.Users
    • Microsoft.Graph - Fate questo per ultimo
  • Scegliere la versione del runtime 7.2
  • Fare clic su Importa

Creare il runbook e lo script

In questa sezione viene creato il Runbook e vengono configurati lo Script di sincronizzazione utente e la Pianificazione.

  • Nel pannello di sinistra dell'account di automazione selezionare Runbook.
  • Creare un Runbook
  • Scrivere il nome del Runbook
  • Selezionare il tipo di Powershell
  • Selezionare la versione 7.2
  • Creare

Una volta selezionato il Runbook creato, premere Modifica, Modifica nel portale.

Aggiungete il seguente script e modificate i dettagli nelle parentesi e pubblicatelo una volta terminato.

È inoltre possibile selezionare il riquadro di prova e avviare il test dello script per vedere se funziona correttamente.

#Ottenere il token usando un'identità gestita e connettersi al grafo usando quel token

Connect-AzAccount -Identity -ErrorAction Stop | Out-Null

$AccessToken = Get-AzAccessToken -ResourceTypeName MSGraph -ErrorAction Stop | select -ExpandProperty Token | ConvertTo-SecureString -AsPlainText -Force

Connect-Graph -AccessToken $AccessToken -ErrorAction Stop | Out-Null

$gruppiinclusi = @()

$includedGroups += '[il nome del vostro gruppo AzureAD qui]'

# ottenere l'elenco degli userid del gruppo

$gruppi = Get-MgGroup -All | Where-Object { $includedGroups -contains $_.DisplayName }

$users_in_groups_userids = @();

Foreach ($gruppo in $gruppi) {

$groupMembers = Get-MgGroupMember -All -GroupID $group.id

Foreach ($groupMember in $groupMembers) {

$users_in_groups_userids += $groupMember.Id

}

}

# ottenere i dettagli richiesti di questi utenti

$users_full_list = Get-MgUser -All -Select Id,DisplayName,Mail,UserPrincipalName,AccountEnabled,MobilePhone,AssignedLicenses

$users = $users_full_list | Where-Object { $users_in_groups_userids -contains $_.Id }

Write-Output "Caricato da AzureAD: $(($utenti | Measure-Object).Count) utenti"

# Definire la mappatura dei gruppi con i ruoli

$groupToRoleMapping = @()

$groupToRoleMapping += @ # corrisponde a utenti specifici che appartengono a un gruppo per Meet-Work-Visit

$$users | Push-AzureADUsersToBB -DeactivateExistingUsersInSameIntegrationThatAreNotLoaded -BrightBookingApiUrl '[API url]' -BrightBookingApiKey '[API key]' -BrightBookingIntegrationName '[nome dell'integrazione come creato in Admin center > Integrazioni]'

Creare un'attività pianificata per il Runbook

All'interno del Runbook creato, nel pannello di sinistra, selezionare Pianificazioni.

  • Aggiungere un programma
  • Pianificazione: consente di collegare una pianificazione al Runbook.
  • Aggiungere un programma
  • Nome del programma
  • Descrizione
  • Data/ora di inizio della pianificazione
  • Aggiungi ricorrenza
  • Scadenza
  • Creare

Tornare al Runbook e nel pannello superiore selezionare Link to Schedule e selezionare la pianificazione creata.

Questo articolo proviene dal Centro assistenza di GoBright.

Visualizza l'articolo originale

FAQ

Chiedici qualsiasi cosa! Trova le risposte alle domande più frequenti qui.

Sfoglia le FAQ

Centro assistenza

Una miniera d'oro per tutti gli IT e Facility Manager. Immergiti negli aspetti tecnici dei nostri prodotti e soluzioni.

Visitate il Centro assistenza

Newsletter

Vuoi essere informato su tutti gli sviluppi dello smart office e sulle nostre nuove funzionalità? Iscriviti ora.

Iscriviti ora