Verwenden Sie MCP-Sitzungen mit Ihrem Gateway AgentCore
MCP-Sitzungen ermöglichen statusbehaftete Interaktionen zwischen Clients und Ihrem Gateway. AgentCore Wenn Sitzungen aktiviert sind, generiert das Gateway bei der Initialisierung eine eindeutige Sitzungs-ID und behält den Status über mehrere Anfragen hinweg bei, wodurch erweiterte MCP-Funktionen wie Auslösung und Sampling aktiviert werden.
Vorteile der Verwendung von Sitzungen
- Stateful-MCP-Server-Zielinteraktionen
-
Das Gateway speichert die Sitzungs-ID des MCP-Serverziels und verwendet sie bei nachfolgenden Toolaufrufen erneut. Dadurch wird eine Neuinitialisierung bei jeder Anfrage vermieden und die Ziele können den Kontext zwischen Aufrufen beibehalten.
- Schnellere Antworten mit Runtime-Zielen AgentCore
-
Wenn die Sitzung des Ziels wiederverwendet wird, muss AgentCore Runtime nicht bei jeder Anfrage eine neue MCP-Serververbindung per Kaltstart starten, was zu schnelleren Antwortzeiten führt.
- Aktiviert erweiterte MCP-Funktionen
- User-scoped Sicherheit (authentifizierte Gateways)
-
Bei Gateways mit eingehender Authentifizierung sind Sitzungen an die verifizierte Benutzeridentität gebunden, wodurch Sitzungsüberfälle verhindert werden.
Aktivieren Sie Sitzungen auf Ihrem Gateway
Um Sitzungen zu aktivieren, geben Sie a sessionConfiguration in das protocolConfiguration.mcp Feld ein, wenn Sie Ihr Gateway erstellen oder aktualisieren.
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 } } } }
Der Parameter sessionTimeoutInSeconds ist optional. Wenn dieser Wert weggelassen wird, beträgt der Standard-Timeout 3600 Sekunden (1 Stunde). Der gültige Bereich liegt zwischen 900 (15 Minuten) und 28800 (8 Stunden). Das Timeout ist absolut und wird ab der ersten initialize Anfrage berechnet.
Um auch Funktionen zu aktivieren, die von Sitzungen abhängen, wie z. B. Erfassung und Sampling, müssen Sie zusätzlich das Antwort-Streaming aktivieren:
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 }, "streamingConfiguration": { "enableResponseStreaming": true } } } }
Anmerkung
Wenn Sitzungen auf einem Gateway aktiviert sind, können Sie die Einstellungen für die Header-Propagierung nicht Mcp-Session-Id in die metadataConfiguration eines Gateway-Ziels aufnehmen. Das Gateway verwaltet die Sitzungs-IDs intern. Der Versuch, dies zu tun, gibt einen HTTP 400 Bad Request-Fehler zurück.
Lebenszyklus der Sitzung
Der Sitzungslebenszyklus folgt dem Initialisierungsablauf des MCP-Protokolls:
-
Der Client sendet eine
initializeAnfrage an das Gateway. -
Das Gateway erstellt eine Sitzung, speichert Sitzungsmetadaten und gibt
Mcp-Session-Idim Antwort-Header ein eindeutiges Ergebnis zurück. -
Der Client nimmt den
Mcp-Session-IdHeader in alle nachfolgenden Anfragen auf. -
Das Gateway überprüft bei jeder Anfrage die Existenz, den Ablauf und die Benutzeridentität (für authentifizierte Gateways) der Sitzung.
-
Wenn die Sitzung abgelaufen ist oder der Client die Verbindung trennt, läuft die Sitzung ab.
Beim ersten Toolaufruf an ein MCP-Serverziel innerhalb einer Sitzung initialisiert das Gateway eine Verbindung mit dem Ziel und speichert die Sitzungs-ID des Ziels. Bei nachfolgenden Toolaufrufen an dasselbe Ziel wird diese gespeicherte Sitzungs-ID wiederverwendet, wodurch eine wiederholte Initialisierung vermieden wird.
Benutzeridentität und Umfang der Sitzung
Sitzungen werden auf die authentifizierte Benutzeridentität beschränkt, um Sitzungsmissbrauch zu verhindern. Das Gateway leitet die Benutzeridentität je nach der auf Ihrem Gateway konfigurierten Authentifizierungsmethode für eingehenden Datenverkehr unterschiedlich ab:
| Authentifizierungsmethode | Benutzer-ID | Behavior |
|---|---|---|
|
OAuth/OIDC |
|
Vollständiger Geltungsbereich. Nur der Benutzer, der die Sitzung erstellt hat, kann sie verwenden. Der |
|
AWS IAM (SigV4) |
Prinzipal-ARN |
Vollständiger Geltungsbereich. Nur der IAM-Prinzipal, der die Sitzung erstellt hat, kann sie verwenden. Der Principal-ARN ist weltweit AWS einzigartig und für die gesamte Lebensdauer der IAM-Entität unveränderlich. Beispiel: |
|
Keine Authentifizierung |
Keine |
Kein Benutzerbereich. Sitzungen sind verfügbar, aber nicht an eine Identität gebunden. Jeder mit der Sitzungs-ID kann mit der Sitzung interagieren. |
Wichtig
Bei Gateways ohne eingehende Authentifizierung besteht bei Sitzungen das Risiko, dass eine Sitzung entführt wird, wie in den Sicherheitsüberlegungen der MCP-Spezifikation
Wenn bei authentifizierten Gateways ein anderer Benutzer versucht, eine bestehende Sitzungs-ID zu verwenden, gibt das Gateway HTTP 404 Not Found zurück — die Sitzung ist für andere Benutzer unsichtbar.
Timeout und Ablauf der Sitzung
Das Sitzungs-Timeout wird ab der ersten initialize Anfrage berechnet. Nach Ablauf des Timeouts läuft die Sitzung ab und kann nicht verwendet werden.
-
Standard-Timeout: 3600 Sekunden (1 Stunde)
-
Konfigurierbarer Bereich: 900 Sekunden (15 Minuten) bis 28800 Sekunden (8 Stunden)
Wenn die Sitzung eines MCP-Serverziels vor dem Gateway-Sitzungs-Timeout abläuft, wird das Gateway transparent mit dem Ziel neu initialisiert und die gespeicherte Zielsitzungs-ID aktualisiert. Die Gateway-Sitzung bleibt aktiv.
Fehlerbehandlung
| Szenario | HTTP-Status | Description |
|---|---|---|
|
Fehlender |
400 Bad Request (400 Ungültige Anfrage) |
Alle nachfolgenden Anfragen |
|
Ungültige oder abgelaufene Sitzungs-ID |
404 Not Found (404 Nicht gefunden) |
Die Sitzung ist nicht vorhanden oder das Timeout ist abgelaufen. |
|
Ein anderer Benutzer versucht, die Sitzung eines anderen Benutzers zu verwenden (authentifizierte Gateways) |
404 Not Found (404 Nicht gefunden) |
Die Sitzung ist für andere Benutzer unsichtbar. |
|
|
400 Bad Request (400 Ungültige Anfrage) |
Wird beim Erstellen oder Aktualisieren eines Ziels auf der Steuerungsebene zurückgegeben. |