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.
Stellen Sie den Azure MCP-Server über HTTPS als selbst gehosteten Remoteserver bereit. Mit diesem Setup können KI-Agents in Microsoft Foundry und Microsoft Copilot Studio sicher eine Verbindung mit MCP-Tools herstellen und aufrufen, indem der bereitgestellte Azure MCP-Server zum Ausführen von Azure-Vorgängen verwendet wird. Dieser Artikel konzentriert sich auf das Copilot Studio-Verbindungsszenario.
Voraussetzungen
- Power Platform-Lizenz, die Folgendes umfasst:
- Copilot Studio
- Power Apps
- Azure-Abonnement mit Besitzer oder Benutzerzugriffsadministrator-Berechtigungen
- Azure Developer CLI (azd)
- Die Liste der Azure MCP Server-Toolbereiche (Namespaces), die Sie aktivieren möchten (siehe azmcp-commands.md). Die Referenzvorlage in diesem Artikel verwendet den
storageNamespace.
Azure MCP Server-Vorlage
In diesem Artikel wird die Vorlage Azure MCP Server - ACA mit Copilot Studio-Agentazd verwendet, um den Server in Azure Container Apps bereitzustellen. Die Vorlage ermöglicht Speichertools und eine verwaltete Identität für den sicheren Zugriff auf Azure Storage. Die Azure Developer CLI (azd) ist ein Open-Source-Tool, das die Bereitstellung und Implementierung von Azure-Ressourcen vereinfacht und präzise Befehle (azd deploy, azd provision) bietet, die wichtigen Phasen in Ihrem Entwicklungsworkflow entsprechen.
Bereitstellen des Azure MCP-Servers
Bereitstellen des Azure MCP-Servers in Azure-Container-Apps:
Klonen Sie und initialisieren Sie die
azmcp-copilot-studio-aca-miVorlage mitazd.azd init -t azmcp-copilot-studio-aca-miWenn Sie dazu aufgefordert werden, geben Sie einen Umgebungsnamen ein.
Führen Sie die Vorlage mit dem
azd upBefehl aus.azd upazdfordert Sie auf, folgende Informationen einzugeben:- Abonnement: Wählen Sie das Abonnement für die bereitgestellten Ressourcen aus (unten aufgeführt).
- Ressourcengruppe: Die Ressourcengruppe, in der die Ressourcen erstellt werden sollen. Während dieses Schritts können Sie eine neue Ressourcengruppe bei Bedarf erstellen.
azd verwendet die Vorlagendateien, um die folgenden Ressourcen und Konfigurationen bereitzustellen:
- Azure-Container-App: Führt den Azure MCP-Server aus und stellt den Speichernamespace bereit.
- Vom Benutzer zugewiesene verwaltete Identität: Eine verwaltete Identität mit der Rolle "Abonnementleser ", die der Container-App zugewiesen ist und vom Azure MCP-Server zum Tätigen von Toolaufrufen verwendet wird.
- Entra App-Registrierung (Client): Zur Verbindung des benutzerdefinierten Power Apps-Connector mit dem Azure MCP-Remoteserver.
- Application Insights: Bietet Telemetrie und Überwachung.
Bereitstellungsergebnis und -konfiguration
Rufen Sie nach Abschluss der Bereitstellung die Umgebungsvariablen mit dem
azd-Befehlazd env get-valuesab.azd env get-valuesBeispielausgabe:
AZURE_RESOURCE_GROUP="<your-resource-group-name>" AZURE_SUBSCRIPTION_ID="<your-subscription-id>" AZURE_TENANT_ID="<your-tenant-id>" CONTAINER_APP_NAME="<your-container-app-name>" CONTAINER_APP_URL="https://azure-mcp-storage-server.<your-container-app-name>.westus3.azurecontainerapps.io" ENTRA_APP_CLIENT_CLIENT_ID="<your-client-app-registration-client-id>" ENTRA_APP_SERVER_CLIENT_ID="<your-server-app-registration-client-id>"Außerdem müssen Sie den erstellten API-Bereich als eine der Berechtigungen der Client-App-Registrierung hinzufügen. Wechseln Sie zum Azure-Portal und suchen Sie mithilfe des Ausgabewerts
ENTRA_APP_CLIENT_CLIENT_IDnach der Registrierung der Client-App.Wechseln Sie zum Blatt "API-Berechtigungen", und wählen Sie "Berechtigung hinzufügen" aus.
Wählen Sie auf der Registerkarte "Meine APIs" die Server-App-Registrierung aus, und fügen Sie den
Mcp.Tools.ReadWriteBereich hinzu.
Rufen Sie Werkzeuge aus dem Copilot Studio-Agent auf
Der Copilot Studio-Agent stellt mithilfe eines benutzerdefinierten Connectors eine Verbindung mit MCP-Servern bereit.
Konfigurieren eines benutzerdefinierten Connectors
- Melden Sie sich bei Power Apps an, und wählen Sie die Umgebung aus, um den benutzerdefinierten Connector zu hosten.
- Erstellen Sie einen neuen benutzerdefinierten Connector mithilfe der Option "Aus leerem Format erstellen ". Weitere Informationen zur Konfiguration eines benutzerdefinierten Connectors finden Sie unter Erstellen eines benutzerdefinierten Connectors von Grund auf neu.
- Führen Sie die folgenden Abschnitte für jeden Schritt des Connectorerstellungsworkflows aus.
Allgemein
Im allgemeinen Schritt:
- Geben Sie einen beschreibenden Namen und eine Beschreibung für den benutzerdefinierten Connector an.
-
Schema zu
HTTPS. - Legen Sie "Host " auf den
CONTAINER_APP_URLWert aus derazdAusgabe fest.
Sicherheit
Überspringen Sie den Sicherheitsschritt für jetzt, und fahren Sie mit dem Definitionsschritt fort.
Definition
Schalten Sie den Swagger-Editor ein, um die Editoransicht einzugeben.
In der Editoransicht:
Machen Sie eine POST-Methode im Stammpfad mit einer benutzerdefinierten
x-ms-agentic-protocol: mcp-streamable-1.0Eigenschaft verfügbar. Diese Eigenschaft ist erforderlich, damit der benutzerdefinierte Connector mithilfe des MCP-Protokolls mit der API interagieren kann.Hinweis
Sehen Sie sich das Swagger-Beispiel für einen benutzerdefinierten Konnektor als Referenzvorlage an.
Benutzerdefinierter Connector: Sicherheit
Kehren Sie zum Sicherheitsschritt zurück, um die Authentifizierung zu konfigurieren:
| Parameter | Wert | Hinweise |
|---|---|---|
| Authentifizierungstyp | OAuth 2.0 | Erforderlich |
| Identitätsanbieter | Azure Active Directory | Erforderlich |
| Client-ID |
ENTRA_APP_CLIENT_CLIENT_ID aus azd-Ausgabe |
Client-App-Registrierungs-ID |
| Option "Geheim" | Verwenden des geheimen Clientschlüssels ODER Verwenden der verwalteten Identität | Siehe unten für Setup. |
| Autorisierungs-URL | https://login.microsoftonline.com |
Standardwert |
| Mandanten-ID |
AZURE_TENANT_ID aus azd-Ausgabe |
Ihre Azure-Mandanten-ID |
| Ressourcen-URL |
ENTRA_APP_SERVER_CLIENT_ID aus azd-Ausgabe |
Client-ID der Server-App-Registrierung (keine URL) |
| Anmeldung im Auftrag von | Enabled | Erforderlich |
| Scope | <ENTRA_APP_SERVER_CLIENT_ID>/.default |
Formatierung: {server_client_id}/.default |
Einrichtung der geheimen Option:
- Wenn Sie den geheimen Clientschlüssel verwenden: Erstellen Eines geheimen Clientschlüssels in der Client-App-Registrierung (Azure-Portal). Kopieren Sie den geheimen Wert, und fügen Sie ihn in das geheime Clientschlüsselfeld ein.
- Wenn Sie verwaltete Identität verwenden: Fahren Sie mit den verbleibenden Schritten fort, bis der benutzerdefinierte Connector erstellt wird.
Anforderung desselben Mandanten: Die Registrierungen von Client- und Server-Apps müssen sich im selben Mandanten befinden, um die vereinfachte Authentifizierung zu erhalten. Informationen zu mandantenübergreifenden Szenarien finden Sie unter "Bekannte Probleme".
Wählen Sie "Connector erstellen" aus, und warten Sie auf den Abschluss. Nach der Erstellung zeigt die Benutzeroberfläche eine Umleitungs-URL und, falls ausgewählt, eine verwaltete Identität an.
App-Registrierung: Konfigurieren von Umleitungs-URI und Anmeldeinformationen
Fügen Sie im Azure-Portal einen Umleitungs-URI unter der Webplattform in der Client-App-Registrierung hinzu.
Wenn Sie " Verwaltete Identität verwenden" im Sicherheitsschritt ausgewählt haben, erstellen Sie eine Verbundanmeldeinformationen in der Client-App-Registrierung.
- Wählen Sie "Anderer Aussteller " als Szenario aus.
- Kopieren Sie die Werte von
issuerundsubjectaus dem benutzerdefinierten Connector in die Anmeldefelder. - Geben Sie einen beschreibenden Namen und eine Beschreibung ein, und wählen Sie dann "Hinzufügen" aus.
Verbindung testen
Öffnen Sie den benutzerdefinierten Connector, wählen Sie "Bearbeiten" aus, und wechseln Sie zum Testschritt .
Wählen Sie einen beliebigen Vorgang aus, und wählen Sie "Neue Verbindung" aus.
Melden Sie sich mit dem Benutzerkonto an, das Sie für den Zugriff auf die MCP-Tools verwenden möchten. Möglicherweise wird ein Dialogfeld angezeigt, das die Zustimmung anfordert, oder eine Administratorgenehmigungsaufforderung. Wenn Sie nicht sicher sind, lesen Sie bekannte Probleme.
Wenn die Anmeldung erfolgreich war, zeigt die Benutzeroberfläche an, dass die Verbindung erfolgreich erstellt wurde. Wenn bei der Anmeldung ein Fehler auftritt, finden Sie Informationen zu bekannten Problemen und erhalten Sie Unterstützung von Ihrem Mandanten-Administrator.
Aufrufen eines Azure MCP-Tools im Copilot Studio-Test-Playground
Melden Sie sich bei Copilot Studio an, und wählen Sie die Umgebung aus, um den Copilot Studio-Agent zu hosten. Erstellen Sie einen neuen Agent, oder verwenden Sie einen vorhandenen Agent.
Öffnen Sie die Agentdetails und wählen Sie die Registerkarte Extras aus.
Wählen Sie "Tool hinzufügen" aus.
Suchen Sie nach Ihrem benutzerdefinierten Connectornamen, und fügen Sie ihn hinzu.
Nachdem Sie den benutzerdefinierten Connector hinzugefügt haben, versucht der Copilot Studio-Agent, die Tools vom MCP-Server aufzulisten. Bei erfolgreicher Ausführung wird die verfügbare Toolliste unter dem Connector angezeigt.
Wählen Sie "Testen" aus, um eine Test-Playground-Sitzung zu starten.
Fordern Sie den Agent auf, ein MCP-Tool aufzurufen, z. B. zum Auflisten von Speicherkonten im Abonnement.
Bereinigen von Ressourcen
Führen Sie den folgenden Befehl aus, um die Azure-Ressourcen zu löschen, die diese Vorlage erstellt hat, wenn Sie sie nicht benötigen.
azd down
Hinweis
azd Die von dieser Vorlage erstellten Entra-App-Registrierungen können nicht gelöscht werden. Löschen Sie die Entra-App-Registrierungen, indem Sie nach den ENTRA_APP_CLIENT_CLIENT_IDENTRA_APP_SERVER_CLIENT_ID Werten im Azure-Portal suchen und dann die entsprechenden App-Registrierungen löschen.
Löschen Sie den Copilot Studio-Agent, den benutzerdefinierten Power Apps-Connector und die Verbindung, um Power Platform-Ressourcen zu bereinigen.
Vorlagenstruktur
Die Vorlage azd enthält die folgenden Bicep-Module:
-
main.bicep– Koordiniert die Bereitstellung aller Ressourcen. -
aca-storage-managed-identity.bicep– Erstellt eine vom Benutzer zugewiesene verwaltete Identität. -
aca-storage-subscription-role.bicep– Weist der vom Benutzer zugewiesenen verwalteten Identität eine Azure RBAC-Rolle zu. Standard ist die Rolle „Abonnementleser“. -
aca-infrastructure.bicep– Stellt die Container-App bereit, die den Azure MCP-Server hostet. -
entra-app.bicep– Erstellt Entra-App-Registrierungen. -
application-insights.bicep– Stellt Application Insights für Telemetrie und Überwachung bereit, wenn diese aktiviert ist.
Bekannte Probleme
- Single-Tenant-Anforderung: Der benutzerdefinierte Connector für Power Apps unterstützt keine Authentifizierung von Benutzern aus mehreren Mandanten. Legen Sie daher die Client-App-Registrierung so fest, dass nur Benutzer von dessen Mandant akzeptiert werden.
-
Zustimmungsoptionen: Während der Authentifizierung gewährt der Benutzer oder ein Mandantenadministrator der Client-App Zugriff auf seine Daten. Erfahren Sie mehr in der Anwendungsgenehmigungserfahrung. Sie können die Zustimmung auf verschiedene Arten erteilen:
- Ein Benutzer kann während der Anmeldung nur für diesen Benutzer die Zustimmung erteilen. Die Mandantensicherheitsrichtlinie kann dies blockieren.
- Ein Mandanten-Admin kann im Azure-Portal die Zustimmung für alle Benutzer im Mandanten in der Client-App-Registrierung im Abschnitt API-Berechtigungen erteilen.
- Fügen Sie die Client-App-Registrierung als vorautorisierte Client-App in der Server-App-Registrierung unter dem Blatt "Api verfügbar machen" im Azure-Portal hinzu.
- Mandantenübergreifendes Szenario: Wenn sich die Registrierung der Client-App und die Server-App-Registrierung in verschiedenen Mandanten befinden, wird möglicherweise der folgende Fehler angezeigt, wenn Sie versuchen, die Verbindung zu erstellen:
- "Die App versucht, auf einen Dienst "server_app_registration_client_id"(server_app_registration_display_name) zuzugreifen, für den Ihre Organisation "client_app_registration_tenant" keinen Dienstprinzipal aufweist."
-
Lösung: Ein Mandantenadministrator der Client-App-Registrierung muss einen Dienstprinzipal für die Server-App-Registrierung in diesem Mandanten bereitstellen:
az ad sp create --id <server_app_registration_client_id> - Erstellen Sie nach der Bereitstellung die Verbindung erneut. Der Zustimmungsprozess wird ausgelöst.
- Wenn die Power Apps-Umgebung über eine Mandantenisolationsrichtlinie verfügt, wird der Datenfluss blockiert, wenn sich die Client- oder Server-App-Registrierungen in verschiedenen Mandanten befinden. Erfahren Sie, wie Sie Ausnahmeregeln hinzufügen, um diesen Datenfluss in mandantenübergreifenden Einschränkungen zuzulassen.