Zum Inhalt springen

Authentifizierung

Edge Connector Security

Der Edge Connector muss sich bei der nara-Plattform authentifizieren, bevor er Tool-Aufrufe empfangen und ausführen kann. Die Authentifizierung stellt die Identität des Connectors fest, verknüpft ihn mit deiner Organisation und autorisiert ihn für den Zugriff auf den Platform Server. Diese Seite behandelt die verfügbaren Authentifizierungsmodi, den Token-Lebenszyklus und Best Practices zur Sicherheit.

Der Edge Connector unterstützt drei Authentifizierungsmethoden, die jeweils für verschiedene Deployment-Szenarien geeignet sind.

Browser-OAuth ist die interaktive Authentifizierungsmethode für den Desktop-Modus. Sie öffnet deinen Standardbrowser, leitet dich zur nara-Anmeldeseite weiter und gibt nach erfolgreicher Autorisierung einen JWT-Token zurück.

Terminal-Fenster
edge-connector auth --browser

So funktioniert es:

  1. Die CLI kontaktiert die Plattform und erhält einen Autorisierungscode und eine Browser-URL.

  2. Die CLI öffnet die Browser-URL. Du meldest dich mit deinem Konto an und genehmigst den Zugriff des Edge Connectors auf deine Organisation.

  3. Nach der Genehmigung ruft die CLI automatisch den Session-Token ab.

  4. Der Token wird validiert (Ablauf, Organisationszugehörigkeit) und im konfigurierten Token-Pfad gespeichert.

  5. Das Standard-Bundle deiner Organisation wird automatisch synchronisiert.

Dieser Modus ist der Standard, wenn du die Edge Connector Runtime auf einem Desktop-Rechner startest. Wenn beim Start kein Token gefunden wird, initiiert die Runtime automatisch den Browser-OAuth-Flow.

Jeder Token wird validiert, bevor er gespeichert oder verwendet wird. Die Validierung prüft:

PrüfungBeschreibung
FormatDer Token muss ein gültiger Zugriffstoken sein
AblaufDer Token muss noch gültig sein und darf nicht abgelaufen sein
OrganisationDer Token muss zu einer Organisation gehören, die dein Konto mit diesem Connector verwenden darf

Wenn eine Prüfung fehlschlägt, gibt die CLI eine spezifische Fehlermeldung aus und beendet sich, ohne zu speichern.

Tokens werden als JSON-Dateien im lokalen Dateisystem gespeichert. Der Speicherort wird durch folgende Priorität bestimmt:

  1. Die Umgebungsvariable AUTH_TOKEN_PATH, falls gesetzt.

  2. Das Feld authTokenPath in config.json.

  3. Der Standardpfad: ./auth-token.json (relativ zum Installationsverzeichnis).

Die Token-Datei wird mit restriktiven Berechtigungen erstellt (0600 — nur Lesen/Schreiben für den Besitzer) und das enthaltende Verzeichnis wird auf 0700 gesetzt (nur Besitzer). So wird sichergestellt, dass der Token nicht von anderen Benutzern auf dem System gelesen werden kann.

JWT-Tokens haben eine von der nara-Plattform gesetzte Ablaufzeit. Wenn ein Token abläuft:

  • Desktop-Modus: Die Runtime erkennt den abgelaufenen Token bei der Validierung und initiiert automatisch einen neuen Browser-OAuth-Flow. Wenn das System Tray aktiv ist, zeigt es einen “ausstehend”-Status während der erneuten Authentifizierung an.
  • Server-Modus mit Deployment-Anmeldedaten: Nicht zutreffend — Deployment-Anmeldedaten laufen nicht auf die gleiche Weise ab wie JWT-Tokens. Die Anmeldedaten bleiben gültig, solange das Deployment existiert.
  • Token-Datei-Modus: Du musst die Token-Datei manuell durch einen neuen Token ersetzen. Die Runtime kann sich nicht verbinden, wenn der Token abgelaufen ist.

Die Runtime validiert den Token beim Start und gibt eine Warnung aus, wenn der Token bald abläuft.

Der Desktop-Authentifizierungs-Flow ist ein zweistufiger Prozess, der es einer Headless-CLI ermöglicht, sich über einen Browser auf derselben Maschine zu authentifizieren.

CLI Platform Browser
| | |
|-- POST /start -------->| |
|<-- code + url ---------| |
| | |
|-- open browser --------|------------------------->|
| |<-- user logs in ---------|
| |<-- user approves --------|
| | |
|-- GET /session/token ->| |
|<-- JWT token ----------| |
| | |
|-- save token | |

Authentifizierungsbezogene Umgebungsvariablen überschreiben Config-Datei-Werte:

VariableBeschreibung
AUTH_TOKEN_PATHPfad zur Token-Datei überschreiben
DEPLOYMENT_IDDeployment-Identifier für Cloud-/Server-Modus
DEPLOYMENT_SECRETDeployment-Secret für Cloud-/Server-Modus
DEPLOYMENT_CREDENTIALS_PATHPfad zu einer Datei mit Deployment-Anmeldedaten