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
Durch die Nutzung von MCP-Server-Unterstützung im API-Management können Sie den Zugriff auf MCP-Server und deren Tools freistellen 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 im Header Ocp-Apim-Subscription-Key geschützt ist, können MCP-Clients den Schlüssel bei eingehenden Anfragen präsentieren, und das API-Management validiert den Schlüssel. Zum Beispiel kann man in Visual Studio Code einen headers Abschnitt zur MCP-Server-Konfiguration hinzufügen, um den Abonnementschlüssel in Anfrage-Header einzufügen:
{
"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, indem Sie die Arbeitsbereichseinstellungen von Visual Studio Code oder sichere Eingaben verwenden.
Tokenbasierte Authentifizierung (OAuth 2.1 mit Microsoft Entra ID)
MCP-Clients können OAuth-Token oder JWTs präsentieren, die von Microsoft Entra ID ausgegeben wurden, indem sie einen Authorization Header verwenden und durch API-Management validiert 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
Anfrage-Header werden automatisch (mit bestimmten Ausnahmen) an MCP-Tool-Aufrufe weitergeleitet. Diese Funktion vereinfacht die Integration mit nachgelagerten APIs, die auf Header für Routing, Kontext oder Authentifizierung angewiesen sind.
Wenn Sie den Authorization Header explizit weiterleiten müssen, um eingehende Anfragen zu validieren, verwenden Sie eine der folgenden Ansätze:
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. Weitere Informationen finden Sie unter Sicherer ausgehender Zugang.
Weitere Optionen und Beispiele für die eingehende Autorisierung finden Sie hier:
Labor: MCP mit Autorisierung geschützter Ressourcenmetadaten (PRM)
Schützen von MCP-Remoteservern mit Azure API Management (experimentell)
Schützen des ausgehenden Zugriffs
Verwenden Sie den Credential Manager von API Management, um OAuth 2.0-Token für Backend-API-Anfragen, die MCP-Servertools erstellen, sicher einzuschleusen.
Schritte zur Konfiguration des ausgehenden Zugriffs auf Basis von OAuth 2.0
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.