# Runbook-Berechtigungen

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

## Umfang

Dies behandelt, wie der Zugriff auf bestimmte Runbooks in einem Azure-Tenant gewährt/verweigert wird. Wenn Sie nach Antworten dazu suchen, welche MS Graph API-Berechtigungen erforderlich sind, um eine bestimmte Aktion als Runbook auszuführen, werfen Sie bitte einen Blick auf unsere [Anforderungen](/de/automatisierung/connecting-azure-automation/azure-ad-roles-and-permissions.md).

## Übersicht

„Runbook Permissions“ definieren die Sichtbarkeit von Runbooks für bestimmte Benutzer. Bestimmte Runbooks können auch global blockiert/ausgeblendet werden.

Wie die [Runbook Customizations](/de/automatisierung/runbooks/runbook-customization.md)wird das Definieren dieser Berechtigungen vorgenommen, indem eine JSON-formatierte Konfiguration als RealmJoin-Administrator im Webportal von RealmJoin unter <https://portal.realmjoin.com/settings/runbooks-permissions> .

### Über diesen Leitfaden

Wir geben zunächst eine kurze Beschreibung der Syntax und bauen dann Stück für Stück ein vollständiges Beispiel auf. Sie können auch direkt zum vollständigen Beispiel springen und von dort aus beginnen [dort](#targetentitygroups).

## Konfigurationssyntax

### Runbook-Namen

Runbooks werden über ihre Namen referenziert, wie sie im Azure Automation Account zu sehen sind, z. B. `rjgit-group_general_remove-group`.

Platzhalter ('\*') können verwendet werden, um mehrere Runbooks zuzuordnen. Mehrere Platzhalter können im selben String verwendet werden, z. B. `rjgit-*_security_*`. Damit würden alle der folgenden Beispiele erfasst werden:

* `rjgit-org_security_list-inactive-users`
* `rjgit-device_security_enable-or-disable-device`

Das Präfix `rjgit-` bezeichnet Runbooks, die aus unserem öffentlichen GitHub-Repository importiert werden. Kundenspezifische Runbooks haben kein Präfix, z. B. `user_userinfo_custom-runbook`

### Entra ID Groups

Entra ID-Gruppen werden über ihre Objekt-ID referenziert, wie `91688d11-9a34-42cd-8d1e-ce617d6c1234`. Derzeit können nur Sicherheitsgruppen verwendet werden.

## JSON-Struktur und Beispiel

Wir bauen ein vollständiges Konfigurationsbeispiel Stück für Stück auf.

Eine JSON-Konfiguration besteht aus mehreren Abschnitten, aber alle Abschnitte sind optional und können weggelassen werden.

Es ist erlaubt, Kommentare mit dem Präfix "//" hinzuzufügen.

### EnabledRunbookPatterns

Dieser Abschnitt enthält eine Liste der Runbooks, die verwendet werden dürfen. Wenn dieser Abschnitt weggelassen wird, sind standardmäßig alle Runbooks aktiviert/zugelassen.

Wenn Sie diesen Abschnitt definieren, sind nur die in diesem Abschnitt genannten Runbooks für jede Rolle / Support und Administratoren verwendbar.

#### Beispiel

* Nur bestimmte, einzelne Runbooks zulassen, indem Sie ihren vollständigen Namen angeben

  `rjgit-group_general_remove-group`
* Alle gerätebezogenen Runbooks aus unserem gemeinsamen Repository zulassen

  `rjgit-device_*`
* Alle gemeinsam genutzten Benutzer-Runbooks zulassen

  `rjgit-user_*`
* Alle kundenspezifischen (lokalen), benutzerbezogenen Runbooks zulassen

  `user_*`

Dadurch werden implizit viele gruppen- und alle organisationsbasierten Runbooks ausgeschlossen. Seien Sie sich dessen bewusst.

```
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ]
}
```

### DisabledRunbookPatterns

Eine Liste von Runbooks, die global deaktiviert / verboten sind. Wenn dieser Abschnitt weggelassen wird oder leer ist, sind alle aktivierten Runbooks (angegeben über [EnabledRunbookPatterns](#enabledrunbookpatterns)) verwendbar.

Einträge in diesem Abschnitt haben Vorrang vor Einträgen in [EnabledRunbookPatterns ](#enabledrunbookpatterns)- die Runbooks werden für niemanden in diesem Tenant ausgeblendet / sind nicht verwendbar.

#### Beispiel

Wir verwenden den `EnabledRunbookPatterns` Abschnitt von vorhin erneut.

* Alle gemeinsam genutzten (`rjgit-`) Runbooks in der `Sicherheits` Kategorie deaktivieren.

```
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ]
}
```

### Rollen

In diesem Abschnitt können Sie einer Entra ID-Gruppe eine Liste von Runbooks zuweisen. So können Sie mehrere Support-/Operator-Rollen in Ihrem Tenant definieren.

Wenn dieser Abschnitt weggelassen wird, haben alle RealmJoin-Supporter und Administratoren Zugriff auf alle in den vorherigen Abschnitten angegebenen Runbooks.

{% hint style="warning" %}
Wenn aktiviert, sehen alle Benutzer, die zu keiner Rolle gehören, keine Runbooks.
{% endhint %}

#### Beispiel

Wenn wir mit dem fortfahren, was wir haben, erstellen wir eine Geräte-Support-Rolle `DeviceAdmin` und eine Benutzer-Support-Rolle `UserAdmin`.

Wir wenden diese Rollen auf mehrere Entra ID-Gruppen an und geben für jede Rolle eine Liste erlaubter Runbooks an. Achtung – dadurch wird die Benutzer-Support-Rolle auf nur eine kleine Menge an Runbooks beschränkt.

Fügen wir Kommentare ("//") neben der Objekt-ID der Gruppe hinzu, die dem Leser helfen, indem sie die Namen der Entra ID-Gruppen angeben.

```json
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ],
  "Roles": {
    "DeviceAdmin": {
      "Groups": [
        "9cbfc0af-c217-41e9-b790-3043788f1234", // 1. Device-Support-AAD-Gruppe
        "5555c0af-c217-41e9-b790-3043788f1234"  // 2. Device-Support-AAD-Gruppe - anderes Team
      ],
      "AllowedRunbookPatterns": [
        "rjgit-device_*"
      ]
    },
    "UserAdmin": {
      "Groups": [
        "1234c0af-c217-41e9-b790-3043788f1234" // Benutzer-Support-AAD-Gruppe
      ],
      "AllowedRunbookPatterns": [
        "rjgit-user_general_assign-or-unassign-license",
        "rjgit-user_mail_*",
        "user_*"
      ]
    }
  }
}
```

Jetzt kann die `UserAdmin` Rolle:

* Lizenzen allen Benutzern in Ihrem Tenant zuweisen
* E-Mail-Adressen aller Benutzer in Ihrem Tenant ändern

Die `DeviceAdmin` Rolle kann

* jedes Gerät in Ihrem Tenant löschen

### TargetEntityGroups

Vielleicht haben Sie einige wichtige VIP-Benutzer. Es sollte nicht möglich sein, dass irgendein Support-Mitarbeiter das Gerät eines VIP löscht oder die E-Mail-Adresse eines VIP ändert. Wir können „Targeting“ verwenden, um Rollen bei kritischen Benutzern auf dedizierte Teams zu beschränken.

„Devices“ werden über ihren primären/zugewiesenen Benutzer adressiert, nicht jedoch über das Geräteobjekt in Entra ID. Dadurch kann ein rein benutzerbasiertes Gruppenmodell beibehalten werden.

Wir gehen davon aus, dass Entra ID-Gruppen existieren, die kritische VIP-Benutzer enthalten. Mit diesem Abschnitt können wir einige kritischere Rollen und Runbooks sorgfältig auf diese spezifischen Entra ID-Gruppen (Ziele) eingrenzen.

Offensichtlich werden, wenn Sie diesen Abschnitt weglassen, alle Benutzer/Gruppen/Devices in Ihrem Tenant gleich behandelt.

Wenn Sie TargetEntityGroups definieren, sollte dies keine Auswirkungen auf andere in diesem Abschnitt nicht genannte Gruppen haben.

#### Vollständiges Beispiel

Angenommen, die Gruppe `0000c0af-c217-41e9-b790-3043788f0000` ist unsere Gruppe der VIP-Benutzer.

Wir führen eine neue Entra ID-Gruppe ein `4444c0af-c217-41e9-b790-3043788f4444` mit Support-Mitarbeitern, die die Berechtigung erhalten haben, VIP-Benutzer zu administrieren. Diese Support-Mitarbeiter sollten auch alle anderen grundlegenden Support-Berechtigungen haben, daher werden wir sie den vorhandenen Rollen hinzufügen.

Das „Einschränken“ einer Rolle verleiht einem Support-Mitarbeiter keine neuen Rollen.

```json
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ],
  "Roles": {
    "DeviceAdmin": {
      "Groups": [
        "9cbfc0af-c217-41e9-b790-3043788f1234", // 1. Device-Support-AAD-Gruppe
        "5555c0af-c217-41e9-b790-3043788f1234", // 2. Device-Support-AAD-Gruppe - anderes Team
        "4444c0af-c217-41e9-b790-3043788f4444"  // VIP-Support-Team
      ],
      "AllowedRunbookPatterns": [
        "rjgit-device_*"
      ]
    },
    "UserAdmin": {
      "Groups": [
        "1234c0af-c217-41e9-b790-3043788f1234", // Benutzer-Support-AAD-Gruppe
        "4444c0af-c217-41e9-b790-3043788f4444"  // VIP-Support-Team
      ],
      "AllowedRunbookPatterns": [
        "rjgit-user_general_assign-or-unassign-license",
        "rjgit-user_mail_*",
        "user_*"
      ]
    }
  },
  "TargetEntityGroups": {
    "0000c0af-c217-41e9-b790-3043788f0000": {  // VIP-Benutzer - mit Vorsicht behandeln!
      "RestrictRoles": {
        "UserAdmin": [
          "4444c0af-c217-41e9-b790-3043788f4444" // VIP-Support
        ],
        "DeviceAdmin": [
          "4444c0af-c217-41e9-b790-3043788f4444" // VIP-Support
        ]
      }
    }
  }
}
```

#### **Beispiel: US-Support-Mitarbeiter darauf beschränken, nur US-Benutzer zu verwalten**

In diesem Szenario haben wir Support-Mitarbeiter aus den USA, die nur Benutzer verwalten sollen, die sich in den USA befinden. Um diese Einschränkung durchzusetzen:

* Erstellen Sie eine Berechtigungsregel, die den US-Support-Mitarbeitern ausdrücklich **verweigert** die Möglichkeit, Runbooks auszuführen auf **allen Benutzern**.
* Fügen Sie eine Ausnahmeregel hinzu, die ausdrücklich **erlaubt** die Ausführung von Runbooks nur für **US-Benutzer**.

Dies stellt sicher, dass die Berechtigungen der US-Support-Mitarbeiter strikt auf die vorgesehene Zielgruppe (US-Benutzer) beschränkt bleiben und versehentliche Interaktionen mit Benutzern außerhalb dieses Bereichs verhindert werden.

**Implementierung**

1. Eine Entra-Gruppe für Runbook-Runner muss im Realm Join Portal zugewiesen sein
   1. Einstellungen > Berechtigungen > Runbook-Runner-Berechtigungen
   2. Die Entra-Gruppe der US-Supporter muss Mitglied der Runbook-Runners-Gruppe sein, um den allgemeinen Runbook-Betrieb im RealmJoin-Portal zu ermöglichen.
2. Hinzufügen einer neuen Rolle unter Einstellungen > Runbook Permissions
   1. Im Abschnitt Roles die Rolle USSupporters mit ihrer Entra-Gruppe (Gruppenobjekt-ID) hinzufügen
   2. AllowedRunbookPatterns für die USSupporters hinzufügen
3. TargetEntityGroups ändern
   1. Die All-Users-Gruppe muss die Rolle USSupporters mit einem leeren Wert einschränken (hier wird keine Entra-Gruppen-Objekt-ID hinzugefügt). Dies ist eine implizite Verweigerung!
   2. Die US-Users-Gruppe muss die Rolle USSupporters auf die Entra-Gruppen-Objekt-ID der US Supporters einschränken

<figure><img src="/files/6eb7fad72207e0326a2737a0082beed068c6d5b3" alt=""><figcaption><p>US-Support-Mitarbeiter darauf beschränken, nur US-Benutzer zu verwalten</p></figcaption></figure>

Unten das vollständige Beispiel für dieses Szenario:

```json
{
  // Portal-Berechtigung:
  // Runbook-Runner-Rolle: US Supporters

  // Gruppenmitgliedschaften:
  // 3e1e7540-7f0c-483c-b9bf-500342e2467c: All-Users
  // c603278c-cc36-4661-bb7a-eecb7ab079f9: US Supporters
  // 0f76d01e-cc6b-4553-bf1d-e4ccedd9c824: US Users

  "EnabledRunbookPatterns": [ // Allgemeine Aktivierung von Mail- und Sicherheits-Runbooks
    "rjgit-*_mail_*",
    "rjgit-*security*"
  ],
  "DisabledRunbookPatterns": [
    "*password*"
  ],

  "Roles": {
    "USSupporters": {
      "Groups": [
        "c603278c-cc36-4661-bb7a-eecb7ab079f9" // US Supporters
      ],
      "AllowedRunbookPatterns": [ // erlaubte Runbooks für diese Rolle - US Supporters
        "rjgit-user_*",
        "rjgit-device_*",
        "rjgit-group_*"
      ]
    }
  },
  
  "TargetEntityGroups": {
    "3e1e7540-7f0c-483c-b9bf-500342e2467c": { // All-Users
      "RestrictRoles": {
        "USSupporters": [
          // grundsätzlich keine Runbooks für irgendeinen US Supporter zulassen
        ]
      }
    },
    "0f76d01e-cc6b-4553-bf1d-e4ccedd9c824": { // US Users
      "RestrictRoles": {
        "USSupporters": [
          "c603278c-cc36-4661-bb7a-eecb7ab079f9" // US Supporters
        ]
      }
    }
  }
}
```

### SchedulingEnabledRunbookPatterns

Dieser Abschnitt enthält eine Liste von Runbooks, die als „planbar“ markiert werden. RealmJoin Port ermöglicht es, Zeitpläne für diese Runbooks zuzuweisen / zu verwalten. Siehe [Runbook-Planung](/de/automatisierung/runbooks/scheduling.md).

Das folgende Beispiel beschreibt das Standardverhalten, wenn SchedulingEnabledRunbookPatterns nicht definiert ist:

```json
{
  "SchedulingEnabledRunbookPatterns": [
    "*_scheduled"
  ]
}
```

### SchedulingDisabledRunbookPatterns

Dieser Abschnitt enthält eine Liste von Runbooks, die auf die schwarze Liste gesetzt werden, damit sie nicht als „planbar“ markiert werden. RealmJoin Port ermöglicht es nicht, Zeitpläne für diese Runbooks zuzuweisen / zu verwalten. Siehe [Runbook-Planung](/de/automatisierung/runbooks/scheduling.md).

Ein Runbook, das sowohl in SchedulingEnabledRunbookPatterns als auch in SchedulingDisabledRunbookPatterns enthalten ist, wird **Skywalker** planbar sein.

Standardmäßig sind keine Runbooks auf der schwarzen Liste. Das folgende Beispiel demonstriert nur die Syntax:

```json
{
  "SchedulingDisabledRunbookPatterns": [
    "rjgit-user_*"
  ]
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.realmjoin.com/de/automatisierung/runbooks/runbook-permissions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
