Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Developer | Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
Mit MCP-Serverunterstützung in API Management können Sie den Zugriff auf MCP-Server und deren Tools verfügbar machen und steuern. In diesem Artikel wird beschrieben, wie Sie den Zugriff auf MCP-Server, die in API Management verwaltet werden, schützen, einschließlich MCP-Servern, die über verwaltete REST-APIs verfügbar gemacht werden, und vorhandenen MCP-Servern, die außerhalb von API Management gehostet werden.
Sie können den eingehenden Zugriff auf den MCP-Server (von einem MCP-Client zu API Management) und ausgehenden Zugriff (von API Management zum MCP-Server) schützen.
Schützen des eingehenden Zugriffs
Schlüsselbasierte Authentifizierung
Wenn der MCP-Server mit einem API Management-Abonnementschlüssel geschützt wird, der in einem Ocp-Apim-Subscription-Key-Header übergeben wird, können MCP-Clients den Schlüssel in den eingehenden Anforderungen angeben, und der MCP-Server kann den Schlüssel überprüfen. In Visual Studio Code können Sie beispielsweise der MCP-Serverkonfiguration den Abschnitt headers hinzufügen, um den Abonnementschlüssel in den Anforderungsheadern anzufordern:
{
"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>"
}
}
Hinweis
Verwalten Sie Abonnementschlüssel sicher mithilfe von Visual Studio Code-Arbeitsbereichseinstellungen oder sicheren Eingaben.
Tokenbasierte Authentifizierung (OAuth 2.1 mit Microsoft Entra ID)
MCP-Clients können OAuth-Token oder JWTs präsentieren, die von Microsoft Entra ID mithilfe eines Authorization-Headers ausgestellt und von API Management überprüft werden.
Verwenden Sie beispielsweise die Richtlinie validate-azure-ad-token, um Microsoft Entra ID-Token zu überprüfen:
<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>
Weiterleiten von Token an das Back-End
Anforderungsheader werden automatisch (mit bestimmten Ausschlüssen) an MCP-Toolaufrufe weitergeleitet und vereinfachen die Integration mit downstream-APIs, die auf Headern für Routing, Kontext oder Authentifizierung angewiesen sind.
Wenn Sie eine explizite Weiterleitung des Authorization Headers zum Überprüfen eingehender Anforderungen erfordern, können Sie einen der folgenden Ansätze verwenden:
Definieren Sie
Authorizationexplizit als erforderlichen Header in den API-Einstellungen, und leiten Sie den Header in derOutbound-Richtlinie weiter.Beispielrichtlinienausschnitt:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Verwenden Sie die API Management-Anmeldeinformationsverwaltung und Richtlinien (
get-authorization-context,set-header), um das Token auf sichere Weise weiterzuleiten. Details finden Sie unter Schützen des ausgehenden Zugriffs.
Weitere Optionen und Beispiele für die eingehende Autorisierung finden Sie hier:
Schützen des ausgehenden Zugriffs
Verwenden Sie die Anmeldeinformationsverwaltung von API Management, um OAuth 2.0-Token für die von MCP-Servertools gesendeten Back-End-API-Anforderungen sicher einzufügen.
Schritte zum Konfigurieren des OAuth 2-basierten ausgehenden Zugriffs
Schritt 1: Registrieren Sie eine Anwendung im Identitätsanbieter.
Schritt 2: Erstellen Sie einen Anmeldeinformationsanbieter in API Management, der mit dem Identitätsanbieter verknüpft ist.
Schritt 3: Konfigurieren Sie Verbindungen innerhalb der Anmeldeinformationsverwaltung.
Schritt 4: Wenden Sie API Management-Richtlinien an, um Anmeldeinformationen dynamisch abzurufen und anzufügen.
Die folgende Richtlinie ruft beispielsweise ein Zugriffstoken aus der Anmeldeinformationsverwaltung ab und legt es im Authorization-Header der ausgehenden Anforderung fest:
<!-- 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>
Eine schrittweise Anleitung zum Aufrufen eines Beispiel-Back-Ends mithilfe von Anmeldeinformationen, die in der Anmeldeinformationsverwaltung generiert wurden, finden Sie unter Konfigurieren der Anmeldeinformationsverwaltung – GitHub.