> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/de/automatisierung/runbooks/runbook-permissions.md).

# 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 benötigt werden, um eine bestimmte Aktion als Runbook auszuführen, sehen Sie sich bitte unsere [Anforderungen](/de/automatisierung/connecting-azure-automation/azure-ad-roles-and-permissions.md).

## Überblick

"Runbook-Berechtigungen" definieren die Sichtbarkeit von Runbooks für bestimmte Benutzer. Bestimmte Runbooks können außerdem global blockiert/ausgeblendet werden.

Wie bei den [Runbook-Anpassungen](/de/automatisierung/runbooks/runbook-customization.md), erfolgt das Definieren dieser Berechtigungen, indem Sie als RealmJoin-Admin im RealmJoin-Webportal eine JSON-formatierte Konfiguration unter <https://portal.realmjoin.com/settings/runbooks-permissions> .

### Über diesen Leitfaden

Wir geben zunächst eine kurze Beschreibung der Syntax und erstellen dann Schritt für Schritt ein vollständiges Beispiel. Springen Sie gerne direkt zum vollständigen Beispiel und beginnen Sie [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 in derselben Zeichenfolge verwendet werden, z. B. `rjgit-*_security_*`. Dies würde alle der folgenden Beispiele abdecken:

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

Das Präfix `rjgit-` kennzeichnet 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 erstellen Schritt für Schritt ein vollständiges Konfigurationsbeispiel.

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 von 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 / den 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_*`

Damit werden implizit viele gruppenbezogene und alle organisationsbezogenen Runbooks ausgeschlossen. Bitte beachten Sie das.

```
{
  "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 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 alle in diesem Tenant ausgeblendet/nicht nutzbar sein.

#### Beispiel

Wir verwenden den `EnabledRunbookPatterns` Abschnitt von zuvor erneut.

* Alle gemeinsam genutzten (`rjgit-`) Runbooks in der `security` 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. Dadurch lassen sich in Ihrem Tenant mehrere Support-/Operator-Rollen definieren.

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

{% hint style="warning" %}
Wenn diese Option aktiviert ist, sehen alle Benutzer, die keiner Rolle angehören, keine Runbooks.
{% endhint %}

#### Beispiel

Aufbauend auf dem Vorhandenen erstellen wir eine Geräte-Supportrolle `DeviceAdmin` und eine Benutzer-Supportrolle `UserAdmin`.

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

Fügen wir Kommentare ("//") neben der Objekt-ID der Gruppe hinzu, die dem Leser die Entra ID-Gruppennamen mitteilen.

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

Nun `UserAdmin` Rolle kann:

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

Die `DeviceAdmin` Die 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 beliebiges Supportpersonal das Gerät eines VIP löscht oder die E-Mail-Adresse eines VIP ändert. Wir können "Targeting" verwenden, um Rollen für kritische Benutzer auf dedizierte Teams zu beschränken.

"Devices" werden anhand ihres primären/zugewiesenen Benutzers und nicht über das Geräteobjekt in Entra ID angesprochen. Das ermöglicht es, bei einem rein benutzerbasierten Gruppenmodell zu bleiben.

Wir nehmen an, dass Entra ID-Gruppen existieren, die kritische VIP-Benutzer enthalten. Mithilfe dieses Abschnitts können wir einige weitere kritische Rollen und Runbooks sorgfältig auf diese spezifischen Entra ID-Gruppen (Ziele) eingrenzen.

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

Wenn Sie TargetEntityGroups definieren, sollte dies keine Auswirkungen auf andere Gruppen haben, die in diesem Abschnitt nicht erwähnt werden.

#### Vollständiges Beispiel

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

Wir führen eine neue Entra ID-Gruppe ein `4444c0af-c217-41e9-b790-3043788f4444` mit Supportmitarbeitern, die autorisiert wurden, VIP-Benutzer zu administrieren. Diese Supportmitarbeiter sollten außerdem alle anderen grundlegenden Supportberechtigungen haben, daher fügen wir sie den vorhandenen Rollen hinzu.

"Das "Restricting" einer Rolle" gewährt einem Supportmitarbeiter keine neuen Rollen.

```json
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ],
  "Roles": {
    "DeviceAdmin": {
      "Gruppen": [
        "9cbfc0af-c217-41e9-b790-3043788f1234", // 1. Geräte-Support-AAD-Gruppe
        "5555c0af-c217-41e9-b790-3043788f1234", // 2. Geräte-Support-AAD-Gruppe - anderes Team
        "4444c0af-c217-41e9-b790-3043788f4444"  // VIP-Support-Team
      ],
      "AllowedRunbookPatterns": [
        "rjgit-device_*"
      ]
    },
    "UserAdmin": {
      "Gruppen": [
        "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-Supportmitarbeiter darauf beschränken, nur US-Benutzer zu verwalten**

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

* Erstellen Sie eine Berechtigungsregel, die ausdrücklich **verweigert** US-Supportern die Möglichkeit, Runbooks 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 US-Supporter Berechtigungen erhalten, die strikt auf ihre vorgesehene Zielgruppe (US-Benutzer) beschränkt sind, und verhindert versehentliche Interaktionen mit Benutzern außerhalb dieses Bereichs.

**Implementierung**

1. Im RealmJoin-Portal muss eine Entra-Gruppe für Runbook-Runner zugewiesen werden
   1. Einstellungen > Berechtigungen > Berechtigungen für Runbook-Runner
   2. Die Entra-Gruppe der US-Supporter muss Mitglied der Runbook-Runners-Gruppe sein, um die allgemeine Runbook-Ausführung im RealmJoin-Portal zu ermöglichen.
2. Hinzufügen einer neuen Rolle unter Einstellungen > Runbook-Berechtigungen
   1. Fügen Sie im Abschnitt Rollen die Rolle USSupporters mit ihrer Entra-Gruppe (Gruppen-Objekt-ID) hinzu
   2. Fügen Sie die AllowedRunbookPatterns für die USSupporters hinzu
3. Ändern Sie die TargetEntityGroups
   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 Objekt-ID der Entra ID-Gruppe der US-Supporter einschränken

<figure><img src="/files/6eb7fad72207e0326a2737a0082beed068c6d5b3" alt=""><figcaption><p>Beschränkung von US-Supportmitarbeitern, sodass sie nur US-Benutzer verwalten</p></figcaption></figure>

Im Folgenden das vollständige Beispiel für dieses Szenario:

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

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

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

  "Roles": {
    "USSupporters": {
      "Gruppen": [
        "c603278c-cc36-4661-bb7a-eecb7ab079f9" // US Supporters
      ],
      "AllowedRunbookPatterns": [ // zugelassene Runbooks für diese Rolle - US Supporters
        "rjgit-user_*",
        "rjgit-device_*",
        "rjgit-group_*"
      ]
    }
  },
  
  "TargetEntityGroups": {
    "3e1e7540-7f0c-483c-b9bf-500342e2467c": { // Alle Benutzer
      "RestrictRoles": {
        "USSupporters": [
          // grundsätzlich keine Runbooks für US Supporters zulassen
        ]
      }
    },
    "0f76d01e-cc6b-4553-bf1d-e4ccedd9c824": { // US-Benutzer
      "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 das Zuweisen/Verwalten von Zeitplänen für diese Runbooks. 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 Blacklist gesetzt und daran gehindert werden, als "planbar" markiert zu werden. RealmJoin Port ermöglicht nicht das Zuweisen/Verwalten von Zeitplänen für diese Runbooks. Siehe [Runbook-Planung](/de/automatisierung/runbooks/scheduling.md).

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

Standardmäßig werden keine Runbooks auf die Blacklist gesetzt. Das folgende Beispiel demonstriert nur die Syntax:

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
