Brukersynkroniseringsskript via Azure Runbook Automation

1. Sette opp Azure Automation Account Runbook

Azure Runbooks er en del av Azure Automation-tjenesten som lar deg automatisere hyppige, tidkrevende og feilutsatte skyadministrasjonsoppgaver. En av flere typer runbooks er PowerShell, som er det vi bruker for vår brukersynkronisering. Skriptet i Runbook kan redigeres direkte i Runbook fra Azure Portal eller importeres fra et tekstredigeringsprogram til Azure Automation Runbook.

For å begynne å bruke PowerShell Runbook, må en Azure Automation-konto opprettes ved å følge veiledningen: Hurtigstart – Opprett en Azure Automation-konto ved hjelp av portalen | Microsoft Lær

2. Aktiver administrert identitet for Azure Automation-kontoen

Hvis du allerede har opprettet automatiseringskontoen, følger du de neste trinnene for å aktivere administrert identitet når du går til Azure Automation-ressursen din:

  • Klikk på Identitet i venstre rute.
  • Sørg for at kategorien Systemtilordnet er valgt
  • Bytt status fra "av" til "på"
  • Kopier objektets (hoved)-ID til en notisblokk. Denne vil bli brukt senere.
  • Klikk Lagre .

3. Gi tillatelser til den administrerte identiteten

Når en administrert identitet opprettes, starter den med blanke ark og ingen tillatelser. Dette betyr at du må gi tillatelser til ressursene den trenger å samhandle med. I vårt tilfelle må vi gi den administrerte identiteten fra vår Automation-konto tilgang til å lese og kjøre jobber fra Azure Automation Runbook. Enda viktigere er det at vi må vite hvordan vi gir den administrerte identiteten tillatelser til Graph API. Siden Azure Automation Runbooks ikke krever en hemmelighet eller et sertifikat for å koble til Graph API, er dette den ideelle og sikreste måten, siden vi lar Azure håndtere all autentiseringsprosessen i skyen. I Identitet-fanen:

  • Åpne cloud shell-terminalen
  • Kjør følgende kommandoer
Connect-AzureAD
$ServicePrincipalId = '041faf65-xxxx-xxxx-xxxx-xxxxxxxxxxxx' #fill the Object principal ID that you copied before
$GraphResource = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
  • Løp
$Permission1 = $GraphResource.AppRoles | Where-Object {$_.value -eq 'User.Read.All'} New-AzureADServiceAppRoleAssignment -ObjectId $ServicePrincipalId -PrincipalId $ServicePrincipalId -Id $Permission1.Id -ResourceId $GraphResource.ObjectId
  • Løp
$Permission2 = $GraphResource.AppRoles | Where-Object {$_.value -eq 'Group.Read.All'} New-AzureADServiceAppRoleAssignment -ObjectId $ServicePrincipalId -PrincipalId $ServicePrincipalId -Id $Permission2.Id -ResourceId $GraphResource.ObjectId
  • Løp
$Permission3 = $GraphResource.AppRoles | Where-Object {$_.value -eq 'GroupMember.Read.All'} New-AzureADServiceAppRoleAssignment -ObjectId $ServicePrincipalId -PrincipalId $ServicePrincipalId -Id $Permission3.Id -ResourceId $GraphResource.ObjectId

Etter å ha kjørt kommandoene kan tillatelsene som er gitt for Service Principal sees

  • Azure AD
  • Enterprise-applikasjoner
  • Programnavnet skal være navnet på den opprettede automatiseringskontoen
  • Velg Tillatelser på venstre rullepanel

4. Installer de nødvendige modulene for Runbook

For at skriptet skal kjøre ordentlig, må et par nødvendige moduler installeres for Runbook.

Modulen finner du i automatiseringskontoen:

  • Klikk på Moduler i venstre rute

  • Klikk Bla gjennom Galleri

  • Søk og velg følgende moduler
    • BrightBookingUserAdminTools – Tags: GoBright BrightBooking active-directory azuread PSModule
    • Microsoft.Graph.-applikasjoner
    • Microsoft.Graph.Autentisering
    • Microsoft.Graph.Groups
    • Microsoft.Graph.Identity.DirectoryManagement
    • Microsoft.Graph.-brukere
    • Microsoft.Graph – Gjør dette til slutt
  • Velg Runtime versjon 7.2
  • Klikk Importer

5. Lag Runbook og skript

I denne delen vil Runbook bli opprettet og User Sync Script og Schedule konfigurert

  • Velg Runbooks på venstre panel av automatiseringskontoen
  • Lag en Runbook
  • Skriv navnet på din Runbook
  • Velg Powershell-type
  • Velg 7.2 versjon
  • Skape

Når den opprettede Runbook er valgt, trykk Rediger , Rediger i Portal .

Legg til følgende skript og endre detaljene i parentes og publiser det når du er ferdig.

Du kan også velge testruten og starte testen av skriptet for å se om det fungerer som det skal.

#Get the token using a managed identity and connect to graph using that 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 $includedGroups = @() $includedGroups += '[your AzureAD groupname here]' # get the list of userid's in the group $groups = Get-MgGroup -All | Where-Object { $includedGroups -contains $_.DisplayName } $users_in_groups_userids = @(); Foreach ($group in $groups) { $groupMembers = Get-MgGroupMember -All -GroupID $group.id Foreach ($groupMember in $groupMembers) { $users_in_groups_userids += $groupMember.Id } } # get the required details of those users $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 "Loaded from AzureAD: $(($users | Measure-Object).Count) users" # define the mapping of groups to roles $groupToRoleMapping = @() $groupToRoleMapping += @ # match specific users that belong to a group for Meet-Work-Visit $users | Push-AzureADUsersToBB -DeactivateExistingUsersInSameIntegrationThatAreNotLoaded -GroupUserRoleMapping $groupToRoleMapping -BrightBookingApiUrl '[API url]' -BrightBookingApiKey '[API key]' -BrightBookingIntegrationName '[name of integration as created in Admin center > Integrations]'

6. Lag en planlagt oppgave for Runbook

Velg Tidsplaner i den opprettede Runbook på venstre panel

  • Legg til en tidsplan
  • Tidsplan – Koble en tidsplan til Runbook-en din
  • Legg til en tidsplan
  • Navn på timeplanen
  • Beskrivelse
  • Startdato/tidspunkt for timeplanen
  • Legg til gjentakelse
  • Utløp
  • Skape

Gå tilbake til Runbook og på topppanelet velg Link to Schedule og velg den opprettede Schedule.

7. Opprett et metrisk varsel for å bli varslet når Runbook-jobben mislykkes

Azure Automation har muligheten til å sjekke om en Runbook Job/Schedule ikke har kjørt, og du kan opprette et tilpasset varsel for en gruppe som skal varsles når det skjer. Du kan finne hvordan du gjør det i følgende artikkel: Azure Automation Metric Alert

Denne artikkelen kommer fra hjelpesenteret til GoBright .

Se originalartikkelen
GoBright vil være til stede på The Workplace Event i Birmingham; fra 28. til 30. april 2026 - stand 3A/w12

Bli med Chris Wiegeraad på Workplace Leaders' Summit 29. april kl. 11:20.

Registrer deg nå! TWE 2026
Chris The Workplace-arrangementet Workplace Leaders Summit