Form to Wipe
Form to Wipe (FTW) ist ein sicherer, genehmigungsgesteuerter Gerätelösch-Workflow, der Slack oder GitHub mit der Jamf Platform API verbindet. Ein Anfragender reicht eine Löschanfrage ein; ein separater Genehmiger prüft und genehmigt diese; der Workflow sendet einen MDM-Löschbefehl an das Zielgerät. Jeder Schritt wird protokolliert.
FTW ist in zwei Bereitstellungspfaden verfügbar. Die Architektur und das Sicherheitsmodell sind in beiden gleich — nur die Oberfläche und Infrastrukturanforderungen unterscheiden sich.
Funktionsweise
Anfragender reicht ein → Genehmiger prüft → Anfragender bestätigt → Löschbefehl gesendet → Ergebnisse protokolliert
- Ein Anfragender reicht über einen Slack-Slash-Befehl oder ein GitHub-Issue eine Löschanfrage ein und gibt den Ziel-Tenant, den Gerätetyp, die Geräte-ID(s) und einen Grund an.
- Der Workflow leitet die Anfrage an einen Genehmiger weiter. Der Genehmiger kann nicht die gleiche Person wie der Anfragender sein — dies wird auf der Plattformebene in beiden Pfaden durchgesetzt.
- Der Genehmiger prüft die Anfrage und genehmigt oder lehnt sie ab.
- Wenn genehmigt, erhält der Anfragender eine abschließende Bestätigungsaufforderung, bevor der Löschbefehl ausgeführt wird.
- Der Workflow ruft die Jamf Platform API auf, um einen MDM-Löschbefehl an jedes Zielgerät zu senden.
- Ergebnisse werden an den Anfragenden zurückgesendet und in ein Audit-Log geschrieben.
Unterstützte Zielgruppenfestlegung
FTW unterstützt drei Möglichkeiten, um anzugeben, welche Geräte gelöscht werden sollen:
- Einzelnes Gerät — eine Jamf Pro-Datensatz-ID
- Mehrere Geräte — komma-getrennte Liste von Jamf Pro-Datensatz-IDs
- Gerätegruppe — Name einer intelligenten oder statischen Gruppe, aufgelöst zu Mitglied-Geräte-IDs über die Platform API zur Laufzeit
Unterstützte Gerätetypen
| Typ | Plattform | Löschoptionen |
|---|---|---|
| Computer | macOS | Optionale Find My PIN |
| Mobile Device | iOS / iPadOS | Datenplan beibehalten, Aktivierungssperre löschen, zum Service zurück, Nähe-Setup nicht zulassen |
Multi-Tenant-Unterstützung
Beide Bereitstellungspfade unterstützen mehrere Jamf-Tenants. Tenants werden als gepaarte Listen von Anzeigenamen und UUIDs konfiguriert. Der Anfragender wählt einen Tenant aus einem Dropdown bei der Einreichung aus — der ausgewählte Tenant wird durch jeden nachfolgenden Schritt automatisch weitergegeben.
JAMF_TENANT_NAMES = Production, Staging, Lab
JAMF_TENANT_IDS = aaaaaaaa-..., bbbbbbbb-..., cccccccc-...
Sicherheitsmodell
FTW ist auf drei Sicherheitsprinzipien aufgebaut:
Aufgabenteilung. Der Anfragender kann seine eigene Anfrage nicht genehmigen. Dies wird auf der Plattformebene durchgesetzt — GitHub-Branch-Schutzregeln und Slack-Modal-Routing-Logik verhindern beide Selbstgenehmigung, bevor die Anfrage einen Genehmiger erreicht.
Audit-Trail. Jede Aktion — Einreichung, Genehmigung, Ablehnung, Bestätigung, Löschergebnis, Timeout — wird mit Akteur-Identität, Zeitstempel und Tenant protokolliert. Der GitHub Workflow-Pfad verwendet zusammengeführte Pull Requests als unveränderliche Audit-Datensätze; der n8n-Pfad schreibt in einen Slack-Audit-Kanal.
Credential-Isolation. Jamf Platform API-Credentials werden als Umgebungsgeheimnisse gespeichert, niemals in Workflow-Code oder Request-Bodies. Der n8n-Pfad verwendet ein gemeinsames Secret-Token, um zu überprüfen, dass eingehende Slack-Anfragen echt sind, bevor sie verarbeitet werden.
Jamf Platform API-Voraussetzungen
Beide Pfade erfordern einen Jamf Platform API OAuth2-Client mit folgenden Berechtigungen:
| Berechtigung | Warum es erforderlich ist |
|---|---|
Read Computers |
Computernamen und Management-ID nach Datensatz-ID nachschlagen |
Read Mobile Devices |
Mobile Device-Namen und Management-ID nach Datensatz-ID nachschlagen |
Read Computer Groups |
Intelligente und statische Gruppenmitgliedschaft für Gruppen-Zielgruppenfestlegung auflösen |
Read Mobile Device Groups |
Mobile Device-Gruppenmitgliedschaft für Gruppen-Zielgruppenfestlegung auflösen |
Send Computer Remote Erase Command |
Löschbefehl an macOS-Geräte ausstellen |
Send Mobile Device Remote Erase Command |
Löschbefehl an iOS/iPadOS-Geräte ausstellen |
Erstellen Sie den API-Client in Jamf Pro unter Einstellungen → API-Rollen und -Clients → API-Clients → Neu.
Bereitstellungspfad-Auswahl
| n8n | GitHub Workflow | |
|---|---|---|
| Oberfläche | Slack-Modal | GitHub Issue + PR |
| Genehmigungs-UX | Slack DM | PR-Review |
| Genehmiger-Quelle | Entra, Okta oder Slack-Usergroup | Branch-Schutz + CODEOWNERS |
| Audit-Log | Slack-Kanal | Git-Verlauf (dauerhaft) |
| Infrastruktur | n8n-Instanz erforderlich | Keine (GitHub-hosted Runners) |
| Real-time-Timeout | ✅ Konfigurierbar | ❌ Manuelle Schließung |
| Kosten | n8n-Lizenz | Kostenlos (öffentlich) / Actions-Minuten |
Wählen Sie n8n, wenn Ihr Team bereits n8n ausführt, Sie ein Slack-natives Modal-Erlebnis mögen, oder Sie Okta- oder Slack-Usergroup-basierte Genehmigungsrouting benötigen.
Wählen Sie GitHub Workflow, wenn Sie keine Infrastruktur mögen, Audit-Trail eine Priorität ist (jede Löschung ist eine zusammengeführte PR — permanenter Git-Verlauf), und Ihr IT-Team sich mit der Arbeit in GitHub wohlfühlt.
Bereit zur Bereitstellung? Springen Sie zum Handbuch für Ihren gewählten Pfad: