Zum Inhalt springen

Zugangsdaten-Tresor: Geheimnisse ohne Modellkontakt

Hinterlege Portal-Logins so, dass Werte nur im Browser und nur auf einer registrierten Site getippt werden — nie auslesbar, nie in Prompt, Log oder Replay.

Zuletzt aktualisiert:

Entworfen um das, was er verweigert

Der Tresor hat keinen Auslese-Endpunkt und wird nie einen bekommen; die Liste liefert ausschließlich Feldnamen. Die URL, die du beim Anlegen setzt, bestimmt die eine registrierbare Site, auf der der Datensatz je getippt werden darf — ein Login für portal.example.com wird nirgendwo sonst freigegeben.

Auch der Planner berührt nie einen Wert. Er sieht opake Platzhalter, und ein Platzhalter ohne passende Tresor-Freigabe wird schlicht verweigert statt wörtlich getippt. Aufgelöst wird erst im Browser, im Moment des Tippens — deshalb landet ein Passwort nie in einem Prompt, einer Log-Zeile oder einem Session-Replay.

Illustration des Browserberg-Zugangsdaten-Tresors, der ein Geheimnis nur an die eine freigegebene Site abgibt
Ein Datensatz, eine Site: Die Freigabe ist auf die beim Anlegen gesetzte URL begrenzt.

Anlegen und Auflisten über die API

Voraussetzungen: api-key kek

BASE="https://browserberg.com"
AUTH="Authorization: Bearer $BROWSERBERG_API_KEY"
JSON="Content-Type: application/json"

# Create: the URL defines the only site this credential may ever be typed on.
curl -s -X POST "$BASE/v1/credentials" -H "$AUTH" -H "$JSON" -d '{
  "name": "Example portal",
  "url": "https://portal.example.com/login",
  "fields": { "username": "buchhaltung@firma.example", "password": "not-a-real-password" },
  "nonSecretFields": ["username"]
}' | python3 -m json.tool

# List: field NAMES only. There is no read-back endpoint, by design.
curl -s "$BASE/v1/credentials" -H "$AUTH" \
  | python3 -c 'import json,sys; print(json.dumps(json.load(sys.stdin)["credentials"], indent=2))'

TOTP, Nutzung und Widerruf

Verlangt ein Portal Einmalcodes, gib beim Anlegen einen totpSeed mit; Codes werden serverseitig aus dem Seed erzeugt, sobald ein Login einen braucht — für den Seed gilt also dieselbe Regel wie für jedes andere Feld: Er verlässt den Tresor nie.

Genutzt werden Zugangsdaten an zwei Stellen: in act-Anfragen über credentialIds und im login-Block eines Workflows. DELETE /v1/credentials/:id ist der Widerruf — der Datensatz ist danach nicht mehr nutzbar, und genau darauf kommt es an.

Hinweis · Self-Hosted: ein Key-Provider ist Pflicht

In einer selbst gehosteten Umgebung braucht der Tresor einen Key-Provider — OVHcloud KMS oder, außerhalb der Produktion, einen lokalen KEK. Fehlt er, antworten die Credential-Endpunkte mit 503 capacity_unavailable und nennen die fehlende Konfiguration.

Hinweis · Im Dashboard

Die Ansicht Anmeldedaten listet Zugangsdaten nach Name und Metadaten, legt welche mit ihren Feldern und optionalem TOTP-Seed an und widerruft. Anlegen und Widerrufen sind Owner-Aktionen; ein Mitglied sieht die Liste. Ein Wert wird nie zurückgelesen, weder dort noch hier.

Darauf aufbauen

  • Persistente Profile Einmal anmelden, den Zustand für spätere Runs behalten
  • Referenz Zugangsdaten Felder und Antworten der Tresor-Endpunkte
  • Workflows erstellen Der login-Block, der eine Credential-Id nutzt