Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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:
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 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.