- docs/App-Registration.md: alle benoetigten Graph-Berechtigungen (Kern, Geraete-Tab, Read-Only) + Auth-Konfiguration - docs/Setup-AppRegistration.ps1: legt die App-Registrierung automatisch an (Rechte, Public-Client-Flow, Redirect-URIs, optional Admin-Consent); Berechtigungs-IDs werden live aufgeloest - README/CHANGELOG verlinkt, ToolVersion + build-local auf 0.1.27 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.6 KiB
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.ps1die Registrierung komplett an (Rechte + Public-Client-Flow + Redirect-URIs + optional Consent). Siehe 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.Allwird 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 mit403 Forbiddenfehl.
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 |
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):
- Öffentliche Clientflows zulassen → Ja
(Entra → App-Registrierung → Authentifizierung → ganz unten;
im Manifest
isFallbackPublicClient = true). - Redirect-URIs unter Mobilgerät- und Desktopanwendungen:
https://login.microsoftonline.com/common/oauth2/nativeclient ms-appx-web://Microsoft.AAD.BrokerPlugin/<CLIENT-ID>- Zeile 1 → Device-Code-Flow
- Zeile 2 → WAM-Broker (Windows-Anmeldefenster);
<CLIENT-ID>ist die AppId der Registrierung selbst.
- Multi-Tenant: Wird dieselbe App gegen fremde Tenants genutzt, muss
signInAudienceauf 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 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.
# 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 "<APP-ID>" -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)
- Entra → App-Registrierungen → Neue Registrierung → Name vergeben, Kontotyp wählen (Single- oder Multi-Tenant) → Registrieren.
- API-Berechtigungen → Berechtigung hinzufügen → Microsoft Graph → Delegierte Berechtigungen → die Kern-Berechtigungen (und bei Bedarf die Geräte-Berechtigungen) auswählen → Administratorzustimmung erteilen.
- Authentifizierung → Authentifizierungs-Konfiguration wie oben setzen (Public-Client-Flow + beide Redirect-URIs).
- Übersichtsseite: Anwendungs-(Client-)ID und Verzeichnis-(Mandanten-)ID in den Intune Manager übernehmen.