> 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 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 außerdem global blockiert/ausgeblendet werden.

Wie bei den [Runbook-Anpassungen](/de/automatisierung/runbooks/runbook-customization.md)werden diese Berechtigungen definiert, indem man als RealmJoin-Admin im Webportal von RealmJoin unter <https://portal.realmjoin.com/settings/runbooks-permissions> .

### Über diesen Leitfaden

Wir geben eine kurze Beschreibung der Syntax und erstellen dann Schritt für Schritt ein vollständiges Beispiel. Sie können auch direkt zum vollständigen Beispiel springen und von dort aus starten [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_*`. 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 werden ein vollständiges Konfigurationsbeispiel Schritt für Schritt erstellen.

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/erlaubt.

Wenn Sie diesen Abschnitt definieren, sind nur die Runbooks nutzbar, die in diesem Abschnitt erwähnt werden, und zwar für jede Rolle / jeden Support und Admin.

#### Beispiel

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

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

  `rjgit-device_*`
* Alle gemeinsamen Benutzer-Runbooks erlauben

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

  `user_*`

Dies schließt implizit viele gruppenbasierte und alle org-basierten Runbooks aus. Bitte beachten.

```
{
  "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)) sind nutzbar.

Einträge in diesem Abschnitt haben Vorrang vor Einträgen in [EnabledRunbookPatterns ](#enabledrunbookpatterns)- die Runbooks werden für alle in diesem Tenant verborgen/nicht nutzbar sein.

#### Beispiel

Wir verwenden den `EnabledRunbookPatterns` Abschnitt von zuvor.

* Deaktivieren Sie alle gemeinsamen (`rjgit-`) Runbooks in der `Sicherheits` Kategorie.

```
{
  "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. Dies ermöglicht es, mehrere Support-/Operator-Rollen in Ihrem Tenant zu 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 aktiviert, sehen alle Benutzer, die keiner Rolle angehören, keine Runbooks.
{% endhint %}

#### Beispiel

Anknüpfend an das, was wir haben, erstellen wir eine Rolle für den Gerätesupport `DeviceAdmin` und eine Benutzer-Supportrolle `UserAdmin`.

Wir wenden diese Rollen auf mehrere Entra ID-Gruppen an und geben für jede Rolle eine Liste erlaubter Runbooks an. Beachten Sie - dadurch wird die Benutzer-Supportrolle auf nur eine kleine Menge von Runbooks eingeschränkt.

Fügen wir Kommentare ("//") neben der Objekt-ID der Gruppe hinzu, die dem Leser helfen, indem sie die Entra ID-Gruppennamen 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. Geräte-Support-AAD-Gruppe
        "5555c0af-c217-41e9-b790-3043788f1234"  // 2. Geräte-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 kann:

* 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 entscheidende 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 für kritische Benutzer auf dedizierte Teams zu beschränken.

"Devices" werden über ihren primären/zugewiesenen Benutzer angesprochen, nicht über das Geräteobjekt in Entra ID. Dadurch kann man an einem rein benutzerbasierten Gruppenmodell festhalten.

Wir nehmen an, dass Entra ID-Gruppen existieren, die kritische VIP-Benutzer enthalten. Mit diesem Abschnitt können wir einige noch kritischere Rollen und Runbooks für diese spezifischen Entra ID-Gruppen (Ziele) sorgfältig 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 der VIP-Benutzer.

Wir führen eine neue Entra ID-Gruppe ein `4444c0af-c217-41e9-b790-3043788f4444` mit unterstützendem Personal, das die Genehmigung erhalten hat, VIP-Benutzer zu administrieren. Dieses Supportpersonal sollte auch alle anderen grundlegenden Support-Berechtigungen haben, daher fügen wir es den bestehenden Rollen hinzu.

"Restricting" einer Rolle wird einem Unterstützer keine neuen Rollen gewähren.

```json
{
  "EnabledRunbookPatterns": [
    "rjgit-group_general_remove-group",
    "rjgit-device_*",
    "rjgit-user_*",
    "user_*"
  ],
  "DisabledRunbookPatterns": [
    "rjgit-*_security_*"
  ],
  "Roles": {
    "DeviceAdmin": {
      "Groups": [
        "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-Crew
      ],
      "AllowedRunbookPatterns": [
        "rjgit-device_*"
      ]
    },
    "UserAdmin": {
      "Groups": [
        "1234c0af-c217-41e9-b790-3043788f1234", // Benutzer-Support-AAD-Gruppe
        "4444c0af-c217-41e9-b790-3043788f4444"  // VIP-Support-Crew
      ],
      "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 auf die Verwaltung von nur US-Benutzern beschränken**

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

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

**Implementierung**

1. Eine Entra-Gruppe für Runbook-Runner muss im RealmJoin Portal zugewiesen werden
   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-Berechtigungen
   1. Fügen Sie im Abschnitt Rollen die Rolle USSupporters mit ihrer Entra-Gruppe (Gruppenobjekt-ID) hinzu
   2. Fügen Sie 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-Gruppenobjekt-ID hinzugefügt). Dies ist eine implizite Verweigerung!
   2. Die US-Users-Gruppe muss die Rolle USSupporters auf die Entra-Gruppenobjekt-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: Alle Benutzer
  // c603278c-cc36-4661-bb7a-eecb7ab079f9: US Supporters
  // 0f76d01e-cc6b-4553-bf1d-e4ccedd9c824: US-Benutzer

  "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": { // Alle Benutzer
      "RestrictRoles": {
        "USSupporters": [
          // generell, keine Runbooks für irgendwelche US Supporters erlauben
        ]
      }
    },
    "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 erlaubt 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 und nicht als "planbar" markiert werden können. RealmJoin Port erlaubt 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 vorhanden ist, wird **zu** planbar sein.

Standardmäßig werden keine Runbooks auf die schwarze Liste gesetzt. Das folgende Beispiel demonstriert lediglich 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.
