# Azure Automation verbinden

## Übersicht

{% embed url="<https://www.youtube.com/watch?v=Ijp9XnE8UuA>" %}

Um dem RealmJoin Portal die Bereitstellung [von Runbooks ](https://docs.realmjoin.com/de/automatisierung/runbooks)zur Automatisierung täglicher Aufgaben zu ermöglichen, müssen Sie ein [Azure Automation](https://learn.microsoft.com/en-us/azure/automation/overview) Account verbinden. Dieses Automation Account dient als Host für Ihre Runbooks und stellt die [Berechtigungen](https://docs.realmjoin.com/de/automatisierung/connecting-azure-automation/azure-ad-roles-and-permissions) bereit, die erforderlich sind, damit die Runbooks in Ihrer Umgebung funktionieren.

## Hinweise&#x20;

Das [Managed Identity](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) des Automation Account erfordert umfassende [Berechtigungen ](https://docs.realmjoin.com/de/automatisierung/connecting-azure-automation/azure-ad-roles-and-permissions)Berechtigungen in Ihrer Umgebung, etwa die Möglichkeit, Gruppen- oder Benutzerobjekte in Entra ID zu ändern oder Postfächer in Exchange Online zu verwalten. Beschränken Sie den administrativen Zugriff auf dieses Konto, um einen Missbrauch dieser Berechtigungen zu verhindern.

Bei der Verwendung eines vorhandenen Automation Account beachten Sie, dass RealmJoin Portal automatisch Runbooks erstellt, aktualisiert und entfernt, die aus dem [gemeinsamen Online-Repository für Runbooks](https://github.com/realmjoin/realmjoin-runbooks)stammen. Diese Funktion wird in einem vorhandenen Automation Account möglicherweise nicht unterstützt. Wenn Sie unsicher sind, empfehlen wir, ein dediziertes Azure Automation Account für RealmJoin Runbooks zu erstellen.

## Voraussetzungen

* Global Administrator-Berechtigungen
* Zugriff auf PowerShell mit dem [Az](https://learn.microsoft.com/en-us/powershell/azure/?view=azps-15.3.0) Modul oder [AZ CLI](https://learn.microsoft.com/en-us/cli/azure/?view=azure-cli-latest)
* Contributor-Berechtigungen für ein Azure-Abonnement
* [Runbook-Anforderungen](https://docs.realmjoin.com/de/automatisierung/connecting-azure-automation/azure-ad-roles-and-permissions)

## Anweisungen

{% stepper %}
{% step %}

### Ein Azure Automation Account erstellen

1. Navigieren Sie zu Ihrem [Azure Portal > Automation Accounts](https://portal.azure.com/#create/Microsoft.AutomationAccount)&#x20;
2. Erstellen Sie ein neues Automation Account
3. Wählen Sie auf der Registerkarte „Basics“ das gewünschte Abonnement, die Ressourcengruppe, den Automation Account-Namen und die Region aus<br>

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FqjBLc2zH3XCCqfAViEsU%2Fimage.png?alt=media&#x26;token=257816e0-eb8a-478c-973f-fb288324d8c8" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Eine separate Ressourcengruppe für Ihr Automation Account wird empfohlen
{% endhint %}

4. Stellen Sie auf der Registerkarte „Advanced“ sicher, dass die systemseitig zugewiesene Managed Identity aktiviert ist

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F6EYSjUouHCtzNE99DYM8%2Fimage.png?alt=media&#x26;token=000d1f85-9ed0-458f-ae68-48b94f2dbf15" alt=""><figcaption></figcaption></figure>

5. Wählen Sie „Review + Create“ aus und erstellen Sie Ihr Automation Account

6. Navigieren Sie zu der Ressourcengruppe, die Ihr Azure Automation Account enthält

7. Weisen Sie im IAM-Tab das Azure Automation Account als Contributor zu
   {% endstep %}

{% step %}

### Berechtigungen für das Azure Automation Account zuweisen

Die gemeinsam genutzten Runbooks von RealmJoin verwenden die systemseitig zugewiesene Managed Identity von Azure Automation, um mit Entra ID, MS Graph API usw. zu interagieren.

Berechtigungen für die Managed Identity können derzeit nicht über das Azure Portal erteilt werden. Verwenden Sie Microsoft Graph oder PowerShell, um diese Berechtigungen zuzuweisen.

1. Laden Sie die folgenden PowerShell-Skripts und JSON-Dateien in denselben Ordner herunter. \
   Das Skript weist den vollständigen von RealmJoin erforderlichen Berechtigungssatz zu. Rollen und Berechtigungen können im [Anforderungen](https://docs.realmjoin.com/de/automatisierung/connecting-azure-automation/azure-ad-roles-and-permissions) Abschnitt überprüft und bei Bedarf in den JSON-Dateien angepasst werden.

{% tabs %}
{% tab title="GrantAppPermToEntApp.ps1" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/GrantAppPermToEntApp.ps1>" %}
{% endtab %}

{% tab title="AssignAzureADRoleToEntApp.ps1" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/AssignAzureADRoleToEntApp.ps1>" %}
{% endtab %}

{% tab title="RJvNextPermissions.json" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/RealmJoinVnext/RJvNextPermissions.json>" %}
{% endtab %}

{% tab title="RJvNextRoles.json" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/RealmJoinVnext/RJvNextRoles.json>" %}
{% endtab %}
{% endtabs %}

2. Notieren Sie sich die Objekt-ID der Managed Identity des Azure Automation Account unter Kontoeinstellungen > Identität

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F4ecZSM3NW9PWJJlaNmR4%2Fimage.png?alt=media&#x26;token=e5d5b56b-50f3-4f35-a41b-7cb4230dd3f3" alt=""><figcaption></figcaption></figure>

3. Öffnen Sie ein PowerShell-Fenster.

4. Navigieren Sie zu dem Ordner mit den heruntergeladenen Dateien

```
cd c:\temp\myfolder
```

5. Skripte bei Bedarf entsperren\
   ![](https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F2N1nXyV1f6allriXQ9Pb%2Fimage.png?alt=media\&token=e6009cd7-ec76-4af5-aa5c-037a92f958c7)
6. Weisen Sie Ihrem Azure Automation Account mit GrantAppPermToEntApp.ps1 MS Graph-Berechtigungen zu, und ersetzen Sie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx durch die Objekt-ID Ihres Automation Account

```
. .\GrantAppPermToEntApp.ps1 -enterpriseAppObjId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -permissionsTemplate .\RJvNextPermissions.json
```

7. Weisen Sie Ihrem Azure Automation Account mit AssignAzureADRoleToEntApp.ps1 Entra ID-Administratorrollen zu, und ersetzen Sie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx durch die Objekt-ID Ihres Automation Account

```
. .\AssignAzureADRoleToEntApp.ps1 -objectId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -rolesTemplate .\RJvNextRoles.json
```

8. Das Azure Automation Account sollte nun über die korrekten Berechtigungen verfügen, um Runbooks auszuführen<br>
   {% endstep %}

{% step %}

### RealmJoin Runbook Configuration - Teil 1

1. Gehen Sie im RealmJoin Portal zu '[Settings -> Runbooks](https://portal.realmjoin.com/settings/runbooks-configuration)'.<br>

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FsSQHQwy9pChGMyTtidTt%2Fimage.png?alt=media&#x26;token=7bcec1d0-fb94-4591-8012-011a62295674" alt=""><figcaption></figcaption></figure>
2. Füllen Sie die Tenant ID, Subscription ID und den Namen der Resource Group aus, die zum Azure Automation Account gehören\
   Die Tenant ID auf der [Entra ID Übersichtsseite](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview)

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F3MElTpxbL7jloR1y4i9U%2Fimage.png?alt=media&#x26;token=1b83cda8-7909-4739-a36d-7848c5d4f113" alt=""><figcaption></figcaption></figure>
3. Kopieren Sie das rote Skript darunter *ResourceGroup.*\
   Dieses Skript erstellt einen Service Principal in Entra ID mit Zugriff auf Ihr Automation Account und ermöglicht RealmJoin, Runbooks zu verwalten, auszuführen und zu überwachen.\
   Das Skript wird basierend auf den Eingaben für Tenant ID, Subscription ID und Resource Group aktualisiert.<br>

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FRoVmXCq53pQRPOdQQetg%2Fimage.png?alt=media&#x26;token=b53c79c3-cbac-4666-ad81-6d77ade1ad86" alt=""><figcaption></figcaption></figure>
4. Lassen Sie den Assistenten vorerst geöffnet. Wir kommen in Teil 2 gleich darauf zurück.
   {% endstep %}

{% step %}

### Zugriff für RealmJoin auf Azure Automation gewähren

{% hint style="info" %}
Sie können [Azure CloudShell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview)verwenden, sodass Sie keine lokale Kopie der AZ CLI installieren und authentifizieren müssen.
{% endhint %}

1. Führen Sie das zuvor kopierte Skript in PowerShell aus.

   <figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FylKg4jH8YJ6Cfeh6xF4z%2Fimage.png?alt=media&#x26;token=bdc3a594-0348-44f4-86be-de172247de67" alt=""><figcaption></figcaption></figure>

2. Notieren Sie sich die Werte für `appId` und `password`.\
   Die App Registration "RealmJoin Runbook Management" wird erstellt.<br>

   ![App Registrations im Azure Portal](https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FAfaE2Y9DISjOLNwwLnfs%2Fimage.png?alt=media\&token=8f0a83c6-34b0-4b82-87eb-279597cfc961)
   {% endstep %}

{% step %}

### RealmJoin Runbook Configuration - Teil 2

1. Kehren Sie im RealmJoin Portal zum geöffneten Fenster/Assistenten für '[Settings -> Runbooks](https://portal.realmjoin.com/settings/runbooks-configuration)'
2. Füllen Sie die fehlenden Werte für `appId` und `password` aus, die im letzten Schritt erstellt wurden
3. Füllen Sie den Namen des erstellten Automation Account aus [zuvor](#create-an-azure-automation-account)
4. Wählen Sie den Branch des gemeinsamen Runbook-Repositorys aus, dem Sie folgen möchten. \
   Wenn Sie unsicher sind, wählen Sie bitte `production` \
   Alle Runbook-Branches können hier eingesehen werden: <https://github.com/realmjoin/realmjoin-runbooks>
5. Wählen Sie denselben Standort wie Ihr Azure Automation Account, um sicherzustellen, dass Ihre Runbooks in der richtigen [Azure-Region](https://docs.microsoft.com/en-us/azure/availability-zones/az-overview)

![Automation Account-Verbindung im RealmJoin Portal](https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FA0X3M2c9d13pxVt87Pf8%2Fimage.png?alt=media\&token=8e2f2b18-c3b1-4704-8cc8-eb4d43297dd1)

6. Drücken Sie "Save", um den ersten Import der Runbooks zu starten. Lassen Sie dieses Fenster bitte geöffnet, bis die Meldung "Sync completed" angezeigt wird.

![](https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fjro6ZW5ITGp9UbnCiD08%2Fimage.png?alt=media\&token=3bf1d1e8-a1ce-4528-99a5-686c0377e8b5)
{% endstep %}
{% endstepper %}
