Zum Inhalt springen

Authentifizierung

Die LIVOI API erwartet für geschützte Endpunkte einen gültigen Bearer-Token im Authorization-Header:

Authorization: Bearer <TOKEN>

Der Bearer-Wert kann zwei Arten von Zugangsdaten enthalten:

  • ein JWT, wenn der Token aus drei durch Punkte getrennten Segmenten besteht
  • einen LIVOI API Key, wenn der Token kein JWT ist

API Keys werden nicht über einen eigenen Header gesendet. Verwende auch für API Keys immer:

Authorization: Bearer <API_KEY>

Fehlt der Header oder ist das Format ungültig, wird die Anfrage abgelehnt.

API Keys folgen intern diesem Format:

<kind>_<instance>_<key_id>_<marker>.<secret>

Die Bestandteile dienen nur zur Orientierung:

FeldWerte
kindpk, sk, wk
instanceprod, staging, dev, test, local

Clients sollten API Keys als opaque Secret behandeln und das Format nicht parsen.

HeaderBeschreibung
X-Tenant-IDWählt den effektiven Tenant-Kontext für JWT-Requests. Bei tenant-gebundenen API Keys muss der Wert zur Key-Bindung passen oder entfallen.
X-Request-IDOptionaler Client-Request-Identifier. Wenn er fehlt oder ungültig ist, erzeugt das Backend selbst eine Request-ID.

API-Schlüssel können über das LIVOI Dashboard verwaltet werden. Zusätzlich stellt die API diese Endpunkte bereit:

MethodePfadZweck
GET/api/v1/auth/meAktuellen Auth-Kontext abrufen
POST/api/v1/auth/api-keys/Neuen API Key erstellen
GET/api/v1/auth/api-keys/API Keys auflisten
DELETE/api/v1/auth/api-keys/{api_key_id}API Key löschen
POST/api/v1/auth/api-keys/{api_key_id}/revokeAPI Key widerrufen

Beim Erstellen eines API Keys sind unter anderem diese Body-Felder relevant:

FeldBeschreibung
nameAnzeigename des Keys
descriptionOptionale Beschreibung
kindKey-Art, z. B. pk, sk oder wk
instanceZielinstanz, z. B. prod, staging, dev, test oder local
tenant_boundBindet den Key an einen Tenant-Kontext
tenant_idTenant-ID für tenant-gebundene Keys
user_idBenutzerbindung, falls der Key für einen bestimmten Benutzer erstellt wird
expires_atOptionales Ablaufdatum
permissionsBerechtigungen, die der Key erhalten soll

Das Klartext-Feld api_key wird nur bei der Erstellung zurückgegeben. Danach ist der vollständige Secret-Wert nicht erneut abrufbar.

Die API prüft konkrete Permissions, statt nur eine allgemeine Administratorrolle vorauszusetzen. Für API-Key-Verwaltung sind unter anderem Permissions wie api_keys.create, api_keys.create.own und api_keys.create.any relevant.

Neue Key-Permissions werden auf die effektiv erlaubten Permissions des anfragenden Kontexts begrenzt. Ein Benutzer oder Key kann also keine weitergehenden Rechte vergeben, als der eigene Kontext erlaubt.

API Keys sind vertrauliche Zugangsdaten. Teile sie niemals öffentlich und speichere sie nicht in öffentlichen Repositories.