Zum Inhalt springen
hs-sql-agent
2.0.3
Dokumentation 2.0.3
Dokumentation Administration

MCP-Schlüssel

MCP-Zugangsdaten in hs-sql-agent 2.0.2 ausstellen, einschränken, rotieren, duplizieren und widerrufen.

Datenbankgrenze Jeder produktive Schlüssel ist an einen Eintrag in Database Management gebunden.
Tool-Grenze Geben Sie nur die integrierten und veröffentlichten Custom Tools frei, die der Client tatsächlich benötigt.
Tabellengrenze Beschränken Sie den Schlüssel optional auf eine explizite Whitelist qualifizierter Tabellen.

MCP-Schlüssel authentifizieren Anfragen an /mcp und tragen den Laufzeit-Berechtigungsumfang, den hs-sql-agent durchsetzt. Sie sind von Admin-Sitzungen und OIDC-Identitäten getrennt.

Integrierte Tool-Oberfläche in 2.0.2

Der Schlüsselverwaltungsdienst kennt fünf integrierte Tools:

ToolZweck
get_schemasSchema-Ermittlung
get_tablesTabellen-Ermittlung
get_columnsSpalten-Ermittlung
execute_query_sqlkontrollierte SELECT-Ausführung
execute_dml_sqlkontrolliertes Safe DML

Veröffentlichte Custom Tools derselben Datenbank können zusätzlich nach Namen ausgewählt werden. Siehe Custom Tools.

Schlüssel ausstellen

  1. Namen festlegen

    Der Request benötigt einen nicht leeren Namen mit maximal 100 Zeichen.

  2. Datenbank binden

    DbManagementId ist bei der Ausstellung in 2.0.2 erforderlich.

  3. Tools auswählen

    Wählen Sie integrierte Tools sowie veröffentlichte Custom Tools dieser Datenbank.

  4. Datenzugriff einschränken

    Aktivieren Sie eine Tabellen-Whitelist, wenn der Client nur einen Teil der gebundenen Datenbank sehen soll.

  5. Lebenszyklus festlegen

    Konfigurieren Sie optional Ablaufzeit, CORS-Origins und Rate-Limit-Modus beziehungsweise Overrides.

  6. Klartext-Secret kopieren

    Speichern Sie den neu ausgestellten Schlüssel im Secret Store des Clients, bevor Sie den Lebenszyklusdialog schließen.

Felder bei der Ausstellung

FeldBedeutung
NameAnzeigename des Schlüssels für Administratoren
ExpiresAtOptionales Ablaufdatum; muss in der Zukunft liegen
AllowedToolsKommagetrennte Tool-Namen; leer bedeutet uneingeschränkt
CorsAllowedOriginsOptionale Origin-Beschränkung für MCP-Anfragen aus Browsern
DbManagementIdGebundener Datenbankeintrag; bei Ausstellung erforderlich
TableWhitelistOptionale kommagetrennte Allowlist qualifizierter Tabellen
RateLimitModeInherit, Custom oder Unlimited
PermitLimitOverrideOverride für ein benutzerdefiniertes Rate Limit pro Schlüssel
WindowSecondsOverrideZeitfenster für ein benutzerdefiniertes Rate Limit pro Schlüssel

Im gespeicherten Datensatz wird zur Identifikation nur ein kurzer Präfix angezeigt. Das Raw Secret wird mit dem HMAC-Secret des Servers geprüft und später absichtlich nicht erneut angezeigt.

Schlüssel rotieren

Bei einer Rotation entsteht ein Ersatzschlüssel mit demselben Datenbank-, Tool-, Tabellen-, CORS- und Rate-Limit-Umfang wie der alte Schlüssel.

Die Übergangsfrist kann zwischen 0 und 1440 Minuten liegen:

  • 0 widerruft den alten Schlüssel sofort;
  • ein positiver Wert verkürzt dessen Ablaufzeit bei Bedarf auf das Ende der Übergangsfrist;
  • der Ersatzschlüssel erhält ein neu erzeugtes Klartext-Secret.

Schlüssel duplizieren

Beim Duplizieren entsteht ein neuer Schlüssel mit kopiertem Laufzeitumfang sowie eigenem Namen und Secret. Das ist sinnvoll, wenn zwei Clients dieselben Berechtigungen benötigen, aber keine gemeinsame Zugangsdaten verwenden sollen.

Der duplizierte Schlüssel hat einen eigenen Lebenszyklus und kann unabhängig vom Ursprungsschlüssel widerrufen oder rotiert werden.

Schlüssel widerrufen

Ein Widerruf markiert den Schlüssel als inaktiv und schreibt vor dem Commit einen Widerrufs-Tombstone in den Validierungs-Cache. Dadurch soll verhindert werden, dass ein kürzlich widerrufener Schlüssel durch veralteten Cache-Zustand weiter akzeptiert wird.

Per Bootstrap verwaltete Schlüssel lassen sich über die normalen Lebenszyklusaktionen weder bearbeiten noch rotieren oder widerrufen; ihr Lebenszyklus wird durch die Bootstrap-Konfiguration bestimmt.

Verhalten von Rate Limits

Ein Schlüssel kann die Laufzeitvorgaben erben, eigene Limits definieren oder explizit unbegrenzt sein. Die Admin-Liste zeigt außerdem das effektive Rate Limit nach Zusammenführung des Schlüsselmodus mit der aktuellen Sicherheitsrichtlinie.

Bei mehreren Instanzen sollten Sie den verteilten Rate Limiter verwenden, wenn Limits über alle Knoten hinweg koordiniert werden müssen.

DML und Elicitation

Mit execute_dml_sql steigen die Anforderungen an den Client: Der MCP-Client muss den Form-Elicitation-Ablauf für interaktive Freigaben von Änderungen unterstützen.

Lesen Sie MCP-Client einrichten, bevor Sie einem neuen Client DML-Zugriff geben.