Benutzer-Sync-Skript über Azure Runbook Automation

Einrichten des Azure Automation Account Runbooks

Azure-Runbooks sind Teil des Azure-Automatisierungsdienstes, mit dem Sie häufige, zeitaufwändige und fehleranfällige Cloud-Verwaltungsaufgaben automatisieren können. Eine der verschiedenen Arten von Runbooks ist PowerShell, die wir für unsere Benutzersynchronisierung verwenden. Das Skript im Runbook kann direkt im Runbook aus dem Azure-Portal bearbeitet oder aus einem Texteditor in das Azure Automation Runbook importiert werden.

Um das PowerShell Runbook nutzen zu können, muss ein Azure Automation Account erstellt werden, wie in der Anleitung beschrieben: Schnellstart - Erstellen eines Azure Automation-Kontos über das Portal | Microsoft Learn

Aktivieren Sie Managed Identity für das Azure Automation-Konto

Wenn Sie das Automatisierungskonto bereits erstellt haben, folgen Sie den nächsten Schritten, um Managed Identity zu aktivieren, wenn Sie zu Ihrer Azure-Automatisierungsressource gehen:

  • Klicken Sie im linken Bereich auf Identität.
  • Stellen Sie sicher, dass die Registerkarte "System zugewiesen" ausgewählt ist.
  • Umschalten des Status von 'aus' auf 'ein'
  • Kopieren Sie die ID des Objekts (Auftraggebers) in einen Notizblock. Diese wird später verwendet.
  • Klicken Sie auf Speichern.

Erteilen von Berechtigungen für die verwaltete Identität

Wenn eine verwaltete Identität erstellt wird, beginnt sie mit einem unbeschriebenen Blatt und ohne Berechtigungen. Das bedeutet, dass Sie den Ressourcen, mit denen sie interagieren soll, Berechtigungen erteilen müssen. In unserem Fall müssen wir der verwalteten Identität unseres Automation-Kontos Zugriff auf das Lesen und die Ausführung von Aufträgen aus dem Azure Automation Runbook gewähren. Noch wichtiger ist, dass wir wissen müssen, wie wir der verwalteten Identität Berechtigungen für die Graph-API erteilen. Da Azure Automation Runbooks kein Geheimnis oder Zertifikat benötigen, um sich mit Graph API zu verbinden, ist dies der ideale und sicherste Weg, da wir Azure den gesamten Authentifizierungsprozess in der Cloud überlassen. Auf der Registerkarte "Identität":

  • Öffnen Sie das Terminal der Cloud-Shell
  • Connect-AzureAD-Befehl ausführen
  • Run $ServicePrincipalId = '041faf65-xxxx-xxxx-xxxx-xxxxxxxxxxxx' - Füllen Sie die Objektprinzipal-ID, die Sie zuvor kopiert haben
  • Run $GraphResource = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000′"
  • ausführen.

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

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

  • ausführen.

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

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

  • ausführen.

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

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

Nach der Ausführung der Befehle können die für den Dienstprinzipal gewährten Berechtigungen angezeigt werden

  • Azure AD
  • Unternehmensanwendungen
  • Der Name der Anwendung sollte das Automatisierungskonto sein.
  • Wählen Sie in der linken Bildlaufleiste die Option Berechtigungen

Installieren Sie die erforderlichen Module für das Runbook

Damit das Skript ordnungsgemäß ausgeführt werden kann, müssen eine Reihe von Modulen für das Runbook installiert werden.

Das Modul ist im Automatisierungskonto zu finden:

  • Klicken Sie im linken Fensterbereich auf Module

  • Klicken Sie auf Galerie durchsuchen

  • Suchen und wählen Sie die folgenden Module
    • BrightBookingUserAdminTools - Tags: GoBright BrightBooking aktives-Verzeichnis azuread PSModul
    • Microsoft.Graph.Anwendungen
    • Microsoft.Graph.Authentifizierung
    • Microsoft.Graph.Gruppen
    • Microsoft.Graph.Identity.DirectoryManagement
    • Microsoft.Graph.Benutzer
    • Microsoft.Graph - Diese Aufgabe zuletzt erledigen
  • Wählen Sie die Laufzeitversion 7.2
  • Klicken Sie auf Importieren

Erstellen des Runbooks und des Skripts

In diesem Abschnitt wird das Runbook erstellt und das User Sync Script und der Zeitplan konfiguriert

  • Wählen Sie im linken Bereich des Automatisierungskontos Runbooks
  • Ein Runbook erstellen
  • Schreiben Sie den Namen für Ihr Runbook
  • Powershell-Typ auswählen
  • Version 7.2 auswählen
  • erstellen.

Wenn das erstellte Runbook ausgewählt ist, drücken Sie auf Bearbeiten, Im Portal bearbeiten.

Fügen Sie das folgende Skript hinzu, ändern Sie die Angaben in den Klammern und veröffentlichen Sie es anschließend.

Sie können auch das Testfenster auswählen und den Test des Skripts starten, um zu sehen, ob es richtig funktioniert.

#Abrufen des Tokens mit einer verwalteten Identität und Verbindung zum Graphen mit diesem 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 += '[Ihr AzureAD-Gruppenname hier]'

# Liste der Userid's in der Gruppe erhalten

$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) {

$Benutzer_in_Gruppen_Benutzernamen += $Gruppenmitglied.Id

}

}

# die erforderlichen Details dieser Benutzer abrufen

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

$Benutzer = $Benutzer_full_list | Where-Object { $Benutzer_in_groups_userids -enthält $_.Id }

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

# Definition der Zuordnung von Gruppen zu Rollen

$groupToRoleMapping = @()

$groupToRoleMapping += @ # Übereinstimmung mit bestimmten Benutzern, die einer Gruppe angehören, für Meet-Work-Visit

$$users | Push-AzureADUsersToBB -DeactivateExistingUsersInSameIntegrationThatAreNotLoaded -BrightBookingApiUrl '[API-URL]' -BrightBookingApiKey '[API-Schlüssel]' -BrightBookingIntegrationName '[Name der Integration, wie in Admin center > Integrations erstellt]'

Erstellen einer geplanten Aufgabe für das Runbook

Wählen Sie innerhalb des erstellten Runbooks auf der linken Seite Zeitpläne

  • Einen Zeitplan hinzufügen
  • Zeitplan - Verknüpfen Sie einen Zeitplan mit Ihrem Runbook
  • Einen Zeitplan hinzufügen
  • Name des Zeitplans
  • Beschreibung
  • Startdatum/Uhrzeit des Zeitplans
  • Wiederholung hinzufügen
  • Verfallsdatum
  • erstellen.

Kehren Sie zum Runbook zurück und wählen Sie im oberen Bereich Link to Schedule und Select the created Schedule.

Dieser Artikel stammt aus dem Help Center von GoBright.

Originalartikel ansehen

FAQ

Fragen Sie uns alles! Hier finden Sie die Antworten auf die am häufigsten gestellten Fragen.

Durchsuchen Sie die FAQs

Hilfe-Center

Eine Fundgrube für alle IT- und Facility-Manager. Tauchen Sie ein in die technischen Details unserer Produkte und Lösungen.

Besuchen Sie das Help Center

Newsletter

Möchten Sie über alle Entwicklungen im Smart Office und unsere neuen Funktionen informiert werden? Abonnieren Sie jetzt unseren Newsletter.

Jetzt abonnieren