Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Deweloper | Podstawowa | Podstawowa wersja 2 | Standardowa | Standardowa wersja 2 | Premium | Premium wersja 2
Korzystając z wsparcia serwerów MCP w API Management, możesz udostępniać i zarządzać dostępem do serwerów MCP oraz ich narzędzi. W tym artykule opisano sposób zabezpieczania dostępu do serwerów MCP zarządzanych w usłudze API Management, w tym zarówno serwerów MCP udostępnianych z zarządzanych interfejsów API REST, jak i istniejących serwerów MCP hostowanych poza usługą API Management.
Możesz zabezpieczyć dostęp przychodzący do serwera MCP (z klienta MCP do usługi API Management) i dostęp wychodzący (z usługi API Management do serwera MCP).
Bezpieczny dostęp przychodzący
Uwierzytelnianie oparte na kluczach
Jeśli serwer MCP jest chroniony kluczem subskrypcyjnym API Management przekazanym w nagłówku Ocp-Apim-Subscription-Key , klienci MCP mogą prezentować klucz w przychodzących żądaniach, a API Management waliduje klucz. Na przykład w Visual Studio Code możesz dodać sekcję headers do konfiguracji serwera MCP, aby uwzględnić klucz subskrypcyjny w nagłówkach żądań:
{
"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>"
}
}
Uwaga / Notatka
Bezpiecznie zarządzaj kluczami subskrypcyjnymi, korzystając z ustawień przestrzeni roboczej Visual Studio Code lub bezpiecznych wejść.
Uwierzytelnianie oparte na tokenach (OAuth 2.1 z identyfikatorem Entra firmy Microsoft)
Klienci MCP mogą prezentować tokeny OAuth lub JWT wydawane przez Microsoft Entra ID, używając nagłówka Authorization i weryfikowanych przez API Management.
Na przykład użyj zasady validate-azure-ad-token, aby zweryfikować tokeny 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>
Przekazywanie tokenów do zaplecza
Nagłówki żądań są automatycznie przekazywane (z pewnymi wyłączeniami) do wywołań narzędzi MCP. Ta funkcja upraszcza integrację z docelowymi interfejsami API, które używają nagłówków do trasowania, przekazywania kontekstu lub uwierzytelniania.
Jeśli musisz jawnie przekazać nagłówek Authorization , aby zweryfikować nadchodzące żądania, zastosuj jedno z następujących sposobów:
Wyraźnie określ
Authorizationjako wymagany nagłówek w ustawieniach API i przekaż ten nagłówek w zasadzieOutbound.Przykładowy fragment kodu zasad:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Użyj menedżera poświadczeń i zasad usługi API Management (
get-authorization-context,set-header), aby bezpiecznie przekazać token. Aby dowiedzieć się więcej, zobacz Bezpieczny dostęp wychodzący.
Aby uzyskać więcej opcji autoryzacji dla ruchu przychodzącego i przykładów, zobacz:
Przykład autoryzacji serwera MCP z chronionymi metadanymi zasobów (PRM)
Laboratorium: MCP z autoryzacją metadanych chronionego zasobu (PRM)
Zabezpieczanie zdalnych serwerów MCP przy użyciu usługi Azure API Management (eksperymentalne)
Zabezpieczanie dostępu wychodzącego
Użyj menedżera poświadczeń w API Management, aby bezpiecznie dołączać tokeny OAuth 2.0 do żądań do interfejsu API zaplecza wysyłanych przez narzędzia serwera MCP.
Kroki konfiguracji dostępu wychodzącego opartego na OAuth 2.0
Krok 1: Zarejestruj aplikację u dostawcy tożsamości.
Krok 2. Utwórz dostawcę poświadczeń w usłudze API Management połączonego z dostawcą tożsamości.
Krok 3: Konfigurowanie połączeń w menedżerze poświadczeń.
Krok 4: Stosowanie zasad usługi API Management w celu dynamicznego pobierania i dołączania poświadczeń.
Na przykład następująca zasada pobiera token dostępu z menedżera poświadczeń i ustawia go w nagłówku Authorization żądania wychodzącego:
<!-- 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>
Przewodnik krok po kroku dotyczący wywoływania przykładowego backendu przy użyciu poświadczeń wygenerowanych w menedżerze poświadczeń znajdziesz tutaj: Konfigurowanie menedżera poświadczeń — GitHub.