MDM-VPN-Pivot (Phase F.2 done): - ops/mdm/profiles/rebreak-iphone-protection.mobileconfig auf v5 mit com.apple.vpn.managed Payload + OnDemandUserOverrideDisabled. iPhone-User kann ReBreak-VPN-Profile nicht entfernen und "Bedarf verbinden"-Toggle ist disabled. allowEnablingRestrictions empirisch widerlegt für FC-Toggle- Lock — out. - DEV-removable Variante als Test-Profile dazu. - Bootstrap-Tool (rebreak-supervise.sh) + Supervision-Identity-Setup-Doc. - PHASES.md updated mit empirischen Befunden. App-side MDM-Detect (Pfad-a Banner-Logic): - modules/rebreak-protection: getDeviceState() returnt mdmManaged via Heuristik NETunnelProviderManager.count > 1 (App selbst kann nur einen eigenen erstellen, MDM-Push fügt einen zweiten hinzu). - DeviceLayers.mdmManaged?: boolean Type. - blocker.tsx: lockedIn-Bedingung erweitert um mdmManaged. Bei MDM-managed iPhones wird der App-Lock-Card (FC-Authorization-Toggle UI) ausgeblendet weil der per-App FC-Toggle nicht lockbar ist und durch den MDM-VPN-Layer redundant. Layer-2-Country-Curated-Pivot: - backend: vip-swap.post.ts raus, suggest.post.ts rein. Curated-domains durch admin (separate Tabelle/Pfad), getrennt von User-Custom-Domains. - Admin-APIs für curated-domain Pflege (index.get + [id].patch). - seed-country-blocklists Script für initiale Curated-Domain-Liste. - protection/webcontent-domains.get refactored für Country-Curated-Pfad. - Migration drop_vip_swap_fields.sql + schema.prisma adjusted. - docs/concepts/layer2-country-pivot.md mit Architektur + Decision-Trail. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.1 KiB
Supervision-Identity einmaliger Setup
Eine Supervision-Identity ist ein Cert+Key-Paar (im .p12-Container), das beweist dass DEIN Mac der "Supervisor" eines iPhones ist. Apple verlangt das, damit ein iPhone nicht von beliebigen Macs supervised werden kann.
Einmal pro Mac generieren. Persistent für alle Devices und alle Sessions.
Ohne Identity scheitert cfgutil prepare --supervised mit einem Cert-Fehler.
Wo die Identity liegen muss
Das Bootstrap-Tool erwartet die Identity standardmäßig hier:
~/.rebreak-supervise/supervision-identity.p12
Override via Env-Variable SUPERVISION_IDENTITY_P12.
Pfad A — Via Apple Configurator 2 (GUI, empfohlen)
- Apple Configurator 2 öffnen
- Menü-Bar →
Apple Configurator 2 → Einstellungen → Server(oder neuere Versionen:Organizations) +→New Supervision Identity...- Name vergeben (z.B.
ReBreak Supervision Chahine 2026) - Cert wird im macOS-Schlüsselbund gespeichert
- Schlüsselbund öffnen (
Schlüsselbundverwaltung.app):- Suche nach dem Namen aus Schritt 4
- Cert + Private-Key sollten beide sichtbar sein
- Rechtsklick auf Cert → „2 Objekte exportieren..."
- Format: „Personal Information Exchange (.p12)"
- Speichern als
~/.rebreak-supervise/supervision-identity.p12 - Passwort vergeben — leer lassen für einfachen Bootstrap-Tool-Zugriff, ODER Passwort setzen und manuell in
~/.rebreak-supervise/supervision-identity.passablegen (chmod 600)
Pfad B — Via cfgutil CLI
VERIFY ON DEVICE: exakte Flags noch zu validieren. Apple's CLI-Doku ist hier dünn.
mkdir -p ~/.rebreak-supervise
CFGUTIL=/Applications/Apple\ Configurator.app/Contents/MacOS/cfgutil
# Identity in Schlüsselbund generieren (cfgutil-eigener Aufruf)
"$CFGUTIL" generate-supervision-identity \
--name "ReBreak Supervision $(whoami) $(date +%Y)"
# Dann via Pfad-A Schritt 6 exportieren (das CLI-Tool kann nicht direkt .p12 schreiben)
Verifikation
ls -l ~/.rebreak-supervise/supervision-identity.p12
# Sollte: -rw------- 1 ...
# Cert-Inhalt prüfen (Passwort eingeben falls gesetzt)
openssl pkcs12 -info -in ~/.rebreak-supervise/supervision-identity.p12 -nokeys
Erwartete Ausgabe enthält etwa:
subject=/CN=Apple Configurator/.../CN=ReBreak Supervision ...
Sicherheit
- Die
.p12ist gleichwertig zur Macht ein iPhone zu supervisen — schützen wie einen SSH-Key - Niemals in Git committen
- Bei Mac-Wechsel: Identity exportieren + auf neuen Mac übertragen (oder neu generieren — alte Devices akzeptieren dann nur die alte)
- Bei Identity-Verlust: alte enrollte Devices bleiben weiter supervised, aber dieser Mac kann sie nicht mehr managen. Neuen Mac → neue Identity → User-Devices brauchen Re-Setup-Sandwich
Bei Fehler "supervision identity not trusted"
Apple verlangt manchmal dass die Identity im System-Schlüsselbund sitzt (nicht User). Workaround:
sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain \
~/Path/to/exported-cert-only.cer
Oder via Apple Configurator GUI re-generieren — die GUI handhabt das korrekt.