Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A: Sviluppatore | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
Utilizzando il supporto ai server MCP nella gestione API, puoi esporre e governare l'accesso ai server MCP e ai loro strumenti. Questo articolo descrive come proteggere l'accesso ai server MCP gestiti in Gestione API, inclusi i server MCP esposti dalle API REST gestite e dai server MCP esistenti ospitati all'esterno di Gestione API.
È possibile proteggere o entrambi l'accesso in ingresso al server MCP (da un client MCP a Gestione API) e l'accesso in uscita (da Gestione API al server MCP).
Proteggere l'accesso in ingresso
Autenticazione basata su chiave
Se il server MCP è protetto con una chiave di abbonamento API Management passata nell'intestazione Ocp-Apim-Subscription-Key dell'intestazione (API) i client MCP possono presentare la chiave nelle richieste in arrivo e API Management valida la chiave. Ad esempio, in Visual Studio Code, puoi aggiungere una headers sezione alla configurazione del server MCP per includere la chiave di abbonamento nelle intestazioni delle richieste:
{
"name": "My MCP Server",
"type": "remote",
"url": "https://my-api-management-instance.azure-api.net/my-mcp-server",
"transport": "streamable-http",
"headers": {
"Ocp-Apim-Subscription-Key": "<subscription-key>"
}
}
Annotazioni
Gestisci in modo sicuro le chiavi di abbonamento utilizzando le impostazioni dello spazio di lavoro di Visual Studio Code o input sicuri.
Autenticazione basata su token (OAuth 2.1 con Microsoft Entra ID)
I client MCP possono presentare token OAuth o JWT emessi da Microsoft Entra ID utilizzando un'intestazione Authorization e validati da API Management.
Ad esempio, usare il criterio validate-azure-ad-token per convalidare i token Microsoft Entra ID:
<validate-azure-ad-token tenant-id="your-entra-tenant-id" header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<client-application-ids>
<application-id>your-client-application-id</application-id>
</client-application-ids>
</validate-azure-ad-token>
Inoltrare i token al back-end
Le intestazioni delle richieste vengono inoltrate automaticamente, salvo alcune eccezioni, alle invocazioni degli strumenti MCP. Questa caratteristica semplifica l'integrazione con le API a valle che si basano su header per il routing, il contesto o l'autenticazione.
Se è necessario inoltrare esplicitamente l'intestazione Authorization per validare le richieste in arrivo, utilizza uno dei seguenti approcci:
Definire in modo esplicito
Authorizationcome intestazione obbligatoria nelle impostazioni dell'API e inoltrare l'intestazione neiOutboundcriteri.Frammento di criterio di esempio:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Usare Gestione credenziali e criteri di Gestione API (
get-authorization-context,set-header) per inoltrare in modo sicuro il token. Per saperne di più, vedi Accesso in uscita sicuro.
Per altre opzioni di autorizzazione in ingresso ed esempi, vedere:
Esempio di Autorizzazione dei server MCP con PRM (Protected Resource Metadata)
Lab: MCP con autorizzazione PRM (metadati delle risorse protette)
Proteggere i server MCP remoti con Gestione API di Azure (sperimentale)
Proteggere l'accesso in uscita
Usa il credential manager di API Management per iniettare in modo sicuro i token OAuth 2.0 per le richieste API backend effettuate dagli strumenti server MCP.
Passaggi per configurare l'accesso in uscita basato su OAuth 2.0
Passaggio 1: Registrare un'applicazione nel provider di identità.
Passaggio 2: Creare un provider di credenziali in Gestione API collegato al provider di identità.
Passaggio 3: Configurare le connessioni all'interno di Gestione credenziali.
Passaggio 4: Applicare i criteri di Gestione API per recuperare e allegare le credenziali in modo dinamico.
Ad esempio, il criterio seguente recupera un token di accesso da gestione credenziali e lo imposta nell'intestazione Authorization della richiesta in uscita:
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="your-credential-provider-id"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Attach the token to the backend call -->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
</set-header>
Per una guida dettagliata per chiamare un back-end di esempio usando le credenziali generate in Gestione credenziali, vedere Configurare gestione credenziali - GitHub.