Skip to Content
AutomatisierungGraph API Basics

Microsoft Graph API

Die Microsoft Graph API ist der einzige programmatische Zugang zu allen Microsoft 365 und Intune Daten. Jede Automatisierung — ob PowerShell-Skript, Deployment-Automation oder Monitoring — nutzt unter der Haube die Graph API.


Authentifizierung

App Registration mit Zertifikat (Concat Standard)

FĂĽr alle automatisierten Prozesse (Backups, Reports, Deployments) wird eine App Registration mit zertifikatsbasierter Authentifizierung verwendet.

App Registration erstellen

Entra ID → App registrations → New registration:

EinstellungWert
NameConcat-Intune-Automation
Supported account typesSingle tenant
Redirect URINicht erforderlich

Zertifikat hochladen

App → Certificates & secrets → Certificates → Upload:

# Self-signed Zertifikat erstellen (fĂĽr Entwicklung) $cert = New-SelfSignedCertificate -Subject "CN=Concat-Intune-Automation" ` -CertStoreLocation "Cert:\CurrentUser\My" ` -KeyExportPolicy Exportable -KeySpec Signature ` -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256 ` -NotAfter (Get-Date).AddYears(2) # Ă–ffentlichen SchlĂĽssel exportieren (fĂĽr Upload in Entra ID) Export-Certificate -Cert $cert -FilePath "C:\temp\concat-automation.cer"

FĂĽr Produktionsumgebungen: Zertifikat von einer internen CA oder einem vertrauenswĂĽrdigen Anbieter.

API-Permissions konfigurieren

App → API permissions → Add a permission → Microsoft Graph → Application permissions:

PermissionZweckTyp
DeviceManagementConfiguration.ReadWrite.AllPolicies lesen/schreibenApplication
DeviceManagementManagedDevices.ReadWrite.AllGeräte-AktionenApplication
DeviceManagementApps.ReadWrite.AllApp-VerwaltungApplication
Policy.ReadWrite.ConditionalAccessCA-PoliciesApplication
Directory.Read.AllGruppen und User lesenApplication

Admin Consent erteilen → „Grant admin consent for [Tenant]” klicken.

Verbindung testen

# Verbindung mit Zertifikat Connect-MgGraph -ClientId "XXXXXXXX-XXXX-XXXX-XXXX" ` -TenantId "XXXXXXXX-XXXX-XXXX-XXXX" ` -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXX" # Verbindung prĂĽfen Get-MgContext
Caution

Niemals Client Secrets in Skripten verwenden! Client Secrets können leaken (Logs, Repos, Screenshots). Zertifikate sind die einzig akzeptable Methode für automatisierte Prozesse. Secrets nur für kurzfristige Entwicklungszwecke — und dann sofort rotieren.


Häufig genutzte Endpoints

Geräte-Verwaltung

EndpointZweckMethode
/deviceManagement/managedDevicesAlle verwalteten GeräteGET
/deviceManagement/managedDevices/{id}/wipeGerät wipenPOST
/deviceManagement/managedDevices/{id}/retireGerät retirenPOST
/deviceManagement/managedDevices/{id}/syncDeviceSync erzwingenPOST
/deviceManagement/windowsAutopilotDeviceIdentitiesAutopilot-GeräteGET
/deviceManagement/importedWindowsAutopilotDeviceIdentitiesAutopilot-ImportPOST
# Alle Windows-Geräte abrufen $devices = Get-MgDeviceManagementManagedDevice -Filter "operatingSystem eq 'Windows'" -All $devices | Select-Object DeviceName, ComplianceState, LastSyncDateTime | Format-Table

Best Practices

RegelDetails
Least PrivilegeNur die minimal notwendigen Graph Permissions vergeben — nie .ReadWrite.All wenn .Read.All reicht
Certificate AuthFĂĽr Automatisierung immer Zertifikate verwenden, nie Client Secrets
ThrottlingGraph API hat Rate Limits (HTTP 429) — Retry-After Header beachten, exponentielles Backoff implementieren
PaginationGroße Ergebnismengen mit -All Parameter oder @odata.nextLink vollständig abrufen
Beta vs. v1.0Für Produktionsskripte immer v1.0 verwenden — Beta-Endpoints können sich ändern
Error HandlingJedes Skript braucht Try/Catch und aussagekräftige Fehlermeldungen
Warning

Graph API Permissions sind mächtig. Eine App Registration mit DeviceManagementManagedDevices.ReadWrite.All kann alle Geräte wipen. App Registrations müssen vom Security Team und dem Technical Lead reviewed werden.

Last updated on