# App-Registrierung & Berechtigungen Der Intune Manager meldet sich als **delegierte** Anwendung an (Device-Code- bzw. WAM-Login) — er handelt also immer **im Namen des angemeldeten Admins**, nie mit Anwendungsrechten. Die App-Registrierung braucht daher **delegierte Microsoft-Graph-Berechtigungen** plus die passende Authentifizierungs-Konfiguration. > **Schnellweg:** Statt alles von Hand zu klicken, legt das Skript > [`Setup-AppRegistration.ps1`](Setup-AppRegistration.ps1) die Registrierung > komplett an (Rechte + Public-Client-Flow + Redirect-URIs + optional Consent). > Siehe [Automatische Einrichtung](#automatische-einrichtung). --- ## Benötigte Berechtigungen Alle Berechtigungen sind vom Typ **Delegiert** (Microsoft Graph). ### Kern (immer erforderlich) | Berechtigung | Wofür | |---|---| | `Group.ReadWrite.All` | Gruppen anlegen, App-/Policy-Zuweisungen setzen | | `GroupMember.ReadWrite.All` | Gruppenmitglieder lesen/hinzufügen/entfernen, CSV-Import | | `User.Read.All` | Benutzersuche, UPN-Auflösung | | `DeviceManagementApps.ReadWrite.All` | Apps auflisten, zuweisen, umbenennen, löschen, Setup-Datei aktualisieren, App-Report | | `DeviceManagementConfiguration.ReadWrite.All` | Policies (Settings Catalog, Compliance, Konfigurationsprofile, Administrative Vorlagen) lesen, exportieren, importieren, zuweisen | | `offline_access` | Refresh-Token (Device-Code-Flow) | > `DeviceManagementConfiguration.ReadWrite.All` wird vom Tool automatisch zur > Verbindung ergänzt — die App-Registrierung muss die Berechtigung aber besitzen > und (Admin-)zugestimmt bekommen haben, sonst schlägt der Policy-Import mit > `403 Forbidden` fehl. ### Geräte-Tab (optional) Nur nötig, wenn der **Geräte-Tab** (Sync/Reboot/Lock/Diagnose/Wipe/Retire) genutzt wird: | Berechtigung | Wofür | |---|---| | `DeviceManagementManagedDevices.Read.All` | Geräte auflisten und Details anzeigen | | `DeviceManagementManagedDevices.ReadWrite.All` | Sync, Neustart, Remote-Lock, Diagnose, BitLocker-Key-Rotation | | `DeviceManagementManagedDevices.PrivilegedOperations.All` | Wipe, Retire, Autopilot-Reset | ### Geräte-Offboarding (optional) Nur nötig, wenn die **Offboarding**-Ansicht (Geräte aus Intune + Autopilot + Entra entfernen, Recovery-Keys lesen) genutzt wird: | Berechtigung | Wofür | |---|---| | `Device.ReadWrite.All` | Gerät aus Entra ID löschen/deaktivieren | | `DeviceManagementManagedDevices.ReadWrite.All` | Gerät aus Intune löschen | | `DeviceManagementServiceConfig.ReadWrite.All` | Gerät aus Autopilot löschen | | `BitlockerKey.Read.All` | BitLocker-Recovery-Keys lesen | | `DeviceLocalCredential.Read.All` | LAPS-Passwörter lesen | > **Wichtig:** Löschen aus Entra/Intune/Autopilot benötigt bei delegierter > Anmeldung zusätzlich **Verzeichnis-/Intune-Rollen** (Cloud Device Administrator > bzw. Intune Administrator) — die Scopes allein reichen nicht, sonst `403`. > Diese Scopes müssen außerdem in den **Read/Write-Scopes** des Tools eingetragen > sein (Einstellungen → Verbindung), damit sie im Token landen. > Skript: `.\docs\Setup-AppRegistration.ps1 -IncludeOffboarding -GrantAdminConsent` ### Read-Only-Variante Für eine reine Anzeige-App (im Tool als `clientIdRo` hinterlegbar) genügen die `*.Read.All`-Pendants: `Group.Read.All`, `GroupMember.Read.All`, `User.Read.All`, `DeviceManagementApps.Read.All`, `DeviceManagementConfiguration.Read.All`, `offline_access` (+ optional `DeviceManagementManagedDevices.Read.All`). --- ## Authentifizierungs-Konfiguration Zusätzlich zu den Berechtigungen muss die App als **öffentlicher Client** nutzbar sein — sonst scheitert der erste Login (`AADSTS500113` bzw. `AADSTS50011`): 1. **Öffentliche Clientflows zulassen** → **Ja** (Entra → App-Registrierung → *Authentifizierung* → ganz unten; im Manifest `isFallbackPublicClient = true`). 2. **Redirect-URIs** unter *Mobilgerät- und Desktopanwendungen*: ``` https://login.microsoftonline.com/common/oauth2/nativeclient ms-appx-web://Microsoft.AAD.BrokerPlugin/ ``` - Zeile 1 → **Device-Code-Flow** - Zeile 2 → **WAM-Broker** (Windows-Anmeldefenster); `` ist die AppId der Registrierung selbst. 3. **Multi-Tenant:** Wird dieselbe App gegen fremde Tenants genutzt, muss `signInAudience` auf *Accounts in any organizational directory* (`AzureADMultipleOrgs`) stehen und im Ziel-Tenant per Admin-Consent bereitgestellt werden. Bei einer eigenen App **pro** Tenant ist Single-Tenant ausreichend. --- ## Automatische Einrichtung Das Skript [`Setup-AppRegistration.ps1`](Setup-AppRegistration.ps1) erledigt alles oben Genannte über Microsoft Graph. Es braucht nur das Modul `Microsoft.Graph.Authentication` (dieselbe Abhängigkeit wie das Tool) und löst die Berechtigungs-IDs **live** aus dem Graph-Service-Principal auf — keine fest verdrahteten GUIDs. ```powershell # Einmalig: Install-Module Microsoft.Graph.Authentication -Scope CurrentUser # Neue Single-Tenant-App inkl. Admin-Consent: .\docs\Setup-AppRegistration.ps1 -GrantAdminConsent # Mit Geräte-Rechten: .\docs\Setup-AppRegistration.ps1 -IncludeDeviceActions -GrantAdminConsent # Multi-Tenant-App: .\docs\Setup-AppRegistration.ps1 -MultiTenant -GrantAdminConsent # Bestehende App nur um Rechte/Redirect-URIs ergänzen: .\docs\Setup-AppRegistration.ps1 -ClientId "" -GrantAdminConsent # Nur das Manifest-Snippet ausgeben (ohne etwas anzulegen wäre -WhatIf-artig — # hier zusätzlich zum Anlegen): .\docs\Setup-AppRegistration.ps1 -EmitManifest ``` Am Ende gibt das Skript **Tenant ID** und **Client ID** aus — diese Werte im Intune Manager unter *Einstellungen → Verbindung* (bzw. im Tenant-Profil) eintragen. Die zum Anlegen/Ändern nötigen Admin-Rechte (`Application.ReadWrite.All`, für Consent zusätzlich `DelegatedPermissionGrant.ReadWrite.All`) werden beim `Connect-MgGraph`-Aufruf des Skripts einmalig abgefragt. --- ## Manuelle Einrichtung (Portal) 1. **Entra** → *App-Registrierungen* → *Neue Registrierung* → Name vergeben, Kontotyp wählen (Single- oder Multi-Tenant) → **Registrieren**. 2. *API-Berechtigungen* → *Berechtigung hinzufügen* → **Microsoft Graph** → **Delegierte Berechtigungen** → die [Kern-Berechtigungen](#kern-immer-erforderlich) (und bei Bedarf die [Geräte-Berechtigungen](#geräte-tab-optional)) auswählen → **Administratorzustimmung erteilen**. 3. *Authentifizierung* → [Authentifizierungs-Konfiguration](#authentifizierungs-konfiguration) wie oben setzen (Public-Client-Flow + beide Redirect-URIs). 4. **Übersichtsseite**: *Anwendungs-(Client-)ID* und *Verzeichnis-(Mandanten-)ID* in den Intune Manager übernehmen.