# Skill-Authentifizierung

Bewahren Sie Skill-Anmeldedaten in XMEMO_KEY oder dem unterstützten Geräteanmelde-Flow auf, niemals in öffentlicher Ausgabe.

- Canonical: https://docs.xmemo.dev/de/docs/skills/authentication
- Locale: de-DE
- Content-Locale: de-DE
- Canonical-Content-Digest: be9eeb314af1163f47f713234e990cb81a2e76a585a0fe87f77a4a45fcecb506
- Edition-Digest: 34fb7fb9d6b604a15056bf84f2e1cb84e5c6b0ed59b4160e40a05880a32630bc
- Source-Revision: sha256:bd8b11d078e9e281fe66b1a4a5591f15aaaae0518de04b052b0c28ef43a177c1

## Rangfolge bei der Auflösung von Anmeldedaten

Die eigenständige Skill-Laufzeitumgebung löst Anmeldedaten nach einer strengen dreistufigen Rangfolge auf. Verwaltete externe Secrets haben stets Vorrang vor lokalen Dateien, wodurch sichergestellt wird, dass Tokens bei Vorhandensein eines Umgebungs-Secrets niemals auf der Festplatte dupliziert werden.

- 1. XMEMO_KEY: Umgebungsvariable oder verwalteter Secret-Speicher (Doppler, 1Password, Vault). Bevorzugt; wird niemals in lokale Anmeldedatendateien kopiert.
- 2. Meta Muse Secure Vault: Ersatz-Vault-Auflösung in unterstützten Meta Muse-Umgebungen.
- 3. Lokale Anmeldedatendatei: ~/.xmemo/skill-credentials.json (oder $XMEMO_CREDENTIALS_PATH), wird nur als Fallback gelesen, wenn keine Umgebungs-Anmeldedaten gesetzt sind.
- OpenClaw-Egress-Anforderung: OpenClaw-Egress ist eine Transportanforderung, die innerhalb des XMEMO_KEY-Zweigs (auth-state.mjs) behandelt wird. Wird ein OpenClaw-Sentinel erkannt, wird die Erreichbarkeit des Egress-Proxys erzwungen; dies ist eine Transportüberprüfung innerhalb von XMEMO_KEY, keine separate Anmeldedatenquelle.
- Null Token-Exposition: Befehle und doctor-Diagnosen geben niemals aktive Tokens oder Secret-Präfixe aus.

```bash
# Preferred: provide credential via environment or secret store
export XMEMO_KEY='<your-xmemo-token>'

# Inspect active credential source and scopes without printing secrets:
node scripts/xmemo-skill.mjs auth status --verify
```

## Geräteanmeldung und informierte Klartext-Wahl

Wenn kein verwalteter Umgebungsschlüssel vorhanden ist, verwendet die interaktive Einrichtung die browserbasierte Geräteautorisierung. Der Benutzer genehmigt den Zugriff im Browser, und der Browser zeigt den Bearer-Token-Wert niemals an.

- Explizite Klartext-Zustimmung: Der Befehl login erfordert --allow-plaintext, um die informierte Zustimmung zur unverschlüsselten Speicherung des Tokens auf dem lokalen Rechner zu bestätigen.
- Eingeschränkte Dateiberechtigungen: ~/.xmemo/skill-credentials.json wird mit 0600 POSIX-Berechtigungen erstellt (nur durch den Eigentümer les- und schreibbar).
- Sicherer stdin-Import: Importieren Sie ein vorhandenes Token über die Standardeingabe mit auth add --from-stdin --allow-plaintext, um Befehlszeilenargumente und Protokollierung im Shell-Verlauf zu vermeiden.
- Geräteautorisierungs-Endpunkte: POST /v1/auth/device/start (Ablauf initiieren), POST /v1/auth/device/token (Abfragen und Austauschen), POST /v1/auth/token/validate (Verifizieren), POST /v1/auth/token/revoke-self (Widerrufen).

```bash
# Start interactive device login (requires explicit plaintext flag):
node scripts/xmemo-skill.mjs login --allow-plaintext

# Or pipe an existing token securely from standard input:
printf '%s' "$XMEMO_KEY" | node scripts/xmemo-skill.mjs auth add --from-stdin --allow-plaintext

# Verify active session status:
node scripts/xmemo-skill.mjs auth status --verify
```

## Grenzen der temporären Registrierung

Für unbeaufsichtigte Umgebungen oder wenn eine Person die formelle Anmeldung ablehnt, kann die Skill eine temporäre Speicher-Sandbox registrieren. Temporärer Speicher ist streng begrenzt und nur für kurzzeitige Betriebskontinuität vorgesehen.

- Nur unbeaufsichtigt oder abgelehnt: node scripts/xmemo-skill.mjs register --reason <unattended|declined> --allow-plaintext.
- Kapazitätsobergrenze: Begrenzt auf maximal 100 Elemente.
- Aufbewahrungs-TTL: 14 Tage Inaktivitäts-TTL und 30 Tage absolute maximale Lebensdauer.
- Zweistufige Übernahme-Übergabe: Gibt eine Bind-URL (bind_url) aus, über die ein menschlicher Operator das temporäre Konto übernehmen und an formelle Anmeldedaten binden kann.
- Befehle zur Übernahmeverwaltung: auth claim-status prüft ausstehende Übernahmen, auth claim-confirm akzeptiert die formelle Token-Übergabe und auth claim-deny lehnt die Bindung ab.
- Sandbox-Einschränkungen: Temporäre Konten können keine Neustart-Snapshots erfassen (restart-snapshot) oder auf Knowledge-Bases zugreifen (recall-context --include_knowledge true).

```bash
# Register temporary sandbox:
node scripts/xmemo-skill.mjs register --reason unattended --allow-plaintext

# Inspect and manage claim binding:
node scripts/xmemo-skill.mjs auth claim-status --allow-plaintext
node scripts/xmemo-skill.mjs auth claim-confirm --allow-plaintext
node scripts/xmemo-skill.mjs auth claim-deny --allow-plaintext
```

## Abmeldung und anbietergerechter Widerruf

Das Abmelden hebt die Verknüpfung der lokalen Anmeldedatendatei auf und widerruft das aktive Sitzungstoken auf dem Server selbst. Externe Secret-Provider müssen in ihren eigenen Umgebungen verwaltet werden.

- Lokale Sitzungsabmeldung: node scripts/xmemo-skill.mjs logout entfernt ~/.xmemo/skill-credentials.json und ruft /v1/auth/token/revoke-self auf.
- Externes Umgebungs-Token: Wenn XMEMO_KEY die aktiven Anmeldedaten bereitstellt, belässt die Abmeldung dieses Token unverändert, es sei denn, --revoke-environment-token wird explizit übergeben.
- Lokales Entfernen ist kein globaler Widerruf: Das Entfernen des lokalen Skill-Verzeichnisses oder die lokale Abmeldung widerruft KEINE Tokens, die in Cloud-Secret-Tresoren, CI/CD-Runnern oder anderen Maschinen gespeichert sind.
- Externe Bereinigung: Heben Sie XMEMO_KEY in der Shell auf oder löschen Sie das Secret aus Ihrem Secret-Manager, um den Zugriff dauerhaft zu deautorisieren.

```bash
# Log out and revoke local credential file:
node scripts/xmemo-skill.mjs logout

# Log out and revoke external environment token remotely:
node scripts/xmemo-skill.mjs logout --revoke-environment-token
```

