Skip to content

M365 App Registrations & Permissions

TCM365 verwendet ein Drei-Tier-Berechtigungsmodell für die Microsoft 365 Integration. Dieser Guide erklärt exakt, welche Azure AD App Registrations benötigt werden, welche Permissions jede App braucht, und warum diese Permissions notwendig sind.


Übersicht: Drei App Registrations

┌─────────────────────────────────────────────────────────────────────┐
│                    TCM365 Permission Architecture                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌──────────────┐  ┌──────────────┐  ┌─────────────────────────┐  │
│  │   Read App    │  │  Write App   │  │   UTCM Service Principal │  │
│  │  (Pflicht)    │  │  (Optional)  │  │   (Pflicht für          │  │
│  │              │  │              │  │    Teams & Exchange)     │  │
│  ├──────────────┤  ├──────────────┤  ├─────────────────────────┤  │
│  │ Snapshots    │  │ Rollback     │  │ Teams Capture           │  │
│  │ Drift        │  │ Config Write │  │ Exchange Capture        │  │
│  │ Baselines    │  │ Changes      │  │ UTCM Monitors           │  │
│  │ Reports      │  │ Apply        │  │ Snapshot Jobs           │  │
│  │ CA What-If   │  │              │  │                         │  │
│  │ Compliance   │  │              │  │                         │  │
│  └──────────────┘  └──────────────┘  └─────────────────────────┘  │
│                                                                     │
│  Alle Permissions: Application-Type (kein User-Kontext)            │
└─────────────────────────────────────────────────────────────────────┘

Warum separate App Registrations?

Die Trennung in Read und Write App folgt dem Least Privilege Principle:

  • Die Read App hat nur Leserechte — sie kann keine Konfigurationen verändern
  • Die Write App wird nur für Rollback/Apply-Operationen benötigt und ist optional
  • Der UTCM Service Principal ist ein von Microsoft bereitgestellter SP, der für die UTCM Snapshot Job API benötigt wird

Permission Categories

TCM365 gruppiert die ~41 Read App Permissions in 8 logische Kategorien. Kunden können Kategorien, die sie nicht benötigen, gezielt deaktivieren — das reduziert den Consent-Umfang und blendet entsprechende Bereiche im Snapshot Viewer aus.

Verfügbare Kategorien

Kategorie ID Anzeigename Permissions Workloads Pflicht
entra_core Entra ID (Core Identity) 16 entra Ja (immer aktiv)
intune Microsoft Intune 5 intune Nein
defender Microsoft Defender 7 defender Nein
sharepoint SharePoint Online 2 sharepoint Nein
purview Microsoft Purview 3 purview Nein
cloud_pc Windows 365 (Cloud PC) 1 cloud_pc Nein
m365_platform M365 Platform 5 m365_platform Nein
utcm UTCM (Teams & Exchange) 2 teams, exchange, security_compliance Nein

entra_core kann nicht deaktiviert werden

Die Kategorie entra_core ist immer aktiv, da Organization.Read.All für den Verbindungstest zwingend erforderlich ist. Alle anderen Kategorien können optional deaktiviert werden.

Kategorie-Verwaltung im UI

Die Berechtigungskategorien können pro M365-Tenant im Tenant Detail unter dem Tab Permissions verwaltet werden:

  1. Öffne den Tenant in der TCM365-Oberfläche
  2. Navigiere zum Tab Permissions oder Permission Categories
  3. Deaktiviere nicht benötigte Kategorien (z.B. "Windows 365" wenn kein Cloud PC genutzt wird)
  4. Das System synchronisiert automatisch die enabled_workloads mit den aktivierten Kategorien

Surplus-Warnung: Wenn der Read App mehr Permissions erteilt wurden als durch die aktivierten Kategorien erforderlich sind, zeigt die Setup-Status-Seite eine Warnung mit den überschüssigen Permissions.

Minimale Permissions nach Kategorie

entra_core (immer aktiv — 16 Permissions):
  Directory.Read.All, Policy.Read.All, Policy.Read.PermissionGrant,
  Application.Read.All, Organization.Read.All, RoleManagement.Read.Directory,
  RoleAssignmentSchedule.Read.Directory, RoleEligibilitySchedule.Read.Directory,
  RoleManagementPolicy.Read.Directory, AccessReview.Read.All,
  LifecycleWorkflows.Read.All, AdministrativeUnit.Read.All,
  EntitlementManagement.Read.All, IdentityRiskyUser.Read.All,
  IdentityRiskEvent.Read.All, IdentityRiskyServicePrincipal.Read.All

intune (5 Permissions):
  DeviceManagementConfiguration.Read.All, DeviceManagementApps.Read.All,
  DeviceManagementManagedDevices.Read.All, DeviceManagementServiceConfig.Read.All,
  DeviceManagementRBAC.Read.All

defender (7 Permissions):
  SecurityEvents.Read.All, SecurityAlert.Read.All, SecurityIncident.Read.All,
  AttackSimulation.Read.All, ThreatAssessment.Read.All,
  SecurityIdentitiesHealth.Read.All, SecurityIdentitiesSensors.Read.All

sharepoint (2 Permissions):
  SharePointTenantSettings.Read.All, Sites.Read.All

purview (3 Permissions):
  InformationProtectionPolicy.Read.All, RecordsManagement.Read.All,
  eDiscovery.Read.All

cloud_pc (1 Permission):
  CloudPC.Read.All

m365_platform (5 Permissions):
  Domain.Read.All, ServiceHealth.Read.All, ServiceMessage.Read.All,
  Teamwork.Read.All, AppCatalog.Read.All

utcm (2 Permissions):
  ConfigurationMonitoring.Read.All, ConfigurationMonitoring.ReadWrite.All

1. Read App Registration (Pflicht)

Die Read App ist die primäre App Registration und wird für alle Lese-Operationen benötigt: Snapshots erstellen, Drift erkennen, Baselines evaluieren, Reports generieren.

Entra ID Permissions

Permission Typ Wofür benötigt Betroffene Features
Directory.Read.All Application Lesen von Benutzern, Gruppen, Gruppensettings, Verzeichniseinstellungen Snapshots (Entra), Compliance, Reports
Policy.Read.All Application Lesen aller Richtlinien: Conditional Access, Token Lifetime, Home Realm Discovery, Claims Mapping, Activity-Based Timeout, Authorization Snapshots, CA What-If Simulation, Baselines
Policy.Read.PermissionGrant Application Lesen von Permission-Grant-Richtlinien (wer darf App-Berechtigungen erteilen) Snapshots (Entra Permission Grants)
Application.Read.All Application Lesen von App Registrations und Enterprise Applications (Service Principals) Snapshots (App Registrations, Service Principals), Mäster Baseline Checks
Organization.Read.All Application Lesen von Tenant-Einstellungen, Domains, lizenzierten SKUs, Service Plans Snapshots, Copilot Readiness (Lizenzen), M365 Platform
RoleManagement.Read.Directory Application Lesen von Entra Directory Roles und Role Assignments Snapshots (Role Assignments), Privileged Role Hygiene Baseline
RoleAssignmentSchedule.Read.Directory Application Lesen von aktiven PIM Role Assignment Schedules Snapshots (PIM aktive Zuweisungen)
RoleEligibilitySchedule.Read.Directory Application Lesen von PIM Eligible Role Assignments Snapshots (PIM berechtigte Zuweisungen)
RoleManagementPolicy.Read.Directory Application Lesen von PIM Role Management Policies (Activation Rules, Assignment Rules) Snapshots (PIM Policies)
AccessReview.Read.All Application Lesen von Access Review Definitionen Snapshots (Access Reviews)
LifecycleWorkflows.Read.All Application Lesen von Joiner/Mover/Leaver Lifecycle Workflows Snapshots (Lifecycle Workflows)
AdministrativeUnit.Read.All Application Lesen von Administrative Units für delegierte Admin-Scopes Snapshots (Admin Units)
EntitlementManagement.Read.All Application Lesen von Access Packages, Catalogs, Connected Organizations Snapshots (Entitlement Management)
IdentityRiskyUser.Read.All Application Lesen von Benutzern, die von Identity Protection als risikoreich markiert wurden Snapshots (Identity Protection), Security Assessment
IdentityRiskEvent.Read.All Application Lesen von Risk Detection Events (Sign-In und User Risks) Snapshots (Risk Detections), Security Assessment
IdentityRiskyServicePrincipal.Read.All Application Lesen von Service Principals, die als risikoreich markiert sind Snapshots (Risky Service Principals)

Warum so viele Entra-Permissions?

Entra ID ist der umfangreichste Workload mit 29 Resource Types. Jede Permission deckt eine andere Gruppe von Konfigurationsobjekten ab. Die Permissions sind alle .Read.All — es werden keine Schreibrechte vergeben.

Intune (Device Management) Permissions

Permission Typ Wofür benötigt Betroffene Features
DeviceManagementConfiguration.Read.All Application Lesen von Device Compliance Policies, Configuration Profiles, Endpoint Security Policies, Enrollment Settings Snapshots (Intune), Compliance Evaluation
DeviceManagementApps.Read.All Application Lesen von Mobile App Management, App Protection Policies, Managed App Policies Snapshots (Intune App Protection)
DeviceManagementManagedDevices.Read.All Application Lesen von verwalteten Geräten und deren Status Snapshots (Managed Devices)
DeviceManagementServiceConfig.Read.All Application Lesen von Device Service Configuration, Conditional Access Settings, Intune Account Settings Snapshots (Intune Service Config)
DeviceManagementRBAC.Read.All Application Lesen von Intune RBAC-Informationen (Rollen und Zuweisungen) Snapshots (Intune RBAC)

Intune Permissions

Intune nutzt ein eigenes Permission-Präfixsystem (DeviceManagement*). Die 5 Permissions decken alle 22 Intune Resource Types ab, von Compliance Policies über Configuration Profiles bis hin zu Endpoint Security.

Microsoft Defender Permissions

Permission Typ Wofür benötigt Betroffene Features
SecurityEvents.Read.All Application Lesen von Secure Scores und Security Alerts Snapshots (Secure Scores), Security Assessment Reports
SecurityAlert.Read.All Application Lesen von Security Alerts aus Microsoft Defender XDR Snapshots (Security Alerts), Copilot Readiness (Defender Checks)
SecurityIncident.Read.All Application Lesen von Security Incidents Snapshots (Security Incidents)
AttackSimulation.Read.All Application Lesen von Attack Simulation Campaigns und Automations Snapshots (Attack Simulation)
ThreatAssessment.Read.All Application Lesen von Threat Assessment Daten Snapshots (Threat Assessment)
SecurityIdentitiesHealth.Read.All Application Lesen von Defender for Identity Health-Daten Snapshots (Defender for Identity), Copilot Readiness
SecurityIdentitiesSensors.Read.All Application Lesen von Defender for Identity Sensor-Konfigurationen Snapshots (Identity Sensors)

SharePoint Online Permissions

Permission Typ Wofür benötigt Betroffene Features
SharePointTenantSettings.Read.All Application Lesen von SharePoint Tenant Settings (Sharing, Sync, Site Creation, Storage Limits) Snapshots (SharePoint), SCUBA SharePoint Baseline
Sites.Read.All Application Lesen von SharePoint Sites Metadata Snapshots (SharePoint Sites)

Microsoft Purview Permissions

Permission Typ Wofür benötigt Betroffene Features
InformationProtectionPolicy.Read.All Application Lesen von Sensitivity Labels und Label Policies Snapshots (Purview Labels), Copilot Readiness (Purview Checks)
RecordsManagement.Read.All Application Lesen von Retention Labels und Retention Event Types Snapshots (Records Management)
eDiscovery.Read.All Application Lesen von eDiscovery Cases Snapshots (eDiscovery)

Windows 365 (Cloud PC) Permissions

Permission Typ Wofür benötigt Betroffene Features
CloudPC.Read.All Application Lesen von Cloud PC Provisioning Policies, Device Images, User Settings Snapshots (Cloud PC), 7 Resource Types

M365 Platform Permissions

Permission Typ Wofür benötigt Betroffene Features
Domain.Read.All Application Lesen von verifizierten und unverifizierten Domains Snapshots (Domains), Email Security Checks
ServiceHealth.Read.All Application Lesen von Service Health Übersichten Snapshots (Service Health)
ServiceMessage.Read.All Application Lesen von Service Announcements und Message Center Posts Snapshots (Service Messages)
Teamwork.Read.All Application Lesen von Teams-spezifischen Platform Settings Snapshots (Teams Platform)
AppCatalog.Read.All Application Lesen des Teams App Catalogs Snapshots (Teams Apps)

UTCM-spezifische Permissions (auf der Read App)

Permission Typ Wofür benötigt Betroffene Features
ConfigurationMonitoring.Read.All Application Lesen von UTCM Configuration Monitors und Snapshot Job Ergebnissen Drift Detection, Snapshot Capture (Teams/Exchange)
ConfigurationMonitoring.ReadWrite.All Application Erstellen und Verwalten von UTCM Monitors und Snapshot Jobs Drift Monitor Erstellung, Snapshot Job Trigger

ConfigurationMonitoring Permissions

Diese Permissions gehören zur UTCM API (Unified Tenant Configuration Management) und sind nicht Teil der Standard-Graph-API. Sie werden über die gleiche App Registration vergeben, aber der Endpunkt ist https://graph.microsoft.com/beta/tenantRelationships/managedTenants/....

Zusammenfassung Read App

Workload Anzahl Permissions Anzahl Resource Types
Entra ID 16 29
Intune 5 22
Defender 7 10+
SharePoint 2 3
Purview 3 5
Cloud PC 1 7
M365 Platform 5 6
UTCM 2 -
Gesamt 41 82+

2. Write App Registration (Optional)

Die Write App ist eine separate App Registration die nur benötigt wird, wenn Rollback- oder Apply-Operationen durchgeführt werden sollen. Sie ist vollständig optional — TCM365 funktioniert ohne Write App im Read-Only-Modus.

Least Privilege

Die Write App sollte nur in Tenants aktiviert werden, in denen aktive Konfigurationsänderungen (Rollback, Apply) gewünscht sind. Für reine Monitoring-Szenarien (Snapshot, Drift, Compliance) ist die Read App ausreichend.

Warum eine separate Write App?

  1. Audit Trail — Änderungen über die Write App sind klar vom Lese-Zugriff getrennt
  2. Minimale Rechte — Die Read App hat niemals Schreibzugriff, selbst bei Kompromittierung
  3. Approval Workflow — Die Write App kann an einen Change-Management-Prozess gebunden werden
  4. Separate Credentials — Write App Credentials können separat rotiert und verwaltet werden
  5. Granulare Kontrolle — Write App kann pro Tenant aktiviert/deaktiviert werden

Entra ID Write Permissions

Permission Typ Wofür benötigt Rollback-Szenario
Policy.ReadWrite.ConditionalAccess Application Erstellen, Ändern, Löschen von Conditional Access Policies CA Policy auf vorherigen Zustand zurücksetzen
Policy.ReadWrite.AuthenticationMethod Application Ändern von Authentication Method Policies (MFA, FIDO2, Passwordless) Auth Method Konfiguration wiederherstellen
Policy.ReadWrite.Authorization Application Ändern von Authorization Policies (Guest Invite, Self-Service Sign-Up) Authorization Settings zurücksetzen
Directory.ReadWrite.All Application Ändern von Directory Settings, Group Settings Directory/Group Settings wiederherstellen
RoleManagement.ReadWrite.Directory Application Ändern von Entra Role Assignments und Definitions Role Assignments wiederherstellen
Application.ReadWrite.All Application Ändern von App Registrations und Enterprise Applications App Registration Settings zurücksetzen
Organization.ReadWrite.All Application Ändern von Tenant-Level Settings Tenant Settings wiederherstellen

Intune Write Permissions

Permission Typ Wofür benötigt Rollback-Szenario
DeviceManagementConfiguration.ReadWrite.All Application Ändern von Compliance Policies, Configuration Profiles, Endpoint Security Intune Policies auf Snapshot-Stand zurücksetzen
DeviceManagementApps.ReadWrite.All Application Ändern von App Protection Policies, App Configurations App Protection zurücksetzen
DeviceManagementServiceConfig.ReadWrite.All Application Ändern von Device Service Konfigurationen Service Config wiederherstellen

Defender Write Permissions

Permission Typ Wofür benötigt Rollback-Szenario
SecurityEvents.ReadWrite.All Application Ändern von Security Alert Status Alert Status zurücksetzen

SharePoint Write Permissions

Permission Typ Wofür benötigt Rollback-Szenario
SharePointTenantSettings.ReadWrite.All Application Ändern von SharePoint Tenant Settings (Sharing, Sync, Creation) SharePoint Settings wiederherstellen

Zusammenfassung Write App

Workload Anzahl Write Permissions Rollback-Unterstützung
Entra ID 7 Vollständig (CA, Auth Methods, Directory, Roles, Apps, Org)
Intune 3 Vollständig (Compliance, Configuration, App Protection)
Defender 1 Teilweise (Alert Status)
SharePoint 1 Teilweise (Tenant Settings)
Gesamt 12 52 Resource Types

Teams & Exchange Rollback

Teams und Exchange Rollback läuft nicht über Graph API Write Permissions, sondern über die UTCM API und erfordert zusätzliche Admin-Rollen:

  • Teams Admin oder Global Admin Entra Directory Role
  • Exchange Administrator Entra Directory Role
  • Application Access Policy für Exchange

3. UTCM Service Principal (Pflicht für Teams & Exchange)

Der UTCM Service Principal ist ein von Microsoft bereitgestellter Service Principal, der für die UTCM Snapshot Job API benötigt wird. Er muss im Ziel-Tenant installiert werden.

Service Principal Details

Eigenschaft Wert
App ID 03b07b79-c5bc-4b5e-9bfa-13acf4a99998
Name Microsoft Tenant Configuration Platform
Typ Well-Known Microsoft Service Principal
Zweck UTCM Snapshot Job API und Configuration Monitor API

Warum wird der UTCM SP benötigt?

Teams und Exchange Konfigurationen können nicht direkt über die Graph API gelesen werden wie bei Entra ID oder Intune. Stattdessen verwendet Microsoft die UTCM Snapshot Job API:

Entra/Intune/Defender → Direkte Graph API GETs → Read App
Teams/Exchange       → UTCM Snapshot Job API  → UTCM Service Principal

Der UTCM SP führt die Snapshot-Erfassung im Tenant durch und stellt die Ergebnisse über die Graph API bereit.

UTCM SP Setup-Schritte

Schritt 1: UTCM SP im Tenant installieren

# PowerShell: UTCM Service Principal im Tenant registrieren
Connect-MgGraph -Scopes "Application.ReadWrite.All"
New-MgServicePrincipal -AppId "03b07b79-c5bc-4b5e-9bfa-13acf4a99998"

Schritt 2: Entra Directory Role zuweisen

Der UTCM SP benötigt die Global Reader Rolle:

Rolle Template ID Zweck
Global Reader f2ef992c-3afb-46b9-b7cf-a126ee74c451 Lesezugriff auf alle Tenant-Konfigurationen für Snapshot-Erfassung
# Global Reader Role dem UTCM SP zuweisen
$utcmSP = Get-MgServicePrincipal -Filter "appId eq '03b07b79-c5bc-4b5e-9bfa-13acf4a99998'"
$globalReaderRole = Get-MgDirectoryRole -Filter "roleTemplateId eq 'f2ef992c-3afb-46b9-b7cf-a126ee74c451'"

New-MgDirectoryRoleMember -DirectoryRoleId $globalReaderRole.Id -DirectoryObjectId $utcmSP.Id

Schritt 3: Permissions auf dem Microsoft Graph SP vergeben

Permission Ziel-SP Zweck
Organization.Read.All Microsoft Graph (00000003-0000-0000-c000-000000000000) Tenant-Info für UTCM Kontext

Schritt 4: Exchange-spezifische Konfiguration

Für Exchange-Workload-Capture sind zusätzliche Schritte erforderlich:

Permission Ziel-SP Zweck
Exchange.ManageAsApp Exchange Online (00000002-0000-0ff1-ce00-000000000000) Exchange-Konfigurationen über UTCM lesen
# Application Access Policy für Exchange erstellen (Exchange Online PowerShell)
Connect-ExchangeOnline

New-ApplicationAccessPolicy `
  -AppId "03b07b79-c5bc-4b5e-9bfa-13acf4a99998" `
  -PolicyScopeGroupId "your-security-group@domain.com" `
  -AccessRight RestrictAccess `
  -Description "UTCM Exchange Access"

Application Access Policy

Die Application Access Policy für Exchange muss manuell vom Tenant-Admin konfiguriert werden. Dies kann nicht automatisiert werden und ist ein separater Schritt im Setup-Wizard.

UTCM SP Workload-Abdeckung

Workload Resource Types Capture-Methode
Teams 29 Resource Types (Teams Settings, Channels, Policies, Templates, etc.) UTCM Snapshot Job API
Exchange 21 Resource Types (Transport Rules, Connectors, Policies, etc.) UTCM Snapshot Job API
Security & Compliance 24 Resource Types (DLP, Retention, Audit, eDiscovery, etc.) UTCM Snapshot Job API
Gesamt 74 Resource Types

Capture-Strategien im Detail

TCM365 verwendet zwei unterschiedliche Strategien für die Konfigurationserfassung:

Strategie 1: Direkte Graph API (Read App)

TCM365 Backend  →  Microsoft Graph API  →  Konfigurationsdaten
     │                    │
     │  GET /v1.0/...     │
     │  GET /beta/...     │
     └────────────────────┘

Verwendet für: Entra ID, Intune, Defender, SharePoint, Purview, Cloud PC, M365 Platform

Vorteile: - Sofortige Ergebnisse (synchron) - Granulare Kontrolle über abgefragte Ressourcen - Keine Abhängigkeit vom UTCM Service Principal

Benötigt: Nur die Read App Registration mit den entsprechenden Permissions

Strategie 2: UTCM Snapshot Job API (UTCM SP)

TCM365 Backend  →  UTCM API  →  Snapshot Job erstellen  →  Job läuft
     │                                                         │
     │  POST /beta/.../snapshotJobs                           │
     │                                                         │
     │  GET /beta/.../snapshotJobs/{id}  ←  Status polling  ←─┘
     │                                         │
     │  GET /beta/.../snapshotJobs/{id}/content ← Ergebnisse abrufen
     └─────────────────────────────────────────┘

Verwendet für: Teams, Exchange, Security & Compliance

Vorteile: - Zugriff auf Workloads die keine direkte Graph API haben - Konsistenter Snapshot-Zeitpunkt über alle Ressourcen - Microsoft-seitige Aggregation der Daten

Benötigt: UTCM Service Principal + Global Reader Rolle + (für Exchange) Application Access Policy


Permission-Zuordnung nach Feature

Welches Feature braucht welche Permissions?

Feature Read App Permissions Write App UTCM SP
Snapshots erstellen Alle Workload-Read-Permissions - Ja (für Teams/Exchange)
Drift Detection Alle Workload-Read-Permissions - ConfigurationMonitoring.ReadWrite.All
Baseline Evaluation Alle Workload-Read-Permissions - -
CA What-If Simulation Policy.Read.All - -
Compliance Evaluation Alle Workload-Read-Permissions - -
Rollback/Apply Alle Read-Permissions Ja (alle Write-Permissions) -
Security Assessment SecurityEvents.Read.All, alle Entra-Reads - -
Copilot Readiness Organization.Read.All, SecurityAlert.Read.All, InformationProtectionPolicy.Read.All - -
Email Security Domain.Read.All - -
Audit Attribution AuditLog.Read.All* - -
Reports Alle Workload-Read-Permissions - -

AuditLog.Read.All wird für Change Attribution benötigt — diese Permission ist in der v2.2-Codebasis als Requirement dokumentiert, aber noch nicht im Permission-Verification-Flow integriert.

Minimale Permission-Sets nach Use Case

Use Case 1: Nur Entra ID Monitoring

Read App: Directory.Read.All, Policy.Read.All, Policy.Read.PermissionGrant,
          Application.Read.All, Organization.Read.All, RoleManagement.Read.Directory,
          RoleAssignmentSchedule.Read.Directory, RoleEligibilitySchedule.Read.Directory,
          RoleManagementPolicy.Read.Directory, AccessReview.Read.All,
          LifecycleWorkflows.Read.All, AdministrativeUnit.Read.All,
          EntitlementManagement.Read.All, IdentityRiskyUser.Read.All,
          IdentityRiskEvent.Read.All, IdentityRiskyServicePrincipal.Read.All

Write App: Nicht benötigt
UTCM SP: Nicht benötigt

Use Case 2: Vollständiges M365 Monitoring (ohne Rollback)

Read App: Alle 41 Permissions (siehe Tabelle oben)
Write App: Nicht benötigt
UTCM SP: Ja (für Teams/Exchange)

Use Case 3: Vollständiges M365 mit Rollback

Read App: Alle 41 Permissions
Write App: Alle 12 Write Permissions
UTCM SP: Ja (für Teams/Exchange)

Setup-Wizard Ablauf

Der M365 Setup Wizard in TCM365 führt durch die Konfiguration in folgenden Schritten:

Schritt 1: Read App konfigurieren

  1. Tenant ID, Client ID und Client Secret eingeben
  2. TCM365 prüft die Verbindung (Organization.Read.All)
  3. Permission-Audit: Welche Permissions sind bereits vergeben?
  4. Fehlende Permissions werden angezeigt

Schritt 2: UTCM SP prüfen

  1. Prüfung ob UTCM SP (03b07b79-c5bc-4b5e-9bfa-13acf4a99998) im Tenant existiert
  2. Prüfung der Global Reader Rolle
  3. Prüfung der Application Access Policy (Exchange)
  4. Anleitung für manuelle Schritte falls nötig

Schritt 3: Write App konfigurieren (Optional)

  1. Separate Client ID und Client Secret für Write App
  2. Write-Permission-Audit
  3. Rollback-Fähigkeiten werden freigeschaltet

Schritt 4: Workloads aktivieren

  1. Auswahl der gewünschten Workloads (Entra, Intune, Teams, Exchange, etc.)
  2. Permission-Prüfung pro aktiviertem Workload
  3. Test-Snapshot für Validierung

Credential-Speicherung

TCM365 speichert die Credentials der App Registrations verschlüsselt in der Datenbank:

Feld Entity Verschlüsselung Inhalt
client_secret (Read App) M365VendorTenant AES-256 (EncryptionService) Client Secret der Read App
write_credentials M365VendorTenant AES-256 (EncryptionService) JSON mit Client ID + Secret der Write App
granted_permissions M365VendorTenant Klartext (JSONB) Tracking welche Permissions pro App vergeben sind

Per-Tenant Encryption

Im Produktionsbetrieb wird die Azure Key Vault SecretBackend verwendet. Jeder Tenant hat einen eigenen Encryption Key. Im Entwicklungsmodus wird LocalAES mit dem APP_SECRET_KEY verwendet.


Häufige Fragen

Kann ich eine einzige App Registration für Read und Write verwenden?

Technisch ja, aber es wird nicht empfohlen. Die Trennung bietet: - Besseren Schutz bei Kompromittierung (Read App kann nichts ändern) - Klarere Audit Trails - Unabhängige Credential-Rotation

Brauche ich alle Permissions sofort?

Nein. TCM365 arbeitet workload-basiert — Sie müssen nur Permissions für die Workloads vergeben, die Sie tatsächlich überwachen wollen. Wenn Sie z.B. nur Entra ID monitoren, brauchen Sie weder Intune- noch Teams-Permissions.

Was passiert wenn eine Permission fehlt?

TCM365 wird den betroffenen Workload beim Snapshot übersprungen und eine Warnung anzeigen. Der Rest des Snapshots wird normal erfasst. Der Setup-Wizard zeigt fehlende Permissions an.

Warum braucht die Read App ConfigurationMonitoring.ReadWrite.All?

Für das Erstellen von UTCM Configuration Monitors (Drift Detection) muss TCM365 Monitors anlegen können — das erfordert .ReadWrite.All. Für reines Snapshot-Lesen würde .Read.All genügen.

Kann ich den UTCM SP weglassen?

Ja, aber dann können Teams und Exchange Konfigurationen nicht erfasst werden. Entra ID, Intune, Defender, SharePoint, Purview und Cloud PC funktionieren weiterhin über die direkte Graph API.

Welche Permissions brauche ich für Copilot Readiness?

Minimal: - Organization.Read.All (Lizenzen prüfen) - SecurityAlert.Read.All (Defender XDR Status) - InformationProtectionPolicy.Read.All (Purview Labels) - Entra-Standard-Permissions (für Identity-Checks)


Vollständige Permission-Liste (Quick Reference)

Read App — 41 Application Permissions

# Entra ID (16)
Directory.Read.All
Policy.Read.All
Policy.Read.PermissionGrant
Application.Read.All
Organization.Read.All
RoleManagement.Read.Directory
RoleAssignmentSchedule.Read.Directory
RoleEligibilitySchedule.Read.Directory
RoleManagementPolicy.Read.Directory
AccessReview.Read.All
LifecycleWorkflows.Read.All
AdministrativeUnit.Read.All
EntitlementManagement.Read.All
IdentityRiskyUser.Read.All
IdentityRiskEvent.Read.All
IdentityRiskyServicePrincipal.Read.All

# Intune (5)
DeviceManagementConfiguration.Read.All
DeviceManagementApps.Read.All
DeviceManagementManagedDevices.Read.All
DeviceManagementServiceConfig.Read.All
DeviceManagementRBAC.Read.All

# Defender (7)
SecurityEvents.Read.All
SecurityAlert.Read.All
SecurityIncident.Read.All
AttackSimulation.Read.All
ThreatAssessment.Read.All
SecurityIdentitiesHealth.Read.All
SecurityIdentitiesSensors.Read.All

# SharePoint (2)
SharePointTenantSettings.Read.All
Sites.Read.All

# Purview (3)
InformationProtectionPolicy.Read.All
RecordsManagement.Read.All
eDiscovery.Read.All

# Cloud PC (1)
CloudPC.Read.All

# M365 Platform (5)
Domain.Read.All
ServiceHealth.Read.All
ServiceMessage.Read.All
Teamwork.Read.All
AppCatalog.Read.All

# UTCM (2)
ConfigurationMonitoring.Read.All
ConfigurationMonitoring.ReadWrite.All

Write App — 12 Application Permissions

# Entra ID (7)
Policy.ReadWrite.ConditionalAccess
Policy.ReadWrite.AuthenticationMethod
Policy.ReadWrite.Authorization
Directory.ReadWrite.All
RoleManagement.ReadWrite.Directory
Application.ReadWrite.All
Organization.ReadWrite.All

# Intune (3)
DeviceManagementConfiguration.ReadWrite.All
DeviceManagementApps.ReadWrite.All
DeviceManagementServiceConfig.ReadWrite.All

# Defender (1)
SecurityEvents.ReadWrite.All

# SharePoint (1)
SharePointTenantSettings.ReadWrite.All

UTCM Service Principal — Setup Requirements

# App ID: 03b07b79-c5bc-4b5e-9bfa-13acf4a99998

# Entra Directory Role
Global Reader (Template ID: f2ef992c-3afb-46b9-b7cf-a126ee74c451)

# Microsoft Graph SP Permission
Organization.Read.All (on 00000003-0000-0000-c000-000000000000)

# Exchange Online SP Permission (nur für Exchange Workload)
Exchange.ManageAsApp (on 00000002-0000-0ff1-ce00-000000000000)

# Exchange Application Access Policy (manuell)
New-ApplicationAccessPolicy -AppId "03b07b79-c5bc-4b5e-9bfa-13acf4a99998" ...