Passerelle de données locale : No matching shared key found

Oguzhan Yigit
Publié par Oguzhan
Catégorie : Azure / Connectivité hybride
25/10/2019

Depuis une Logic App, en utilisant la passerelle de données locale On-Premise Data Gateway pour accéder à une API, je suis tombé sur l’erreur suivante :

  • status : 401 ;
  • message : No matching shared key found ;
  • source : gatewayconnector-fc.azconn-fc.p.azurewebsites.net.

 

Mise en place d’un Custom Connector pour Logic App

Dans mon cas précis, j’ai deux ressources à consommer :

  • Un service Web de type SOAP, protégé par une authentification basique ;
  • Une API REST, protégée par un authentification de type OAuth Password Grant.

Avec une Logic App, il est possible d’interroger des API (ou service Web SOAP) on-premise par le biais de Custom Connector. Cependant, dans mes 2 cas, depuis ma Logic App, j’obtiens l’erreur suivante :

 

Passerelle de donnees locale No matching shared key found

 

Résoudre l’erreur « No matching shared key found »

Dans mon cas, j’utilise des ressources qui ne sont pas dans les mêmes régions Azure. Il semble que ce soit la cause de l’erreur. En créant mon Custom Connector dans la même région Azure que la passerelle de données locale, je n’ai plus d’erreur. Cependant, les Logic Apps ne peuvent utiliser que les Custom Connectors de la même région. Ainsi, c’est toute la chaîne qui doit être déployée dans la même région. Néanmoins, lorsque vous développez, l’éditeur de Logic App ne vous empêche pas de sélectionner n’importe quelle passerelle de données locale (même si elle est installée dans une autre région Azure).

 

Alors pourquoi l’erreur « No matching shared key found » ?

Au moment où j’écris ce post, il m’est difficile de me prononcer avec certitude :

  • Est-ce un bug côté Custom Connector ?
  • Est-ce que ce n’est tout simplement pas supporté ? Donc nous ne pourrions pas utiliser un Custom Connector Logic App pour réaliser des requêtes hybrides avec une passerelle d’une autre région ?

De mon point de vue, il s’agit d’un bug côté Custom Connector qui devrait être résolu dans une prochaine release. En effet, il est tout à fait possible de réaliser des requêtes hybrides en utilisant des connecteurs managés avec des passerelles installées dans d’autres régions (accès au file system, accès à une base de données SQL Server ou MySQL…). J’ai testé et cela fonctionne à la perfection : il n’est donc pas requis, avec un connecteur managé, que la passerelle et la Logic App appartiennent à la même région. Pour l’instant, avec un Custom Connector, je n’ai simplement pas le choix : toute ma chaîne doit être dans la même région.