Zum Inhalt springen

API-Authentifizierung

Der programmatische Zugriff auf die nara-API erfolgt über Server-Tokens — organisationsgebundene Bearer-Tokens, die Administratoren in der Webapp erzeugen.

Ein Server-Token identifiziert Ihre Organisation, nicht einen einzelnen Benutzer. Es gewährt vollen API-Zugriff im Rahmen Ihrer Lizenzstufe; es gibt keine tokenspezifischen Berechtigungsumfänge (Scopes).

Tokens haben das Format nara_sa_ gefolgt von einem zufälligen Suffix, zum Beispiel:

nara_sa_9fK2mQ7xR4tW8vLpN3jH6bC1dY5sA0eZgUoIiT-uXnM

nara speichert ausschließlich einen SHA-256-Hash jedes Tokens. Der vollständige Wert wird nur einmal bei der Erzeugung angezeigt; danach sind nur die ersten Zeichen als Präfix sichtbar, damit Sie das Token identifizieren können. Kopieren Sie das Token sofort und bewahren Sie es in einem Secret-Manager auf.

  1. Öffnen Sie Admin > Settings.

  2. Wählen Sie im Bereich Server token die Option Generate (bzw. Regenerate, um ein bestehendes Token zu ersetzen).

  3. Kopieren Sie das angezeigte Token. Es kann später nicht erneut abgerufen werden.

Das Erzeugen und Verwalten von Tokens erfordert die Berechtigung serviceAccount.manage, die in der integrierten Rolle Admin standardmäßig enthalten ist.

ArtAblaufVerhalten
Long-livedOptionalGültig bis zum Widerruf oder Ablauf
Short-livedErforderlich (expiresAt)Gültig bis zum Ablaufzeitpunkt
Single-useErforderlich (expiresAt)Wird nach der ersten Anfrage automatisch widerrufen

Sie können ein Token jederzeit widerrufen, um es sofort ungültig zu machen. Zum Rotieren erzeugen Sie ein neues Token, aktualisieren Ihre Clients und widerrufen anschließend das alte Token. Jedes Token speichert bei jeder Anfrage einen lastUsedAt-Zeitstempel, sodass Sie veraltete oder unerwartete Nutzung vor dem Widerruf erkennen können.

Senden Sie das Token bei jeder Anfrage im Authorization-Header:

Terminal-Fenster
curl https://app.nara.de/api/agent/run \
-H "Authorization: Bearer nara_sa_..."

Schreibende Anfragen (POST, PUT, PATCH) müssen zusätzlich Content-Type: application/json setzen:

Terminal-Fenster
curl -X POST https://app.nara.de/api/memory/objects \
-H "Authorization: Bearer nara_sa_..." \
-H "Content-Type: application/json" \
-d '{ "typeId": "…", "contents": { "key": "value" } }'

Alternativ zu einem Server-Token können Sie sich als Benutzer mit einem von Clerk ausgestellten JWT authentifizieren. Da ein Benutzer mehreren Organisationen angehören kann, wählen Sie die Organisation über den Header Clerk-Organization-Id aus:

Terminal-Fenster
curl https://app.nara.de/api/memory/types \
-H "Authorization: Bearer <clerk-jwt>" \
-H "Clerk-Organization-Id: <organization-id>"
StatusBedeutung
400Ungültiger Anfrage-Body oder ungültige Parameter
401Fehlendes, ungültiges, abgelaufenes oder widerrufenes Token
402Unzureichende Credits für die Operation
403Berechtigung verweigert (z. B. Admin erforderlich)
404Ressource nicht gefunden
500Interner Serverfehler
  • Committen Sie Tokens niemals in die Versionsverwaltung. Bewahren Sie sie in Umgebungsvariablen oder einem Secret-Manager auf.
  • Rotieren Sie Tokens regelmäßig und unmittelbar nach jedem Verdacht auf Offenlegung.
  • Bevorzugen Sie Short-lived- oder Single-use-Tokens für selten laufende Automatisierungen.
  • Prüfen Sie lastUsedAt-Zeitstempel, um ungenutzte Tokens zu erkennen und zu widerrufen.

Die verfügbaren Endpunkte finden Sie in der API-Referenz.