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
Con il supporto del server MCP in Gestione API, è possibile esporre e gestire l'accesso ai server MCP e ai relativi 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 sottoscrizione di Gestione API passata in un'intestazione Ocp-Apim-Subscription-Key, i client MCP possono presentare la chiave nelle richieste in ingresso e il server MCP può convalidare la chiave. In Visual Studio Code, ad esempio, è possibile aggiungere una sezione headers alla configurazione del server MCP per richiedere la chiave di sottoscrizione nelle intestazioni della richiesta:
{
"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
Gestire in modo sicuro le chiavi di sottoscrizione usando le impostazioni dell'area di lavoro di Visual Studio Code o gli 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 usando un'intestazione Authorization e convalidata da Gestione API.
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 (con determinate esclusioni) alle chiamate dello strumento MCP, semplificando l'integrazione con le API downstream che si basano sulle intestazioni per il routing, il contesto o l'autenticazione.
Se è necessario inoltrare esplicitamente l'intestazione Authorization per convalidare le richieste in ingresso, è possibile usare uno degli approcci seguenti:
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 informazioni dettagliate, vedere Proteggere l'accesso in uscita.
Per altre opzioni di autorizzazione in ingresso ed esempi, vedere:
Esempio di Autorizzazione dei server MCP con PRM (Protected Resource Metadata)
Proteggere i server MCP remoti con Gestione API di Azure (sperimentale)
Proteggere l'accesso in uscita
Usare Gestione credenziali di Gestione API per inserire in modo sicuro i token OAuth 2.0 per le richieste API back-end effettuate dagli strumenti server MCP.
Passaggi per configurare l'accesso in uscita basato su OAuth 2
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.