Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
APLICA A: desarrollador | Básico | Básico v2 | Estándar | Estándar v2 | Premium | Premium v2
Al utilizar el soporte de servidores MCP en la Gestión de APIs, puedes exponer y gobernar el acceso a los servidores MCP y sus herramientas. En este artículo se describe cómo proteger el acceso a los servidores MCP administrados en API Management, incluidos los servidores MCP expuestos desde las API REST administradas y los servidores MCP existentes hospedados fuera de API Management.
Puede asegurar el acceso entrante al servidor MCP (desde un cliente MCP a API Management), el acceso saliente (desde API Management al servidor MCP), o ambos.
Protección del acceso entrante
Autenticación basada en claves
Si el servidor MCP está protegido con una clave de suscripción de Gestión de API pasada en el Ocp-Apim-Subscription-Key encabezado, los clientes MCP pueden presentar la clave en las solicitudes entrantes, y la Gestión de APIs valida la clave. Por ejemplo, en Visual Studio Code, puedes añadir una headers sección a la configuración del servidor MCP para incluir la clave de suscripción en los encabezados de solicitud:
{
"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>"
}
}
Nota:
Gestiona de forma segura las claves de suscripción usando la configuración del espacio de trabajo de Visual Studio Code o entradas seguras.
Autenticación basada en tokens (OAuth 2.1 con el identificador de Microsoft Entra)
Los clientes MCP pueden presentar tokens OAuth o JWTs emitidos por Microsoft Entra ID usando un Authorization encabezado y validados por API Management.
Por ejemplo, use la directiva validate-azure-ad-token para validar los tokens de identificador de Entra de Microsoft:
<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>
Reenvío de tokens al back-end
Las cabeceras de solicitud se reenvían automáticamente (con ciertas exclusiones) a las invocaciones de la herramienta MCP. Esta función simplifica la integración con APIs downstream que dependen de cabeceras para el enrutamiento, el contexto o la autenticación.
Si necesitas reenviar explícitamente la Authorization cabecera para validar las solicitudes entrantes, utiliza uno de los siguientes enfoques:
Defina
Authorizationexplícitamente como un encabezado necesario en la configuración de la API y reenvíe el encabezado en laOutbounddirectiva.Fragmento de código de directiva de ejemplo:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Use el administrador de credenciales y las directivas de API Management (
get-authorization-context,set-header) para reenviar el token de forma segura. Para saber más, consulta Acceso saliente seguro.
Para obtener más opciones y ejemplos de autorización de entrada, consulte:
Ejemplo de autorización del servidor MCP con metadatos de recursos protegidos (PRM)
Laboratorio: MCP con autorización de metadatos de recursos protegidos (PRM)
Protección de servidores MCP remotos mediante Azure API Management (experimental)
Protección del acceso saliente
Utiliza el gestor de credenciales de API Management para inyectar de forma segura tokens OAuth 2.0 para las solicitudes de API backend que realizan las herramientas de servidor MCP.
Pasos para configurar el acceso saliente basado en OAuth 2.0
Paso 1: Registre una aplicación en el proveedor de identidades.
Paso 2: Cree un proveedor de credenciales en API Management vinculado al proveedor de identidades.
Paso 3: Configure las conexiones en el administrador de credenciales.
Paso 4: Aplique directivas de API Management para capturar y adjuntar credenciales dinámicamente.
Por ejemplo, la siguiente directiva recupera un token de acceso del administrador de credenciales y lo establece en el Authorization encabezado de la solicitud saliente:
<!-- 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>
Para obtener una guía paso a paso para llamar a un back-end de ejemplo mediante credenciales generadas en el administrador de credenciales, consulte Configuración del administrador de credenciales: GitHub.