# Anforderungen

## PowerShell-Module

{% hint style="info" %}
Der Abschnitt PowerShell-Module wird automatisch aktualisiert basierend auf dem [öffentlichen Repository](https://github.com/realmjoin/realmjoin-runbooks).
{% endhint %}

Die gemeinsam genutzten Runbooks, die auf [GitHub](https://github.com/realmjoin/realmjoin-runbooks) verfügbar sind, erwarten/verwenden die folgenden Windows PowerShell-Module:

| Modul                            | Mindestversion in Runbooks |
| -------------------------------- | -------------------------- |
| `Az.Accounts`                    | 5.3.2                      |
| `Az.Compute`                     | 5.1.1                      |
| `Az.DesktopVirtualization`       | 5.4.1                      |
| `Az.ManagementPartner`           | 0.7.5                      |
| `Az.Resources`                   | 9.0.1                      |
| `Az.Storage`                     | 9.6.0                      |
| `ExchangeOnlineManagement`       | 3.9.2                      |
| `Microsoft.Graph.Authentication` | 2.35.1                     |
| `MicrosoftTeams`                 | 7.6.0                      |
| `RealmJoin.RunbookHelper`        | 0.8.5                      |

Das RealmJoin Portal importiert und installiert diese Module automatisch, wenn sie innerhalb eines Runbooks referenziert werden. Dieser Import berücksichtigt auch die angegebenen Mindestversionen für Module.

## Berechtigungen

{% hint style="info" %}
Der Abschnitt Berechtigungen wird automatisch aktualisiert basierend auf dem [öffentlichen Repository](https://github.com/realmjoin/realmjoin-runbooks).
{% endhint %}

Die gemeinsam genutzten RealmJoin-Runbooks verwenden die Azure Automation [systemseitig zugewiesene verwaltete Identität](https://learn.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation) um mit Entra ID, MS Graph API usw. zu interagieren.

Die folgende Liste von Rollen und Berechtigungen ermöglicht es Ihnen, alle Runbooks zu verwenden, die derzeit in unserem gemeinsamen Repository verfügbar sind.

Es wird nicht empfohlen, diese Rollen/Berechtigungen zu reduzieren, da die Runbooks nur gegen diesen Berechtigungssatz getestet werden. Wenn Sie den Satz der Rollen/Berechtigungen reduzieren, funktionieren einige Runbooks nicht mehr.

### Entra ID-Rollen

Bitte weisen Sie der verwalteten Identität die folgenden Entra ID-Rollen zu

* Anwendungsentwickler
* Cloud Device Administrator
* Exchange-Administrator
* Teams Administrator
* Benutzeradministrator

### Graph API-Berechtigungen

Bitte gewähren Sie der verwalteten Identität die folgenden Graph API-Berechtigungen

* `Application.Read.All`
* `Application.ReadWrite.OwnedBy`
* `AuditLog.Read.All`
* `BitlockerKey.Read.All`
* `CloudPC.ReadWrite.All`
* `Device.ReadWrite.All`
* `DeviceLocalCredential.Read.All`
* `DeviceManagementApps.ReadWrite.All`
* `DeviceManagementConfiguration.ReadWrite.All`
* `DeviceManagementManagedDevices.PrivilegedOperations.All`
* `DeviceManagementManagedDevices.ReadWrite.All`
* `DeviceManagementServiceConfig.ReadWrite.All`
* `Directory.Read.All`
* `Group.Create`
* `Group.ReadWrite.All`
* `GroupMember.ReadWrite.All`
* `IdentityRiskyUser.ReadWrite.All`
* `InformationProtectionPolicy.Read.All`
* `Mail.Send`
* `Organization.Read.All`
* `Place.Read.All`
* `Policy.Read.All`
* `Reports.Read.All`
* `RoleAssignmentSchedule.Read.Directory`
* `RoleManagement.Read.All`
* `RoleManagement.Read.Directory`
* `Team.Create`
* `TeamSettings.ReadWrite.All`
* `User.ReadWrite.All`
* `UserAuthenticationMethod.ReadWrite.All`
* `WindowsUpdates.ReadWrite.All`

### Weitere App-API-Berechtigungen

Bitte gewähren Sie der verwalteten Identität die folgenden Office 365 Exchange Online API-Berechtigungen

* `Exchange.ManageAsApp`

Bitte gewähren Sie der verwalteten Identität die folgenden WindowsDefenderATP API-Berechtigungen

* `Machine.Read.All`
* `Machine.Isolate`
* `Machine.RestrictExecution`
* `Ti.ReadWrite.All`

Bitte gewähren Sie der verwalteten Identität die folgenden SharePoint API-Berechtigungen

* `User.Read.All`
* `Sites.Read.All`
* `Sites.FullControl.All`

### Zuweisung von Rollen und Berechtigungen

Das Zuweisen von Berechtigungen zu verwalteten Identitäten kann derzeit nicht über das Azure Portal erfolgen. Wir empfehlen dafür die Verwendung von MS Graph / PowerShell-Skripting.

Sie finden ein Beispiel für diesen Prozess [hier](https://github.com/Workplace-Foundation/approle-and-directoryrole-granter).

### Berechtigungen für Azure-Ressourcen

Bitte gewähren Sie dem Abonnement oder der Ressourcengruppe, die das Azure Automation-Konto für die Runbooks hostet, mindestens den Zugriff „Contributor“

Einige Runbooks verwenden ein Azure Storage-Konto zum Speichern von Berichten oder Backups. Bitte gewähren Sie dem entsprechenden Abonnement oder der Ressourcengruppe mindestens den Zugriff „Contributor“. Die meisten Runbooks können dann die Ressourcen innerhalb der Ressourcengruppe eigenständig erstellen.

## Authentifizierungsmethoden

### Verwaltete Identitäten

Azure Automation unterstützt [Verwaltete Identitäten](https://docs.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation) (systemseitig zugewiesen) als primäre Art der Authentifizierung. Dies ersetzt die veralteten RunAs-Konten.

Die RealmJoin Runbooks unterstützen derzeit RunAs-Konten, wenn keine verwaltete Identität konfiguriert ist.

{% hint style="warning" %}
Wenn eine verwaltete Identität und ein RunAs-Konto gleichzeitig konfiguriert sind, bevorzugen die Runbooks aus dem gemeinsam genutzten Repository von RealmJoin beim Verwenden neuerer Versionen unseres unterstützenden `RealmJoin.RunbookHelper` Moduls ab v0.8.0 automatisch die verwaltete Identität.

Ältere Versionen des Moduls konnten verwaltete Identitäten nicht vollständig nutzen und bevorzugten das RunAs-Konto.

Bitte stellen Sie sicher, dass Sie die erforderlichen Berechtigungen für die verwaltete Identität gewähren oder diese vollständig deaktivieren, um nur das RunAs-Konto zu verwenden.
{% endhint %}

### Clientgeheimnis

Einige private Runbooks benötigen möglicherweise eine Authentifizierung im ClientID/Secret-Stil. Derzeit gibt es keine gemeinsam genutzten Runbooks, die ClientID und Secret erfordern.

Falls erforderlich, können eine ClientID und ein Secret in den verwalteten Anmeldeinformationen mit dem Namen „realmjoin-automation-cred“ im Azure Automation-Konto gespeichert werden.

Derzeit wird die „realmjoin-automation-cred“ im Automation-Konto standardmäßig durch den RJ-Wizard erstellt, aber mit Zufallswerten gefüllt - diese müssten mit korrekten Werten befüllt werden.
