Anmeldung und Zugriff
KI-Clients melden sich mit OAuth 2.1 bei LetKite an. Sie bestätigen jeden Client einmal, wählen, was er tun darf und welche Maschinen er erreicht, und können diesen Zugriff jederzeit zurücknehmen.
Discovery
Ein Client, der https://mcp.letkite.com/mcp ohne Token aufruft, erhält HTTP 401 mit einem WWW-Authenticate-Header, der auf die Metadaten der geschützten Ressource verweist. Von dort findet er den Autorisierungsserver:
| Metadaten der geschützten Ressource | https://mcp.letkite.com/.well-known/oauth-protected-resource/mcp |
|---|---|
| Metadaten des Autorisierungsservers | https://mcp.letkite.com/.well-known/oauth-authorization-server (auch unter /.well-known/openid-configuration) |
| Aussteller (Issuer) | https://mcp.letkite.com |
| Autorisierungsendpunkt | https://mcp.letkite.com/oauth/authorize |
| Token-Endpunkt | https://mcp.letkite.com/oauth/token |
| Widerrufsendpunkt | https://mcp.letkite.com/oauth/revoke (Aktualisierungstokens) |
| Registrierungsendpunkt | https://mcp.letkite.com/oauth/register |
Client-Registrierung
LetKite hat keine vorab registrierten Clients. Ein Client weist sich auf eine von zwei Arten aus:
- Dynamische Client-Registrierung (RFC 7591): Der Client sendet seine Metadaten an den Registrierungsendpunkt und erhält eine Client-ID. Ein Client-Secret erhalten nur Clients, die
client_secret_postoderclient_secret_basicanfordern; öffentliche Clients verwenden keines. - Client-ID-Metadatendokument: Die Client-ID ist eine
https://-URL, die die Metadaten des Clients bereitstellt. LetKite ruft sie mit einem Timeout von 5 Sekunden ab, bis zu 64 KB, ohne Weiterleitungen zu folgen und nur von öffentlichen Adressen.
Redirect-URIs müssen https verwenden, oder http auf einer Loopback-Adresse (localhost, 127.0.0.1) für lokale Clients wie Claude Code, die dabei jeden Port verwenden dürfen (RFC 8252). LetKite erkennt die Rückrufadressen von Claude, ChatGPT und anderen bekannten Clients, und die Anmeldeseite warnt Sie, wenn die Rückrufadresse eines Clients nicht dazugehört. Abgelehnte Rückrufadressen werden im Aktivitätsprotokoll festgehalten.
Der Autorisierungsablauf
- Nur der Ablauf mit Autorisierungscode (
response_type=code), wobei PKCES256bei jeder Anfrage Pflicht ist. - Resource Indicators (RFC 8707): Der Client kann
https://mcp.letkite.com/mcpals Ressource angeben; Tokens werden immer für diese Ressource ausgestellt. - Die Autorisierungsantwort enthält
iss(RFC 9207). - Grant-Typen:
authorization_codeundrefresh_token.
Was Sie bestätigen
Die Anmeldung erfolgt auf der eigenen Anmeldeseite von LetKite (id.letkite.com), mit Zwei-Faktor-Authentifizierung, wo Ihr Konto sie verlangt. Gehören Sie zu mehreren LetKite-Konten, wählen Sie eines. Die Zustimmungsseite zeigt dann:
- den Namen des Clients, wie er sich registriert hat und wohin er Sie zurückleitet;
- die Scopes, die er anfordert und die Sie abwählen können (mindestens einer bleibt);
- die Maschinen, die er erreichen darf: jede Maschine, auch später hinzugefügte, oder nur Maschinen mit ausgewählten Tags oder IDs;
- die Richtlinie, die ihn begrenzt, ausgewählt aus den Richtlinien Ihres Kontos.
Mit der Zustimmung entsteht eine Verbindung (ein Grant) für diese Person, diesen Client, diese Scopes, diese Maschinen und diese Richtlinie. Die Inhaber des Kontos und Sie erhalten eine E-Mail über die neue Verbindung, mit einem Link, um sie zu widerrufen, falls Sie es nicht waren.
Scopes
| Scope | Erlaubt | Tools (Beispiele) |
|---|---|---|
fleet.read | Maschinen auflisten, Dateien lesen, Logs und Auftragsstatus ansehen | list_hosts, host_facts, read_file, list_dir, job_status, log_read |
fleet.exec | Befehle ausführen, Shells und Terminals öffnen, Aufträge und Zeitpläne starten, Maschinen aufwecken | exec, shell_run, job_start, terminal_open, schedule_create |
fleet.write | Dateien schreiben, hochladen, kopieren und löschen | write_file, delete_path, transfer_start |
fleet.admin | Portweiterleitung und Lesen des Aktivitätsprotokolls; schließt die anderen drei ein | tunnel_open, tunnel_http, audit_tail |
offline_access | Wird akzeptiert; Aktualisierungstokens werden ohnehin ausgestellt |
Welchen Scope ein Tool braucht, steht in seiner Beschreibung auf der Seite Tools. Ein Aufruf ohne diesen Scope schlägt mit token lacks fleet.… fehl.
Tokens
| Zugriffstoken | 15 Minuten, ein signiertes JWT (RS256) für https://mcp.letkite.com/mcp, gesendet als Authorization: Bearer |
|---|---|
| Aktualisierungstoken | 30 Tage, bei jeder Verwendung ersetzt; wird ein altes erneut verwendet, wird die ganze Kette widerrufen |
| Autorisierungscode | 2 Minuten, nur einmal verwendbar; ein erneut eingesetzter Code widerruft die damit ausgestellten Tokens |
Zugriff zurücknehmen
- Trennen Sie in der Konsole unter Verbindungen (https://dashboard.letkite.com/connections) jede Ihrer Verbindungen. Inhaber und Admins können die Verbindungen aller Personen trennen.
- Verwenden Sie den Link in der E-Mail zur neuen Verbindung.
LetKite liest die Verbindung bei jedem Toolaufruf neu, daher wird ein getrennter Client innerhalb von Sekunden abgelehnt, ohne dass erst sein Token ablaufen muss. Eine Verbindung, deren Aktualisierungstokens alle seit einem Tag abgelaufen sind, wird automatisch entfernt, sofern kein Zeitplan sie verwendet.