Power Platform Intermédiaire · Mis à jour le

Créer un connecteur personnalisé Power Platform

Décrivez votre API REST dans un fichier OpenAPI 2.0. Dans une solution, créez un connecteur personnalisé à partir de ce fichier ou de zéro. Configurez l'authentification (clé API ou OAuth 2.0 avec Microsoft Entra ID), définissez les actions, testez-les dans l'assistant, puis utilisez le connecteur dans Power Automate et Power Apps sous une stratégie de données adaptée.

Avant de commencer

  • Une licence autonome Power Apps ou Power Automate pour chaque utilisateur : les connecteurs personnalisés ne sont pas couverts par les droits inclus dans Microsoft 365.
  • Un environnement avec Dataverse, un rôle de sécurité qui autorise la création de connecteurs et le droit de créer ou modifier une solution non gérée.
  • Une API REST joignable, idéalement décrite par un fichier OpenAPI 2.0 (Swagger) de moins de 1 Mo.
  • Pour OAuth 2.0 : le droit de créer une inscription d'application dans Microsoft Entra ID.
  • Facultatif : Power Platform CLI (commande pac) pour gérer le connecteur en ligne de commande.

Étape 1 : Préparer la définition OpenAPI de l'API

Le connecteur est une enveloppe autour d'une API REST. Décrivez cette API dans un fichier OpenAPI 2.0 (anciennement Swagger). Le format OpenAPI 3.0 n'est pas pris en charge, et le fichier doit peser moins de 1 Mo.

Donnez à chaque opération un operationId stable, un summary et une description : ils deviennent le nom et le libellé de l'action dans les flux et les apps. L'extension x-ms-summary fournit le libellé d'un champ.

Les noms et valeurs d'en-têtes ne doivent contenir que des caractères ASCII. Si l'API n'est visible que sur votre réseau, prévoyez une passerelle de données locale.

Sans fichier OpenAPI, vous pouvez aussi partir d'une collection Postman ou décrire l'API à la main dans l'assistant.

{
  "swagger": "2.0",
  "info": { "title": "ApiInterne", "version": "1.0.0" },
  "host": "api.exemple.fr",
  "basePath": "/",
  "schemes": ["https"],
  "securityDefinitions": {
    "api_key": { "type": "apiKey", "in": "header", "name": "X-Api-Key" }
  },
  "security": [{ "api_key": [] }],
  "paths": {
    "/clients/{id}": {
      "get": {
        "operationId": "GetClient",
        "summary": "Lire un client",
        "parameters": [
          { "name": "id", "in": "path", "required": true, "type": "string", "x-ms-summary": "Identifiant" }
        ],
        "responses": { "200": { "description": "Client trouvé" } }
      }
    }
  }
}

Vérification : Le fichier commence par "swagger": "2.0", pèse moins de 1 Mo et chaque opération a un operationId.

Étape 2 : Créer le connecteur dans une solution

L'entrée Data > Custom connectors n'est plus dans le volet de gauche : on crée désormais le connecteur dans une solution. Dans Power Apps ou Power Automate, ouvrez Solutions, puis une solution non gérée.

Sélectionnez New > Automation > Custom connector. Choisissez Import an OpenAPI file pour partir de votre fichier, ou Create from blank pour tout décrire à la main. Saisissez le nom du connecteur, puis Continue.

Dans l'onglet General, vérifiez Scheme (HTTPS), Host et Base URL : le connecteur s'en sert pour construire chaque appel. Ajoutez une icône PNG ou JPG de moins de 1 Mo et une description. Enregistrez avec Create connector.

En ligne de commande, pac connector create crée le connecteur à partir de la définition et d'un fichier de propriétés, et peut l'ajouter directement à une solution. pac connector init génère un fichier de propriétés de départ avec un modèle d'authentification (NoAuth, BasicAuth, ApiKey, OAuthGeneric, OAuthAAD).

pac connector init --connection-template "ApiKey" --generate-settings-file --outputDirectory .\ApiInterne
pac connector create --api-definition-file .\apiDefinition.json --api-properties-file .\apiProperties.json --solution-unique-name MaSolution
pac connector list

Vérification : Le connecteur apparaît dans les composants de la solution et pac connector list le renvoie (seuls les connecteurs intégrés à une solution y figurent).

Étape 3 : Configurer l'authentification par clé API

Dans l'onglet Security, choisissez API Key comme type d'authentification. Si votre fichier OpenAPI déclare une securityDefinitions de type apiKey, ces champs sont déjà remplis.

Renseignez Parameter label, Parameter name et Parameter location. Le libellé s'affiche quand quelqu'un crée une connexion. Le nom et l'emplacement (Header ou Query) doivent correspondre exactement à ce que l'API attend.

Si l'API attend un jeton porteur, l'utilisateur saisit Bearer suivi d'une espace avant la clé lors de la création de la connexion.

Vérification : L'onglet Security affiche API Key avec le nom d'en-tête attendu par votre API, et le connecteur s'enregistre sans erreur.

Étape 4 : Ou configurer OAuth 2.0 avec Microsoft Entra ID

Microsoft recommande Entra ID pour sécuriser une API et son connecteur. Dans le portail Azure, créez une inscription d'application pour le connecteur. Notez son Application ID, ajoutez les autorisations déléguées nécessaires dans API permissions, puis créez un secret client sous Certificates and secrets.

Dans l'onglet Security du connecteur, choisissez OAuth 2.0 et le fournisseur d'identité Azure Active Directory. Renseignez Client ID, Client secret et Resource URL (l'identifiant de votre API, saisi exactement).

Enregistrez : le champ Redirect URL se remplit. Chaque connecteur a sa propre URL de redirection. Copiez-la dans l'inscription d'application, sous Authentication > Add URI.

Option sans secret à renouveler : sélectionnez l'identité managée dans l'onglet Security, puis ajoutez l'émetteur et le sujet affichés comme Federated Credentials dans l'application Entra. Elle exige une application à locataire unique et un véritable ID de locataire, pas common.

Vérification : La création d'une connexion ouvre la page de connexion Microsoft, puis la connexion apparaît sans erreur de redirection.

Étape 5 : Définir et ajuster les actions

Dans l'onglet Definition, le volet de gauche liste les actions, déclencheurs et références. Pour en ajouter une : New action, puis Summary, Description et Operation ID.

Visibility règle l'affichage d'une opération ou d'un paramètre : none (normal), advanced (sous un menu), internal (masqué), important (affiché en premier).

Sous Request, Import from sample crée les paramètres à partir d'un verbe, d'une URL et d'un corps JSON d'exemple. Sous Response, Add default response fait de même pour la réponse. Éditez ensuite chaque paramètre du corps pour lui donner un titre, une description, une valeur par défaut et le caractère obligatoire.

Corrigez ce que signale la zone Validation, puis Update connector. L'onglet Code (facultatif) accepte du C# : cinq secondes d'exécution au plus, fichier de 1 Mo au plus.

Vérification : La zone Validation affiche une coche verte et chaque action porte un Operation ID explicite.

Étape 6 : Tester le connecteur dans l'assistant

Ouvrez l'onglet Test, sélectionnez New connection, fournissez la clé API ou connectez-vous, puis Create connection. Avec une clé API, attendez quelques minutes après la création : le connecteur n'est pas prêt tout de suite.

Dans Power Automate, revenez à l'onglet Test et actualisez la liste des connexions. Choisissez une opération, saisissez ses paramètres, puis Test operation.

Lisez la réponse : statut HTTP, en-têtes et corps. Une erreur 401 signale une clé ou des identifiants OAuth incorrects. Une erreur 403 peut venir d'un pare-feu qui bloque les adresses IP sortantes des connecteurs managés.

Vérification : Test operation renvoie un statut 200 et le corps attendu de votre API.

Étape 7 : Utiliser le connecteur dans Power Automate et Power Apps

Un connecteur créé dans Power Automate est disponible dans Power Apps et Copilot Studio, et inversement. Dans un flux, ajoutez une action, recherchez votre connecteur, puis choisissez l'opération : son nom et sa description viennent de la définition.

Dans une application canevas, ouvrez le volet Data et ajoutez la connexion. Appelez ensuite l'opération dans une formule, sous la forme NomDuConnecteur.OperationId(...).

Pour que d'autres makers l'utilisent : More > Discover all > Data > Custom connectors, puis ... > Invite another user, avec Can view ou Can edit. Partager une app ou un flux d'équipe partage aussi le connecteur.

Si vous modifiez l'API, mettez à jour le connecteur, puis retirez et rajoutez la source de données dans les apps qui l'utilisent.

// Propriété OnSelect d'un bouton (application canevas)
ClearCollect(colClient, ApiInterne.GetClient(txtId.Text))

Vérification : Le flux de test s'exécute avec succès et la formule Power Apps renvoie des données sans erreur de connexion.

Étape 8 : Classer le connecteur dans les stratégies de données

Au niveau d'un environnement, le connecteur personnalisé apparaît sur la page Connectors de la stratégie de données, avec les connecteurs prédéfinis. Classez-le en Business, Non-business ou Blocked. Sans classement explicite, il rejoint le groupe par défaut.

Au niveau du locataire, les connecteurs personnalisés se classent par modèle d'URL d'hôte, sur la page Custom connectors de la stratégie, via Add connector pattern. Les règles sont ordonnées. La règle * est toujours la dernière et vaut Ignore par défaut.

Créez par exemple une règle https://api.exemple.fr* en Business, avant la règle *. Évitez de gérer les connecteurs personnalisés par nom dans une stratégie de locataire : un nom n'a de sens que dans son environnement.

Vérification : La page Custom connectors de la stratégie liste votre modèle d'URL au-dessus de la règle *, avec le classement voulu.

Erreurs fréquentes

L'import du fichier OpenAPI échoue ou le connecteur reste vide.
Le fichier est probablement en OpenAPI 3.0 ou dépasse 1 Mo. Exportez ou convertissez la définition en OpenAPI 2.0 et retirez les opérations inutiles.
Erreur 401 ou erreur de redirection à la création d'une connexion OAuth.
Ajoutez dans l'application Entra l'URL de redirection propre au connecteur, affichée dans l'onglet Security. Pour un ancien connecteur, cochez Update to unique redirect URL, enregistrez, puis remplacez l'ancienne URL globale.
L'import d'une solution contenant le connecteur et ses flux échoue dans l'environnement cible.
Importez d'abord une solution qui ne contient que les connecteurs personnalisés, puis la solution avec les références de connexion et les flux. Ressaisissez ensuite les identifiants et recréez les connexions.
Test operation échoue juste après la création du connecteur.
Avec une clé API, attendez quelques minutes avant le premier test. Si les actions ne se chargent toujours pas, videz le cache du navigateur ou ouvrez une fenêtre privée.

Sources

Questions

Questions fréquentes

Un connecteur personnalisé exige-t-il une licence premium ?

Oui. Les droits Power Apps et Power Automate inclus dans Microsoft 365 couvrent les connecteurs standard. Une licence autonome Power Apps ou Power Automate est requise pour accéder aux connecteurs premium, locaux et personnalisés.

Mon API est décrite en OpenAPI 3.0 : est-ce un problème ?

Oui. L'import attend une définition OpenAPI 2.0. Convertissez-la, ou créez le connecteur de zéro dans l'assistant (possible dans Power Automate et Power Apps, pas dans Logic Apps).

Peut-on appeler une API qui n'est pas exposée sur Internet ?

Oui, par une passerelle de données locale installée sur votre réseau. Elle relaie les appels du connecteur vers l'API privée.

Les droits de partage suivent-ils le connecteur d'un environnement à l'autre ?

Non. Les attributions de rôle ne sont pas conservées à l'export et à l'import, car elles dépendent des utilisateurs de chaque environnement. Partagez à nouveau le connecteur dans l'environnement cible.

Besoin d'un coup de main ?

Nous pouvons le faire avec votre équipe, ou former celle-ci pour qu'elle le fasse seule.