Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Vývojář | Základní | Základní v2 | Standardní | Standardní v2 | Premium | Premium v2
Díky podpoře serveru MCP ve službě API Management můžete zveřejnit a řídit přístup k serverům MCP a jejich nástrojům. Tento článek popisuje, jak zabezpečit přístup k serverům MCP spravovaným ve službě API Management, včetně serverů MCP vystavených ze spravovaných rozhraní REST API a stávajících serverů MCP hostovaných mimo službu API Management.
Můžete zabezpečit příchozí přístup k serveru MCP (z klienta MCP do služby API Management) i odchozí přístup (ze služby API Management na server MCP).
Zabezpečený příchozí přístup
Ověřování na základě klíčů
Pokud je server MCP chráněný klíčem předplatného služby API Management předaným v Ocp-Apim-Subscription-Key hlavičce, klienti MCP mohou klíč prezentovat v příchozích požadavcích a server MCP může klíč ověřit. Například v editoru Visual Studio Code můžete do konfigurace serveru MCP přidat headers oddíl, který vyžaduje klíč předplatného v hlavičce požadavku:
{
"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>"
}
}
Poznámka:
Bezpečně spravujte klíče předplatného pomocí nastavení pracovního prostoru editoru Visual Studio Code nebo zabezpečených vstupů.
Ověřování na základě tokenů (OAuth 2.1 s ID Microsoft Entra)
Klienti MCP můžou prezentovat tokeny OAuth nebo JWT vydané ID Microsoft Entra pomocí Authorization hlavičky a ověřené službou API Management.
K ověření tokenů ID Microsoft Entra použijte například zásadu validate-azure-ad-token :
<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>
Předávání tokenů do back-endu
Hlavičky požadavků se automaticky předávají (s určitými vyloučeními) do vyvolání nástrojů MCP, což zjednodušuje integraci s podřízenými rozhraními API, která spoléhají na hlavičky pro směrování, kontext nebo ověřování.
Pokud k ověření příchozích Authorization požadavků vyžadujete explicitní předávání hlavičky, můžete použít jeden z následujících přístupů:
Explicitně definujte
Authorizationjako povinnou hlavičku v nastavení rozhraní API a předejte hlavičku v zásaděOutbound.Příklad fragmentu zásad:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>K bezpečnému předávání tokenu použijte správce přihlašovacích údajů a zásady služby API Management (
get-authorization-context,set-header). Podrobnosti najdete v tématu Zabezpečený odchozí přístup .
Další možnosti a ukázky příchozí autorizace najdete v tématech:
Autorizace serveru MCP s využitím ukázky PRM (Protected Resource Metadata)
Zabezpečení vzdálených serverů MCP pomocí služby Azure API Management (experimentální)
Zabezpečený odchozí přístup
Pomocí správce přihlašovacích údajů služby API Management můžete bezpečně vkládat tokeny OAuth 2.0 pro požadavky back-endového rozhraní API provedené nástroji serveru MCP.
Postup konfigurace odchozího přístupu založeného na OAuth 2
Krok 1: Zaregistrujte aplikaci ve zprostředkovateli identity.
Krok 2: Vytvořte zprostředkovatele přihlašovacích údajů ve službě API Management propojené s zprostředkovatelem identity.
Krok 3: Nakonfigurujte připojení v rámci správce přihlašovacích údajů.
Krok 4: Použijte zásady služby API Management k dynamickému načítání a připojování přihlašovacích údajů.
Například následující zásada načte přístupový token ze správce přihlašovacích údajů a nastaví ho v Authorization hlavičce odchozího požadavku:
<!-- 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>
Podrobný průvodce voláním ukázkového back-endu pomocí přihlašovacích údajů vygenerovaných ve správci přihlašovacích údajů najdete v tématu Konfigurace správce přihlašovacích údajů – GitHub.