Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa le sessioni MCP con il tuo gateway AgentCore
Le sessioni MCP consentono interazioni statiche tra i client e il gateway. AgentCore Quando le sessioni sono abilitate, il gateway genera un identificatore di sessione univoco durante l'inizializzazione e mantiene lo stato su più richieste, abilitando funzionalità MCP avanzate come l'elicitazione e il campionamento.
Vantaggi dell'utilizzo delle sessioni
- Interazioni con destinazione del server MCP con stato
-
Il gateway memorizza l'ID di sessione del server MCP target e lo riutilizza nelle successive chiamate allo strumento. Ciò evita la reinizializzazione su ogni richiesta e consente ai target di mantenere il contesto tra le chiamate.
- Risposte più rapide con gli obiettivi Runtime AgentCore
-
Quando la sessione del target viene riutilizzata, AgentCore Runtime non ha bisogno di avviare a freddo una nuova connessione al server MCP su ogni richiesta, con conseguenti tempi di risposta più rapidi.
- Abilita funzionalità MCP avanzate
-
Le sessioni sono un prerequisito per l'elicitazione e il campionamento, che richiedono il monitoraggio dello stato su più richieste.
- User-scoped sicurezza (gateway autenticati)
-
Per i gateway con autenticazione in entrata, le sessioni sono associate all'identità utente verificata, impedendo il dirottamento della sessione.
Abilita le sessioni sul tuo gateway
Per abilitare le sessioni, specifica a sessionConfiguration nel protocolConfiguration.mcp campo durante la creazione o l'aggiornamento del gateway.
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 } } } }
Il parametro sessionTimeoutInSeconds è facoltativo. Se omesso, il timeout predefinito è di 3600 secondi (1 ora). L'intervallo valido è compreso tra 900 (15 minuti) e 28800 (8 ore). Il timeout è assoluto, calcolato a partire dalla prima initialize richiesta.
Per abilitare anche le funzionalità che dipendono da sessioni come l'elicitazione e il campionamento, devi abilitare anche lo streaming delle risposte:
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 }, "streamingConfiguration": { "enableResponseStreaming": true } } } }
Nota
Quando le sessioni sono abilitate su un gateway, non è possibile includerle Mcp-Session-Id nelle impostazioni metadataConfiguration di propagazione dell'header di un gateway target. Il gateway gestisce gli ID di sessione internamente. Il tentativo di eseguire questa operazione restituisce un errore HTTP 400 Bad Request.
Ciclo di vita della sessione
Il ciclo di vita della sessione segue il flusso di inizializzazione del protocollo MCP:
-
Il client invia una
initializerichiesta al gateway. -
Il gateway crea una sessione, memorizza i metadati della sessione e restituisce un valore univoco
Mcp-Session-Idnell'intestazione della risposta. -
Il client include l'
Mcp-Session-Idintestazione in tutte le richieste successive. -
Il gateway convalida l'esistenza, la scadenza e l'identità dell'utente (per i gateway autenticati) su ogni richiesta.
-
Quando la sessione scade o il client si disconnette, la sessione scade.
Alla prima chiamata dello strumento a una destinazione del server MCP all'interno di una sessione, il gateway inizializza una connessione con la destinazione e memorizza l'ID di sessione della destinazione. Le successive chiamate allo strumento verso la stessa destinazione riutilizzano questo ID di sessione memorizzato, evitando ripetute inizializzazioni.
Identità dell'utente e ambito della sessione
Le sessioni sono limitate all'identità dell'utente autenticato per impedire il dirottamento della sessione. Il gateway ricava l'identità dell'utente in modo diverso a seconda del metodo di autenticazione in entrata configurato sul gateway:
| Metodo di autenticazione | Identificatore utente | Comportamento |
|---|---|---|
|
OAuth/OIDC |
|
Ambito completo. Solo l'utente che ha creato la sessione può utilizzarla. L'attestazione è |
|
AWS IAM (SIGv4) |
ARN principale |
Ambito completo. Solo il responsabile IAM che ha creato la sessione può utilizzarla. L'ARN principale è unico a livello globale e immutabile per tutta AWS la durata dell'entità IAM. Ad esempio: |
|
Nessuna autenticazione |
Nessuno |
Nessun ambito utente. Le sessioni sono disponibili ma non sono vincolate ad alcuna identità. Chiunque disponga dell'ID di sessione può interagire con la sessione. |
Importante
Per i gateway senza autenticazione in entrata, le sessioni comportano un rischio di dirottamento della sessione, come descritto nelle considerazioni sulla sicurezza della specifica MCP.
Per i gateway autenticati, se un altro utente tenta di utilizzare un ID di sessione esistente, il gateway restituisce HTTP 404 Not Found: la sessione è invisibile agli altri utenti.
Timeout e scadenza della sessione
Il timeout della sessione viene calcolato a partire dalla prima richiesta. initialize Dopo il periodo di timeout, la sessione scade e non può essere utilizzata.
-
Timeout predefinito: 3600 secondi (1 ora)
-
Intervallo configurabile: da 900 secondi (15 minuti) a 28800 secondi (8 ore)
Se la sessione di destinazione di un server MCP scade o viene persa prima del timeout della sessione del gateway (ad esempio, se il target si riavvia), le successive chiamate allo strumento a tale destinazione restituiscono un errore del client (4xx), ad esempio. session not found Per ripristinarlo, reinizializza la connessione MCP al gateway inviando una nuova initialize richiesta per avviare una nuova sessione del gateway. Ciò stabilisce una nuova sessione di destinazione e le successive chiamate allo strumento utilizzano l'ID della sessione di destinazione aggiornato.
Gestione degli errori
| Scenario | Stato HTTP | Description |
|---|---|---|
|
|
400 Richiesta non valida |
Tutte le richieste successive |
|
ID di sessione non valido o scaduto |
404 Not Found (404 Non trovato) |
La sessione non esiste o è scaduta. |
|
Tentativi diversi di utente di utilizzare la sessione di un altro utente (gateway autenticati) |
404 Not Found (404 Non trovato) |
La sessione è invisibile agli altri utenti. |
|
|
400 Richiesta non valida |
Restituito sul piano di controllo durante la creazione o l'aggiornamento di un obiettivo. |