# 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)

1. **Apple Configurator 2** öffnen
2. Menü-Bar → `Apple Configurator 2 → Einstellungen → Server` (oder neuere Versionen: `Organizations`)
3. `+` → `New Supervision Identity...`
4. Name vergeben (z.B. `ReBreak Supervision Chahine 2026`)
5. Cert wird im **macOS-Schlüsselbund** gespeichert
6. 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.pass` ablegen (chmod 600)

## Pfad B — Via cfgutil CLI

VERIFY ON DEVICE: exakte Flags noch zu validieren. Apple's CLI-Doku ist hier dünn.

```bash
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

```bash
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 `.p12` ist **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:

```bash
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.
