3.0 KiB
Integrationsschlüssel
Angemeldete Webnutzer finden unter API-Schlüssel eine eigene Verwaltungsseite. Programmname und mindestens ein Projekt auswählen, dann den Schlüssel erstellen. Anzeigen ruft ihn bei Bedarf erneut ab; Verbergen entfernt ihn aus dem Eingabefeld. Kopieren verwendet die Zwischenablage (HTTPS oder localhost). Widerrufen sperrt ihn sofort für nachfolgende API-Anfragen. Bereits laufende Anfragen werden dadurch nicht abgebrochen. Ein widerrufener Schlüssel wird nicht mehr angezeigt; für einen Ersatz einen neuen Schlüssel erstellen.
Alle angemeldeten menschlichen Nutzer haben dieselben Verwaltungsrechte. Maschinenzugänge können weder Schlüssel verwalten noch andere Schlüssel anzeigen. Webmutationen einschließlich Anzeigen benötigen die vorhandene CSRF-Absicherung.
Das aufrufende Programm sendet Authorization: Bearer <Schlüssel> an die
Übergabe-API. Neue Schlüssel erlauben Auftragsübergabe einschließlich Rückgaben
und lesenden Zugriff auf die ausgewählten Projekte. Sie erlauben keine
Betriebssteuerung oder Beantwortung menschlicher Testanfragen. Zugriff auf weitere
Projekte erfordert einen neuen Schlüssel. Bestehende env-basierte Integrationen
bleiben unverändert nutzbar und erscheinen nicht in der SQLite-Schlüsselliste.
Speicherung und Sicherung
- SQLite unter
<workspace>/runtime/integrations/keys.sqlite3speichert Metadaten, SHA-256-Prüfwerte und mit Fernet authentifiziert verschlüsselte Schlüssel. - Der separate Serverschlüssel entsteht beim ersten Erstellen automatisch unter
<workspace>/runtime/integration-secrets/master.key, Dateimodus 0600. Nutzerkonten und ihre root-verwaltete SQLite-Datei werden nicht verändert. - Mit
VIANO_INTEGRATION_KEY_FILEkann die API stattdessen eine separate Schlüsseldatei verwenden. Vorhandene Dateien müssen einen gültigen Fernet-Key enthalten und für den API-Dienst lesbar sein; fehlt die Datei beim ersten Erstellen, muss der Dienst sie im gewählten Verzeichnis anlegen dürfen. - SQLite und Serverschlüssel getrennt geschützt sichern. Das Laufzeitverzeichnis enthält damit dauerhaft notwendige Integrationsdaten und darf bei einer Bereinigung von Sessions nicht pauschal gelöscht werden. Unter Windows passende Dateisystem-ACLs verwenden; POSIX-Modusbits ersetzen dort keine ACLs.
- Geht der Serverschlüssel verloren oder wird er unpassend ausgetauscht, können Schlüssel nicht mehr angezeigt werden. Das System ersetzt ihn bei bestehenden Einträgen nicht stillschweigend. Vorhandene Schlüssel können anhand ihrer Prüfwerte weiterhin authentifiziert und über die Weboberfläche widerrufen werden. Zur Wiederherstellung die richtige Schlüsseldatei aus der Sicherung zurückspielen.
Nach einem Update die API-Abhängigkeiten neu installieren (.[api] umfasst jetzt
cryptography) und den API-Dienst neu starten. Eine Datenbankmigration per Hand
ist nicht nötig. Keine Änderung oder Neueingabe des Gemini-Schlüssels erforderlich.