Zur Dokumentation springen
DokumentationSchlüssel und Zugriff

Dienstschlüssel und die Agenten, die sie nutzen

Speichern Sie einen Schlüssel aus dem Katalog, Ihrer eigenen HTTP-API oder einer Datenbank, wählen Sie die Agenten, prüfen und tauschen Sie ihn.

Auf dieser Seite

Was ein Schlüssel ist

Ein Dienstschlüssel ist, was Sallyport für einen Dienst verwahrt: ein API-Schlüssel, ein Token, eine Anmeldung beim Anbieter oder das Passwort einer Datenbank. Sallyport fügt ihn selbst in jeden Aufruf ein. Kein Agent, kein Mensch und keine API kann ihn zurücklesen.

Ein gespeicherter Schlüssel geht an alle Agenten seines Arbeitsbereichs, auch an die, die ein Inhaber oder Administrator später anlegt. Ein KI-Client, den ein Mitglied per Anmeldung verbindet, beginnt ohne Schlüssel, und ein Inhaber oder Administrator fügt sie in seiner Liste „Zugriff“ hinzu. Schlüssel hinzufügen können Inhaber und Administratoren.

Quelle wählen

Öffnen Sie Schlüssel hinzufügen. „Quelle des Schlüssels“ bietet sechs Möglichkeiten:

Quelle des SchlüsselsWofür
KatalogEin Dienst, den Sallyport kennt, etwa GitHub, Stripe oder Cloudflare. Adresse und Übertragungsweg des Schlüssels sind schon festgelegt.
Eigene APIJede öffentliche HTTPS-API außerhalb des Katalogs.
Remote-MCPEin MCP-Server im Internet. Siehe MCP-Clients und Remote-Server.
SSH-HostEin Server, auf dem Ihre Agenten Befehle ausführen. Siehe SSH-Befehle.
DatenbankIhr PostgreSQL, MySQL, SQL Server, ClickHouse, MongoDB oder Redis unter einer öffentlichen Adresse. Agenten erhalten ein Tool zum Lesen und eines zum Ändern.
S3-SpeicherEin Bucket von Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Google Cloud Storage oder eines beliebigen S3-kompatiblen Speichers. Siehe S3-Speicher.
E-MailIhr Postfach bei Gmail, Outlook, Yahoo, iCloud, Fastmail, Zoho oder auf Ihrem eigenen Mailserver. Agenten senden, lesen und sortieren seine Mails. Siehe E-Mail.

Dienst aus dem Katalog hinzufügen

Wählen Sie den Dienst unter „Dienst aus dem Katalog“. „Name in der Konsole“ füllt sich selbst, etwa mit github-live. Bei mehreren Arbeitsbereichen wählen Sie auch den „Arbeitsbereich“.

Lassen Sie unter „Umgebung“ die Option „Live“ stehen. In der Konsole angelegte Agenten sind live, und ein Live-Agent sieht nur Live-Schlüssel.

Wählen Sie unter „So verbinden Sie …“ einen Weg. „Mit … anmelden“ führt Sie zum Anbieter und zurück; Sallyport verwahrt den Zugang und erneuert ihn. „Zugriffstoken“, „API-Schlüssel“ und die anderen Wege nehmen einen Schlüssel, den Sie einfügen.

„Schlüssel bei … erstellen“ öffnet die Seite des Anbieters für einen neuen Schlüssel. Ein Dienst unter Ihrer eigenen Adresse fragt zusätzlich nach „Ihre Adresse bei …“. Klicken Sie auf „Schlüssel speichern“ oder auf die Anmeldeschaltfläche.

Manche Anmeldungen brauchen Ihre eigene App beim Anbieter. Das Formular zeigt dann eine „Redirect-URI“: Tragen Sie sie in der App ein und fügen Sie deren „Client-ID“ und „Client-Secret“ ein.

Dienste, die Client-ID und Secret einer App nehmen

Greenhouse Harvest v3, Zoom-Server-to-Server-Apps, Auth0-Machine-to-Machine-Anwendungen, Bandwidth und die Sinch Conversation API nehmen Client-ID und Secret einer App, die Sie beim Anbieter anlegen. Fügen Sie beide ein; Sallyport holt ein kurzlebiges Token an der Adresse, die der Anbieter nennt, und erneuert es vor dem Ablauf. Zoom fragt zusätzlich nach der Account-ID; Greenhouse nimmt die ID des Nutzers, für den das Token handelt, sonst handelt es als Nutzer der App selbst.

PlanetScale und Etsy wollen zwei Teile eines Schlüssels in einem Header. Tragen Sie jeden Teil in sein eigenes Feld ein; Sallyport fügt sie bei jedem Aufruf zusammen.

Dienste, die jede Anfrage signieren

Manche Dienste nehmen keinen Schlüssel in der Anfrage an: Jeder Aufruf trägt eine Signatur, die mit einem Secret oder einem privaten Schlüssel erstellt wird. So arbeiten Binance, Bybit, OKX, Kraken, Coinbase, App Store Connect, GitHub Apps, Snowflake mit Schlüsselpaar, NetSuite und Azure Service Bus. Fügen Sie den Schlüssel so ein, wie das Formular fragt; Sallyport signiert jeden Aufruf beim Senden, und der Schlüssel selbst verlässt Sallyport nie.

So verbinden SieWas Sallyport bei jedem Aufruf tut
API-Schlüssel und SecretFügt die Uhrzeit und eine mit dem Secret erstellte Signatur der Anfrage hinzu, in dem Header oder Query-Parameter, den der Dienst nennt.
Privater SchlüsselSigniert mit dem Schlüssel ein kurzlebiges Token und sendet es als Bearer. Bei einer GitHub App kauft dieses Token zuerst ein Installations-Token.
OAuth-1.0a-TokensSigniert die Anfrage mit den Secrets von Consumer und Token und sendet den Header Authorization: OAuth ….

Wer einen Aufruf freigibt, gibt die Anfrage selbst frei. Uhrzeit und Signatur kommen beim Senden hinzu, nach dem Ja, deshalb passt auch eine Freigabe von vor ein paar Minuten noch. Der Agent lässt sie weg; schickt er eigene mit, verwirft Sallyport sie.

Eigene HTTP-API verbinden

Wählen Sie „Eigene API“ und geben Sie die „HTTPS-URL des Dienstes“ ein, etwa https://api.example.com:8443/v1. Geben Sie den Port an, wenn er nicht 443 ist. Lassen Sie Anmeldedaten, Query-Parameter und Fragment weg.

Der Pfad begrenzt den Schlüssel: Mit /v1 erreichen Aufrufe nur /v1 und die Pfade darunter. Wählen Sie die „Authentifizierung“, geben Sie den Schlüssel ein und klicken Sie auf „Schlüssel speichern und verbinden“.

AuthentifizierungWas Sallyport jedem Aufruf hinzufügt
Bearer-TokenAuthorization: Bearer …
BasicBenutzername und Passwort als Authorization: Basic ….
API-SchlüsselDen Schlüssel in einem „Anfrage-Header“ (X-API-Key, Authorization: token … oder Header mit Ihren Namen), einem „Query-Parameter“, einem Feld im „JSON-Anfragebody“ oder im „URL-Pfad“.
DigestBenutzername und Passwort beantworten die Digest-Challenge des Dienstes. Das Passwort geht nie über das Netz.
Anmelde-EndpunktEin Sitzungstoken. Sallyport sendet Benutzername und Passwort an die „Anmelde-URL“, liest das Token aus der JSON-Antwort, einem Antwort-Header oder einem Cookie und sendet es in dem Header, den Sie angeben. Endet die Sitzung, meldet es sich neu an.
Client-ZertifikatNichts in einem Header: Sallyport legt „Zertifikat“ und „Privater Schlüssel“ im PEM-Format im TLS-Handshake vor.
OAuth: AnmeldungEinen Token aus einer Anmeldung beim Anbieter. Sie geben „Autorisierungs-URL“, „Token-URL“, „Scopes“ sowie ID und Secret Ihrer App ein. Tragen Sie https://mcp.sallyport.cloud/callback/upstream als Redirect-URI dieser App ein.
Google-Service-AccountEinen Google-Token, den Sallyport aus dem eingefügten „Service-Account-JSON“ für die angegebenen „Scopes“ erzeugt.
OAuth: Client CredentialsEinen Token, den Sallyport für Ihre Anwendung an ihrer „Token-URL“ holt und vor Ablauf erneuert. Die Token-URL darf auf einem anderen Host als die API liegen, etwa login.microsoftonline.com bei Azure.
AWS Signature V4Eine Signatur auf jeder Anfrage, erstellt mit Ihrer „Access-Key-ID“ und Ihrem „Secret Access Key“ für die angegebene „Region“ und den angegebenen „Signierender Dienst“. Für S3-Buckets übernimmt das die Quelle „S3-Speicher“.
HMAC-SignaturEine Signatur auf jeder Anfrage, erstellt mit Ihrem „Signaturgeheimnis“ nach der „Signaturvorlage“, die Sie aus der Dokumentation des Dienstes einfügen: Algorithmus, was signiert wird und wohin die Signatur kommt. Ein „API-Schlüssel (optional)“ geht im „Header des API-Schlüssels“ mit.
Signiertes JWTEin kurzlebiges JWT, das Sallyport mit Ihrem „Privater Schlüssel“ nach der „JWT-Vorlage“ signiert: Algorithmus, Claims, Laufzeit und ein Tausch, wenn der Dienst das JWT gegen ein Token eintauscht.
OAuth 1.0aEine Signatur auf jeder Anfrage aus Ihrem „Consumer Key“, „Consumer Secret“, „Token-ID“ und „Token-Secret“, mit dem gewählten „Signaturverfahren“ und einem „Realm (optional)“, etwa der NetSuite-Konto-ID.

„Vorschau der Einfügung“ zeigt, was mit dem Aufruf hinausgeht. „Erweiterte Verbindungsoptionen“ fügt jedem Aufruf Header und Query-Parameter hinzu. Das sind Einstellungen, also gehören keine Schlüssel hinein.

Verlangt ein Dienst neben dem Schlüssel ein Client-Zertifikat, geben Sie es unter „Client-Zertifikat hinzufügen“ an; es wird mit dem Schlüssel versiegelt. Manche Dienste, etwa ein Kubernetes-API-Server, nutzen ein Zertifikat, das keine öffentliche Stelle signiert hat. Fügen Sie deren CA unter „Vertrauenswürdige CA-Zertifikate“ in „Erweiterte Verbindungsoptionen“ ein. Nur diese Verbindung vertraut ihr, und sie erreicht weiterhin nur öffentliche Adressen.

„Art der Aufrufe“ unterscheidet einen Lesezugriff von einer Änderung. „REST“ richtet sich nach der Methode. „GraphQL“ behandelt eine Query als Lesezugriff und eine Mutation als Änderung. „JSON-RPC“ behandelt die „Lese-Methoden“ aus Ihrer Liste als Lesezugriffe und jede andere Methode als Änderung. „SQL im Body“ liest die Abfrage unter „Wo die Abfrage steht“, etwa /statement bei Snowflake: Ein SELECT ist ein Lesezugriff, DROP oder ein DELETE ohne WHERE ist destruktiv.

Festlegen, welche Agenten einen Schlüssel nutzen

Die Seite des Schlüssels listet „Agenten, die diesen Schlüssel nutzen können“. „Entfernen“ nimmt einem Agenten den Schlüssel.

Um ihn zurückzugeben, öffnen Sie den Agenten unter Agenten und gehen zu „Zugriff“. „Verbindung hinzufügen“ fügt einen Schlüssel hinzu, „Alle hinzufügen“ alle Schlüssel des Arbeitsbereichs.

Jede Zeile hat „Bei jedem Aufruf fragen“ und eine Regel für „Lesen“, „Schreiben“ und „Destruktiv“: „Automatisch“, „Freigabe erforderlich“ oder „Abgelehnt“. Neue Zeilen führen jeden Aufruf ohne Rückfrage aus. Siehe Freigaben.

Prüfen, ob ein Schlüssel funktioniert

Hat der Dienst eine Prüfung, führt Sallyport sie beim Speichern des Schlüssels aus. Bei GitHub ist das GET /user. Das Ergebnis steht unter „Wohin dieser Schlüssel geht“ auf der Seite des Schlüssels, und „Erneut prüfen“ wiederholt sie.

Schlüssel tauschen

Erstellen Sie zuerst beim Anbieter einen neuen Schlüssel. Klicken Sie auf der Seite des Schlüssels auf „Schlüssel tauschen“, geben Sie den neuen Wert ein und klicken Sie auf „Neuen Schlüssel speichern“.

Die neue Version gilt sofort, und Sallyport prüft sie. Die alte Version funktioniert noch 24 Stunden, damit laufende Aufrufe fertig werden.

Widerrufen Sie danach den alten Schlüssel beim Anbieter; „Bei … widerrufen“ öffnet die Seite. Klicken Sie auf „Ich habe ihn widerrufen“, um das festzuhalten. Um einen Schlüssel umzubenennen, klicken Sie oben auf seiner Seite auf den Namen. „Schlüssel löschen“ ganz unten entfernt den Schlüssel mit seinen Verbindungen; der Dialog nennt vorher die Agenten, die sie verlieren.