Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Déployez le serveur Azure MCP sur HTTPS en tant que serveur distant auto-hébergé. Cette configuration permet aux agents IA dans Microsoft Foundry et Microsoft Copilot Studio de se connecter en toute sécurité aux outils MCP et d’appeler des outils MCP à l’aide du serveur Azure MCP déployé pour exécuter des opérations Azure. Cet article se concentre sur le scénario de connexion Copilot Studio.
Prerequisites
- Licence Power Platform qui inclut :
- Copilot Studio
- Power Apps
- Abonnement Azure avec des autorisations d’administrateur d’accès utilisateur ou propriétaire
- Azure Developer CLI (azd)
- Liste des zones d’outils Azure MCP Server (espaces de noms) que vous souhaitez activer (voir azmcp-commands.md). Le modèle de référence de cet article utilise l’espace de noms
storage.
Modèle de serveur MCP Azure
Cet article utilise le serveur Azure MCP - ACA avec le modèle d’agent azd Copilot Studio pour déployer le serveur sur Azure Container Apps. Le modèle active les outils de stockage et une identité managée pour un accès sécurisé au stockage Azure. Azure Developer CLI (azd) est un outil open source qui simplifie l’approvisionnement et le déploiement de ressources Azure et propose des commandes concises (azd deploy, azd provision) qui correspondent aux étapes clés de votre flux de travail de développement.
Déployer le serveur Azure MCP
Déployez le serveur Azure MCP sur Azure Container Apps :
Clonez et initialisez le modèle à l’aide de
azmcp-copilot-studio-aca-miazd.azd init -t azmcp-copilot-studio-aca-miLorsque vous y êtes invité, saisissez un nom d’environnement.
Exécutez le modèle avec la
azd upcommande.azd upazdvous demande les éléments suivants :- Abonnement : sélectionnez l’abonnement pour les ressources approvisionnées (répertoriées ci-dessous).
- Groupe de ressources : groupe de ressources dans lequel créer les ressources. Vous pouvez créer un groupe de ressources à la demande pendant cette étape.
azd utilise les fichiers de modèle pour provisionner les ressources et configurations suivantes :
- Azure Container App : exécute le serveur Azure MCP et fournit l’espace de noms de stockage.
- Identité managée affectée par l’utilisateur : identité managée avec le rôle Lecteur d’abonnement affecté à l’application conteneur et utilisée par le serveur Azure MCP pour effectuer des appels d’outil.
- Entra App Registration (Client) : Pour que le connecteur personnalisé Power Apps se connecte au serveur Azure MCP distant.
- Application Insights : fournit des données de télémétrie et de surveillance.
Sortie et configuration du déploiement
Une fois le déploiement terminé, récupérez les
azdvariables d’environnement avec laazd env get-valuescommande.azd env get-valuesExemple de sortie :
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>"Vous devez également ajouter l’étendue de l’API créée en tant qu’une des autorisations de l’inscription de l’application cliente. Accédez au portail Azure et recherchez l’enregistrement de l'application client à l’aide de la
ENTRA_APP_CLIENT_CLIENT_IDvaleur de sortie.Accédez au panneau Autorisations de l’API et sélectionnez Ajouter une autorisation.
Sous l’onglet Mes API, sélectionnez l'enregistrement de l'application serveur et ajoutez l’étendue
Mcp.Tools.ReadWrite.
Appeler des outils à partir de l’agent Copilot Studio
L’agent Copilot Studio se connecte aux serveurs MCP à l’aide d’un connecteur personnalisé.
Configurer un connecteur personnalisé
- Connectez-vous à Power Apps et sélectionnez l’environnement pour héberger le connecteur personnalisé.
- Créez un connecteur personnalisé à l’aide de l’option Créer à partir d’une option vide . Pour en savoir plus sur la configuration du connecteur personnalisé, consultez créer un connecteur personnalisé à partir de zéro.
- Suivez les sections suivantes pour chaque étape du flux de travail de création du connecteur.
General
À l’étape Général :
- Fournissez un nom descriptif et une description pour le connecteur personnalisé.
- Définir Schéma sur
HTTPS. - Définissez Host sur la
CONTAINER_APP_URLvaleur de laazdsortie.
Security
Ignorez l’étape Sécurité pour l’instant et passez à l’étape Définition .
Definition
Activez l’éditeur Swagger pour entrer dans le mode éditeur.
Dans la vue de l’éditeur :
Exposez une méthode POST au chemin racine avec une propriété personnalisée
x-ms-agentic-protocol: mcp-streamable-1.0. Cette propriété est requise pour que le connecteur personnalisé interagisse avec l’API à l’aide du protocole MCP.Note
Consultez l’exemple swagger du connecteur personnalisé pour un modèle de référence.
Connecteur personnalisé : Sécurité
Revenez à l’étape sécurité pour configurer l’authentification :
| Paramètre | Valeur | Remarques |
|---|---|---|
| Type d’authentification | OAuth 2.0 | Obligatoire |
| Fournisseur d’identité | Azure Active Directory | Obligatoire |
| ID du client |
ENTRA_APP_CLIENT_CLIENT_ID à partir du résultat d'azd |
ID d’inscription d’application cliente |
| Option secrète | Utiliser la clé secrète client OU Utiliser l’identité gérée | Voir ci-dessous pour la configuration |
| URL d’autorisation | https://login.microsoftonline.com |
Valeur par défaut |
| ID de locataire |
AZURE_TENANT_ID à partir d’azd output |
ID de votre locataire Azure |
| URL de ressource |
ENTRA_APP_SERVER_CLIENT_ID à partir d’azd output |
ID client d’inscription d’application serveur (pas une URL) |
| Connexion pour le compte de | Enabled | Obligatoire |
| Étendue | <ENTRA_APP_SERVER_CLIENT_ID>/.default |
Format : {server_client_id}/.default |
Configuration de l’option secret :
- Si vous utilisez la clé secrète client : créez une clé secrète client dans l’inscription de l’application cliente (portail Azure). Copiez la valeur secrète et collez-la dans le champ secret client.
- Si vous utilisez une identité managée : passez aux étapes restantes jusqu’à ce que le connecteur personnalisé soit créé.
Exigence du même locataire : les inscriptions d’applications client et serveur doivent se trouver dans le même locataire pour une authentification simplifiée. Pour les scénarios multi-locataires, consultez les problèmes connus.
Sélectionnez Créer un connecteur et attendez la fin. Après la création, l’interface utilisateur affiche une URL de redirection et, si elle est sélectionnée, une identité managée.
Inscription d’application : Configurer l’URI de redirection et les informations d’identification
Dans le portail Azure, ajoutez un URI de redirection sous la plateforme web dans l’inscription de l’application cliente.
Si vous avez choisi Utiliser l’identité managée à l’étape Sécurité , créez des informations d’identification fédérées dans l’inscription de l’application cliente.
- Sélectionnez Autre émetteur comme scénario.
- Copiez les valeurs
issueretsubjectdu connecteur personnalisé dans les champs de données d'identification. - Fournissez un nom descriptif et une description, puis sélectionnez Ajouter.
Tester la connexion
Ouvrez le connecteur personnalisé, sélectionnez Modifier, puis accédez à l’étape de test .
Sélectionnez n’importe quelle opération et choisissez Nouvelle connexion.
Connectez-vous avec le compte d’utilisateur que vous envisagez d’utiliser pour accéder aux outils MCP. Vous pouvez voir une boîte de dialogue demandant le consentement ou une invite d’approbation d’administrateur. Si vous n’êtes pas sûr, consultez les problèmes connus.
Si la connexion réussit, l’interface utilisateur indique que la connexion est créée avec succès. Si vous rencontrez une erreur lors de la connexion, consultez les problèmes connus et résolvez les problèmes avec votre administrateur de locataire.
Appeler un outil Azure MCP dans le terrain de test Copilot Studio
Connectez-vous à Copilot Studio et sélectionnez l’environnement pour héberger l’agent Copilot Studio. Créez un agent ou utilisez-en un existant.
Ouvrez les détails de l’agent et sélectionnez l’onglet Outils .
Sélectionnez Ajouter un outil.
Recherchez le nom de votre connecteur personnalisé et ajoutez-le.
Après avoir ajouté le connecteur personnalisé, l’agent Copilot Studio tente de répertorier les outils à partir du serveur MCP. Si elle réussit, vous voyez la liste des outils disponibles sous le connecteur.
Sélectionnez Test pour démarrer une session de terrain de jeu de test.
Invitez l’agent à appeler un outil MCP, par exemple pour répertorier les comptes de stockage dans l’abonnement.
Nettoyer les ressources
Exécutez la commande suivante pour supprimer les ressources Azure que ce modèle a créées lorsque vous n’en avez pas besoin.
azd down
Note
azd ne peut pas supprimer les inscriptions d’application Entra créées par ce modèle. Supprimez les inscriptions d’applications Entra en recherchant les ENTRA_APP_CLIENT_CLIENT_ID valeurs et les ENTRA_APP_SERVER_CLIENT_ID valeurs dans le portail Azure, puis supprimez les inscriptions d’application correspondantes.
Supprimez l’agent Copilot Studio, le connecteur personnalisé Power Apps et la connexion pour nettoyer les ressources Power Platform.
Structure de modèle
Le azd modèle inclut ces modules Bicep :
-
main.bicep- Orchestre le déploiement de toutes les ressources. -
aca-storage-managed-identity.bicep- Crée une identité managée attribuée par l'utilisateur. -
aca-storage-subscription-role.bicep- Attribue un rôle RBAC Azure à l'identité gérée assignée par l'utilisateur. Il est défini par défaut sur le rôle Lecteur d’abonnement. -
aca-infrastructure.bicep- Déploie l’application conteneur hébergeant le serveur Azure MCP. -
entra-app.bicep- Crée des enregistrements d'application Entra. -
application-insights.bicep- Déploie Application Insights pour la télémétrie et la surveillance lorsqu’elle est activée.
Problèmes connus
- Exigence d’un locataire unique : le connecteur personnalisé Power Apps ne prend pas en charge l’authentification des utilisateurs à partir de plusieurs locataires. Définissez donc l’inscription de l’application cliente pour accepter uniquement les utilisateurs de son locataire.
-
Options de consentement : pendant l’authentification, l’utilisateur ou un administrateur client accorde à l’application cliente l’accès à ses données. En savoir plus dans l’expérience de consentement de l’application. Vous pouvez donner votre consentement de plusieurs façons :
- Un utilisateur peut donner son consentement lors de la connexion uniquement pour cet utilisateur. La stratégie de sécurité du locataire peut bloquer cette opération.
- Un administrateur client peut donner son consentement à tous les utilisateurs du client dans l’inscription de l’application cliente dans le volet Autorisations de l’API du portail Azure.
- Ajoutez l’inscription de l’application cliente en tant qu’application cliente pré-autorisée dans l’inscription de l’application serveur sous le panneau Exposer une API dans le portail Azure.
-
Scénario interlocataire : si l’inscription de l’application cliente et l’inscription d’application serveur se trouvent dans différents locataires, vous pouvez voir l’erreur suivante lorsque vous essayez de créer la connexion :
- « L’application tente d’accéder à un service « server_app_registration_client_id » (server_app_registration_display_name) pour lequel votre organisation « client_app_registration_tenant » ne dispose pas d’un principal de service. »
-
Résolution : un administrateur client de l’inscription d’application cliente doit provisionner un principal de service pour l’inscription d’application serveur dans ce locataire :
az ad sp create --id <server_app_registration_client_id> - Après l’approvisionnement, créez à nouveau la connexion. Déclencheurs de flux de consentement.
- Si l’environnement Power Apps a une stratégie d’isolation de locataire, il bloque le flux de données lorsque les inscriptions d’applications client ou serveur se trouvent dans différents locataires. Découvrez comment ajouter des règles d’exception pour autoriser ce flux de données dans des restrictions entre locataires.