Gebruikerssynchronisatie via Azure Runbook Automation

Het Azure Automation Account Runbook instellen

Azure Runbooks maken deel uit van de Azure Automation-service waarmee je veelvoorkomende, tijdrovende en foutgevoelige cloudbeheertaken kunt automatiseren. Een van de verschillende soorten runbooks is PowerShell, dat we gebruiken voor onze gebruikerssynchronisatie. Het script in het runbook kan direct worden bewerkt in het runbook vanuit het Azure-portaal of geïmporteerd vanuit een teksteditor in het Azure Automation runbook.

Om het PowerShell Runbook te kunnen gebruiken, moet een Azure Automation Account worden aangemaakt volgens de handleiding: Snelstart - Maak een Azure Automation-account aan via de portal | Microsoft Learn

Managed Identity inschakelen voor het Azure Automation-account

Als je de Automation Account al hebt aangemaakt, volg dan de volgende stappen om Managed Identity in te schakelen wanneer je naar je Azure Automation resource gaat:

  • Klik op Identity aan de linkerkant.
  • Zorg ervoor dat het tabblad Systeem toegewezen is geselecteerd
  • Schakel de status van 'uit' naar 'aan'.
  • Kopieer het object (principal) ID naar een kladblok. Dit wordt later gebruikt.
  • Klik op Opslaan.

Rechten toekennen aan de beheerde identiteit

Wanneer een beheerde identiteit wordt aangemaakt, begint deze met een schone lei en zonder permissies. Dit betekent dat je permissies moet toekennen aan de bronnen waarmee het moet communiceren. In ons geval moeten we de beheerde identiteit van ons Automation-account toegang geven om taken te lezen en uit te voeren vanuit het Azure Automation Runbook. Nog belangrijker is dat we moeten weten hoe we de beheerde identiteit rechten kunnen geven op de Graph API. Aangezien Azure Automation Runbooks geen geheim of certificaat nodig hebben om verbinding te maken met Graph API, is dit ideaal en de meest veilige manier omdat we Azure al het authenticatieproces in de cloud laten afhandelen. In de Identity tab:

  • Open de cloud shell-terminal
  • Voer het Connect-AzureAD commando uit
  • Voer $ServicePrincipalId = '041faf65-xxxx-xxxx-xxxx-xxxx-xxxxxxxx' uit - vul de Object principal ID in die u eerder hebt gekopieerd
  • Voer $GraphResource = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000′" uit.
  • Ren

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

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

  • Ren

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

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

  • Ren

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

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

Na het uitvoeren van de commando's kunnen de toegekende machtigingen voor de Service Principal worden bekeken

  • Azure AD
  • Bedrijfstoepassingen
  • De applicatienaam moet de automatiseringsaccount zijn
  • Selecteer Machtigingen in het linker scrollpaneel

De benodigde modules voor het runbook installeren

Om het script goed te laten draaien, moeten er een paar vereiste modules worden geïnstalleerd voor het Runbook.

De module kan worden gevonden in het Automatiseringsaccount:

  • Klik in het linkerdeelvenster op Modules

  • Klik op Galerij doorbladeren

  • Zoek en selecteer de volgende modules
    • BrightBookingUserAdminTools - Tags: GoBright BrightBooking active-directory azuread PSModule
    • Microsoft.Graph.Toepassingen
    • Microsoft.Graph.Authenticatie
    • Microsoft.Graph.Groups
    • Microsoft.Graph.Identity.DirectoryManagement
    • Microsoft.Graph.Gebruikers
    • Microsoft.Graph - Doe deze als laatste
  • Kies de Runtime-versie 7.2
  • Klik op Importeren

Het runbook en het script maken

In dit gedeelte wordt het runbook aangemaakt en worden het gebruikerssynchronisatiescript en de planning geconfigureerd.

  • Selecteer in het linkerpaneel van de Automatiseringsaccount de optie Runbooks
  • Een runbook maken
  • Schrijf de naam voor je runbook
  • Selecteer Powershell type
  • Selecteer versie 7.2
  • Maak

Wanneer het aangemaakte runbook is geselecteerd, druk op Bewerken, Bewerken in portaal.

Voeg het volgende script toe en wijzig de details tussen haakjes en publiceer het als het klaar is.

Je kunt ook het testvenster selecteren en het script testen om te zien of het goed werkt.

#Verkrijg het token met behulp van een beheerde identiteit en maak verbinding met de grafiek met dat 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 += '[uw AzureAD groepsnaam hier]'.

# de lijst met gebruikers in de groep krijgen

$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

}

}

# de vereiste gegevens van die gebruikers krijgen

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

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

Write-Output "Geladen van AzureAD: $(($users | Measure-Object).Count) gebruikers".

# de toewijzing van groepen aan rollen definiëren

$groupToRoleMapping = @()

$groupToRoleMapping += @ # match specifieke gebruikers die tot een groep behoren voor Ontmoet-werkbezoek

$$users | Push-AzureADUsersToBB -DeactivateExistingUsersInSameIntegrationThatAreNotLoaded -BrightBookingApiUrl '[API url]' -BrightBookingApiKey '[API key]' -BrightBookingIntegrationName '[naam van integratie zoals aangemaakt in Beheercentrum > Integraties]'.

Een geplande taak voor het runbook maken

Selecteer in het aangemaakte runbook aan de linkerkant Schema's

  • Een schema toevoegen
  • Schema - Een schema koppelen aan je runbook
  • Een schema toevoegen
  • Naam van het schema
  • Beschrijving
  • Startdatum/tijd van de planning
  • Herhaling toevoegen
  • Vervaldatum
  • Maak

Ga terug naar het runbook en selecteer in het bovenste paneel Link to Schedule en selecteer de gemaakte Schedule.

Dit artikel komt uit het Helpcentrum van GoBright.

Bekijk origineel artikel

Vragen? Ga naar onze FAQ

Heb je een vraag? Hier vind je de antwoorden op de meest gestelde vragen.

Blader door de FAQ's

Help Center

Een goudmijn voor alle IT en Facility Managers. Verdiep je in de technische details van onze producten en oplossingen.

Bezoek het Helpcentrum

Nieuwsbrief

Wil je op de hoogte blijven van alle Smart Office ontwikkelingen en onze oplossingen? Schrijf je dan nu in.

Nu abonneren