Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: Basic | Basic v2 | Standaard | Standard v2 | Premium | Premium v2
Met ondersteuning voor MCP-servers in API Management kunt u toegang tot MCP-servers en hun hulpprogramma's beschikbaar maken en beheren. In dit artikel wordt beschreven hoe u de toegang tot MCP-servers beveiligt die worden beheerd in API Management, inclusief zowel MCP-servers die worden weergegeven vanuit beheerde REST API's als bestaande MCP-servers die buiten API Management worden gehost.
U kunt zowel binnenkomende toegang tot de MCP-server (van een MCP-client naar API Management) als uitgaande toegang (van API Management naar de MCP-server) beveiligen.
Binnenkomende toegang beveiligen
Verificatie op basis van sleutels
Als de MCP-server is beveiligd met een API Management-abonnementssleutel die is doorgegeven in een Ocp-Apim-Subscription-Key
header, kunnen MCP-clients de sleutel presenteren in de binnenkomende aanvragen en kan de MCP-server de sleutel valideren. In Visual Studio Code kunt u bijvoorbeeld een headers
sectie toevoegen aan de MCP-serverconfiguratie om de abonnementssleutel in de aanvraagheaders te vereisen:
{
"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>"
}
}
Opmerking
Beheer abonnementssleutels veilig met behulp van werkruimte-instellingen van Visual Studio Code of beveiligde invoer.
Verificatie op basis van tokens (OAuth 2.1 met Microsoft Entra-id)
MCP-clients kunnen OAuth-tokens of JWT's presenteren die zijn uitgegeven door Microsoft Entra-id met behulp van een Authorization
header en gevalideerd door API Management.
Gebruik bijvoorbeeld het beleid validate-azure-ad-token om Microsoft Entra ID-tokens te valideren:
<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>
Tokens doorsturen naar back-end
Standaard worden in API Management binnenkomende headers, zoals Authorization
een BACK-end van de MCP-server, niet automatisch doorgestuurd. Als u tokens vandaag veilig wilt doorsturen, hebt u momenteel de volgende opties:
Definieer expliciet
Authorization
als een vereiste header in de API-instellingen en stuur de header in hetOutbound
beleid door.Voorbeeld van beleidsfragment:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>
Gebruik API Management-referentiebeheer en -beleid (
get-authorization-context
,set-header
) om het token veilig door te sturen. Zie Uitgaande toegang beveiligen voor meer informatie.
Zie voor meer opties en voorbeelden voor binnenkomende autorisatie:
MCP-serverautorisatie met PRM-voorbeeld (Protected Resource Metadata)
Externe MCP-servers beveiligen met behulp van Azure API Management (experimenteel)
Uitgaande toegang beveiligen
Gebruik referentiebeheer van API Management om OAuth 2.0-tokens veilig te injecteren voor back-end-API-aanvragen die zijn gedaan door MCP-serverhulpprogramma's.
Stappen voor het configureren van uitgaande toegang op basis van OAuth 2
Stap 1: Registreer een toepassing in de id-provider.
Stap 2: Maak een referentieprovider in API Management die is gekoppeld aan de id-provider.
Stap 3: Configureer verbindingen in referentiebeheer.
Stap 4: Pas API Management-beleid toe om referenties dynamisch op te halen en te koppelen.
Met het volgende beleid wordt bijvoorbeeld een toegangstoken opgehaald uit de referentiebeheerder en ingesteld in de Authorization
header van de uitgaande aanvraag:
<!-- 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>
Zie Referentiebeheer configureren - GitHub voor een stapsgewijze handleiding voor het aanroepen van een voorbeeldback-end met behulp van referenties die zijn gegenereerd in referentiebeheer.