Entwicklerhandbuch für gehostete MCP-Server (Vorschau)

Important

Dieses Vorschaufeature unterliegt den ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.

Dieser Leitfaden behandelt Funktionen, Konfigurationsdetails und Anforderungen für gehostete Model Context Protocol (MCP)-Server im Connector Namespace. Für einen Überblick über gehostete MCP-Server siehe Gehostete MCP-Server im Connector Namespace.

Unterstützte Regionen

Während der Vorschau sind gehostete MCP-Server in den folgenden Regionen verfügbar:

  • Zentralwesten der USA
  • East Asia
  • Central US
  • North Europe

Zugriff auf das Connector-Namespaceportal

Sie verwalten gehostete MCP-Server und deren Namespaces im Connector-Namespaceportal. Sie können auf zwei Arten darauf zugreifen:

  • Über das Azure-Portal. Öffnen Sie eine bereitgestellte Namespaceressource im Azure-Portal, die Sie mit dem Connector-Namespaceportal für diesen Namespace verknüpft.
  • Direkt. Wechseln Sie zum Webportal , und wählen Sie Ihren Namespace aus.

Authentication

Gehostete MCP-Server umfassen zwei Authentifizierungsgrenzen.

Eingehende Authentifizierung

Bei der eingehenden Authentifizierung wird die Verbindung zwischen MCP-Clients und dem gehosteten Server gesichert. Der Namespace stellt OAuth-basierte Authentifizierung mit Microsoft Entra ID bereit.

Ausgehende Authentifizierung

Die ausgehende Authentifizierung sichert die Verbindung zwischen dem gehosteten Server und dem nachgelagerten Dienst, mit dem er interagiert. Server unterstützen die folgenden Mechanismen:

Method Description
Verwaltete Identität Der Server authentifiziert sich beim downstream-Dienst mithilfe einer verwalteten Identität, die dem Namespace zugewiesen ist. Es ist keine Zugangsdatenverwaltung erforderlich.
Im Auftrag von (On-Behalf-Of, OBO) Der Server verwendet die Identität des aufrufenden Benutzers, um sich beim nachgeschalteten Dienst zu authentifizieren, was delegierte Zugriffsszenarien ermöglicht.

Optionen für verwaltete Identitäten

Wenn Sie eine verwaltete Identität für die ausgehende Authentifizierung verwenden, wählen Sie entweder:

  • Vom System zugewiesene verwaltete Identität (SAMI) Automatisch erstellt und einem Namespace zugewiesen, wenn Sie ihn während der Namespaceerstellung aktivieren. Er ist an den Namespacelebenszyklus gebunden, sodass er gelöscht wird, wenn der Namespace gelöscht wird.
  • Vom Benutzer zugewiesene verwaltete Identität (UAMI) Eine eigenständige Azure Ressource, die Sie erstellen und dem Namespace zuweisen. Sie wird unabhängig beibehalten und kann über Ressourcen hinweg wiederverwendet werden.

Schritte zum Hinzufügen einer vom Benutzer zugewiesenen verwalteten Identität zu Ihrem Namespace

Wenn Sie ein UAMI verwenden, müssen Sie diese Identität dem Namespace hinzufügen. Andernfalls kann sich der Server nicht bei nachgeschalteten Diensten authentifizieren.

So fügen Sie Ihrem Namespace ein UAMI hinzu:

  1. Wechseln Sie im Webportal zur Namespaceinstanz.

  2. Wählen Sie im linken Menü die Registerkarte "Identität " aus.

  3. Wählen Sie im Abschnitt "Benutzer zugewiesen " die Schaltfläche "+Hinzufügen " aus.

  4. Suchen Sie nach der gewünschten verwalteten Identität, und wählen Sie dann "Hinzufügen" aus.

  5. Wählen Sie oben rechts "Speichern" aus, um die Änderung zu speichern.

Integration mit Application Insights

Sie können den Server so konfigurieren, dass Protokolle und Metriken an eine angegebene Application Insights-Ressource gesendet werden. Der Server-Erstellungsfluss bietet eine Möglichkeit, diese Option unmittelbar nach der Erstellung zu konfigurieren. Wenn Sie dies verpasst haben, führen Sie die folgenden Schritte aus:

  1. Wechseln Sie im Webportal zur Namespaceinstanz.

  2. Wählen Sie im Abschnitt "Überwachung " die Option "Überwachung aktivieren" aus.

  3. Geben Sie die Verbindungszeichenfolge der Application Insights-Ressource ein, und wählen Sie dann "Aktivieren" aus.

So zeigen Sie Serverprotokolle an:

  1. Wechseln Sie zum Azure-Portal, und suchen Sie die von Ihnen konfigurierte Application Insights-Ressource.

  2. Wählen Sie im linken Menü Untersuchen>Suche aus.

  3. Legen Sie den Filter "Ortszeit " auf den gewünschten Zeitraum fest. Zeigen Sie die Protokolle als Ablaufverfolgungen oder einzelne Elemente an.

Zugriffsrichtlinie

Durch die Konfiguration einer Zugriffsrichtlinie kontrollieren Sie, wer auf Ihren gehosteten MCP-Server zugreifen kann. Wenn du einen Server erstellst, erstellt das Portal automatisch eine Richtlinie für dich. Sie können Richtlinien hinzufügen, um anderen Benutzern Zugriff auf den Server zu gewähren.

Sie können eine Zugriffsrichtlinie für einzelne Benutzer oder eine Gruppe hinzufügen. Informationen zum Erstellen einer Gruppe finden Sie unter Manage-Gruppen in Microsoft Entra ID.

So fügen Sie eine Zugriffsrichtlinie hinzu:

  1. Wechseln Sie im Webportal zur Namespaceinstanz.

  2. Wählen Sie im linken Menü die Registerkarte "MCP-Connectors " aus, und öffnen Sie den Server.

  3. Wählen Sie auf dem Server die Registerkarte "Zugriffsrichtlinien " aus.

  4. Wählen Sie die Schaltfläche "+Zugriffsrichtlinie hinzufügen " aus.

  5. Wählen Sie den gewünschten Prinzipaltypwert aus.

  6. Geben Sie den Prinzipalobjekt-ID-Wert ein. Sie finden sie im Microsoft Entra Admin Center.

  7. Geben Sie den Wert der Mandanten-ID für Ihr Abonnement ein.

Serverbereitstellungsanforderungen

Die meisten gehosteten MCP-Server werden ohne zusätzliche Artefakte bereitgestellt. Sie wählen den Server aus dem Katalog aus, und der Namespace provisioniert ihn. Für einige Server ist während der Bereitstellung eine zusätzliche Konfiguration erforderlich.

Azure SQL

Der Azure SQL MCP-Server basiert auf dem Daten-API-Generator (DAB). DAB stellt eine sichere Daten-API-Ebene über Ihre Datenbank bereit und macht die Entitäten verfügbar, die Sie als MCP-Tools auswählen, die Agents aufrufen können.

Anstatt Agents direkt mit der Datenbank zu verbinden, führt der Server DAB aus. DAB erzwingt die von Ihnen angegebenen Entitätsdefinitionen und Berechtigungen pro Entität, sodass Agents nur auf die Daten und Vorgänge zugreifen können, die Sie explizit verfügbar machen.

Azure SQL erfordert eine DAB-Konfigurationsdatei, die Folgendes definiert:

  • Die Datenbankverbindungszeichenfolge.
  • Die Entitäten (Tabellen oder Ansichten), die verfügbar gemacht werden sollen.
  • Berechtigungen für jede Entität.

Um diese Datei zu generieren, installieren Sie die DAB CLI. Führen Sie dann den folgenden Befehl aus, um nur MCP zu aktivieren (da DAB auch GraphQL- und REST-Endpunkte unterstützt):

dab init --database-type "mssql" --host-mode "Development" --graphql.enabled false --rest.enabled false --connection-string "<your-connection-string>"

Die Form der Verbindungszeichenfolge hängt vom Typ der verwalteten Identität ab, die Sie für den Server für den Zugriff auf die Datenbank verwenden.

Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;

Nachdem Sie die Datei generiert haben, müssen Sie auch Entitäten und zugehörige Berechtigungen hinzufügen. Der folgende Befehl fügt Books als Beispiel hinzu:

dab add Books --source "dbo.Books" --permissions "anonymous:*"

Ausführliche Informationen zum Konfigurieren von Entitäten und Berechtigungen finden Sie in der Übersicht über die Autorisierung des Daten-API-Generators.

Laden Sie die generierte Konfigurationsdatei (Beispiel) während der Serverbereitstellung im Namespaceportal hoch.

Gewähren des Zugriffs auf verwaltete Identitäten

Gewähren Sie nach der Bereitstellung den verwalteten Identitätszugriff auf die Datenbank. Führen Sie im Azure-Portal den folgenden Befehl im Abfrage-Editor für die SQL-Datenbank (angemeldet als Administrator) aus, um Berechtigungen zu erteilen. Achten Sie darauf, die richtige Abfrage für Ihren Identitätstyp auszuwählen.

CREATE USER [<your-connector-namespace-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<your-connector-namespace-name>];
ALTER ROLE db_datawriter ADD MEMBER [<your-connector-namespace-name>];
GRANT VIEW DEFINITION TO [<your-connector-namespace-name>];

So vergewissern Sie sich, dass Sie die Identität erstellt haben:

SELECT name, type_desc, authentication_type_desc
FROM sys.database_principals
WHERE type IN ('E', 'X')
ORDER BY name;
-- Expected: <identity-name> | EXTERNAL_USER | EXTERNAL