Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À : Développeur | Essentiel | Essentiel v2 | Standard | Standard v2 | Premium | Premium v2
En utilisant le support des serveurs MCP dans la gestion d’API, vous pouvez exposer et gérer l’accès aux serveurs MCP et à leurs outils. Cet article explique comment sécuriser l’accès aux serveurs MCP gérés dans gestion des API, y compris les serveurs MCP exposés à partir d’API REST managées et les serveurs MCP existants hébergés en dehors de gestion des API.
Vous pouvez sécuriser l’accès entrant au serveur MCP (à partir d’un client MCP à gestion des API) et l’accès sortant (de Gestion des API au serveur MCP).
Sécuriser l’accès entrant
Authentification basée sur une clé
Si le serveur MCP est protégé par une clé d’abonnement de gestion d’API passée dans l’en-tête Ocp-Apim-Subscription-Key , les clients MCP peuvent présenter la clé dans les requêtes entrantes, et la gestion de l’API valide la clé. Par exemple, dans Visual Studio Code, vous pouvez ajouter une headers section à la configuration du serveur MCP pour inclure la clé d’abonnement dans les en-têtes de requête :
{
"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>"
}
}
Remarque
Gérez en toute sécurité les clés d’abonnement en utilisant les paramètres de l’espace de travail de Visual Studio Code ou des entrées sécurisées.
Authentification basée sur jeton (OAuth 2.1 avec Microsoft Entra ID)
Les clients MCP peuvent présenter des tokens OAuth ou JWT émis par Microsoft Entra ID en utilisant un Authorization en-tête et validés par API Management.
Par exemple, utilisez la stratégie validate-azure-ad-token pour valider les jetons de Microsoft Entra :
<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>
Transférer des jetons vers le back-end
Les en-têtes de requête sont automatiquement transférés (avec certaines exclusions) aux invocations de l’outil MCP. Cette fonctionnalité simplifie l’intégration avec les API en aval qui reposent sur des en-têtes pour le routage, le contexte ou l’authentification.
Si vous devez explicitement transférer l’en-tête Authorization pour valider les requêtes entrantes, utilisez l’une des approches suivantes :
Définissez
Authorizationexplicitement comme en-tête obligatoire dans les paramètres de l’API et transférez l’en-tête dans la stratégieOutbound.Exemple d’extrait de code de stratégie :
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Utilisez le gestionnaire d’informations d’identification et les stratégies de gestion des API (
get-authorization-context,set-header) pour transférer en toute sécurité le jeton. Pour en savoir plus, voir Accès sortant sécurisé.
Pour plus d’options d’autorisation entrantes et d’exemples, consultez :
Autorisation des serveurs MCP avec l’échantillon des métadonnées de ressources protégées (PRM)
Laboratoire : MCP avec autorisation des métadonnées de ressources protégées (PRM)
Sécuriser des serveurs MCP distants à l’aide de Gestion des API Azure (expérimental)
Sécuriser l’accès sortant
Utilisez le gestionnaire d’identifiants d’API Management pour injecter de manière sécurisée les tokens OAuth 2.0 pour les requêtes API backend effectuées par les outils serveur MCP.
Étapes pour configurer l’accès sortant basé sur OAuth 2.0
Étape 1 : inscrivez une application dans le fournisseur d’identité.
Étape 2 : réez un fournisseur d’informations d’identification dans Gestion des API lié au fournisseur d’identité.
Étape 3 : configurez les connexions dans le gestionnaire d’informations d’identification.
Étape 4 : appliquez des stratégies gestion des API pour extraire et attacher dynamiquement des informations d’identification.
Par exemple, la stratégie suivante récupère un jeton d’accès à partir du gestionnaire d’informations d’identification et le définit dans l’en-tête Authorization de la demande sortante :
<!-- 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>
Pour obtenir un guide pas à pas pour appeler un exemple de back-end à l’aide d’informations d’identification générées dans le gestionnaire d’informations d’identification, consultez Configurer le gestionnaire d’informations d’identification - GitHub.