Envoi d’un message AS2 dans une Logic App

Camille SCHNEIDER
Publié par Camille SCHNEIDER
Catégorie : Logic Apps
11/08/2021

L’AS2 est l’une des méthodes pour transmettre des données EDI via Internet. L’AS2 permet de chiffrer et signer des données à l’aide de certificats pour garantir l’échange des données en toute sécurité.

 

Prérequis

Afin de pouvoir encoder et envoyer un message en AS2 via une logic app il est nécessaire d’utiliser les ressources Azure suivantes:

  • Key Vault ;
  • Integration Account ;
  • Logic App.

 

Key Vault

Afin de pouvoir stocker la clé du certificat privé qui servira à signer le message AS2 il est nécessaire de disposer d’une ressource de type Key Vault. Cela permet de stocker des clés, mais aussi des secrets pouvant servir à stocker des mots de passe.

 

KeyVault

 

Keys

Pour commencer, la clé doit être importée dans une key du Key Vault, le type de clé RSA est souvent utilisé pour chiffrer des données.

ImportKey

 

Access policy

Afin de pouvoir faire appel à la clé depuis une logic app, il faut donner des droits d’accès en sélectionnant “Azure Logic Apps”.

AccessPolicies

 

Configurer « l’integration account » :

La ressource Azure “integration account” est indispensable à l’encodage en AS2. C’est ici que l’on va stocker les certificats, mais aussi créer les partenaires et l’agreement qui permet de configurer le type d’AS2 envoyé.

Certificats

Il existe deux types de certificat: privé et public. Dans le cas d’un certificat privé, il est lié à une clé que nous avons préalablement stocké dans le Key Vault, c’est le certificat qui permet d’utilisé la clé. Si la clé n’apparait pas dans les propositions au moment de la création, cela peut-être dû à l’oubli de l’Access Policy comme cela est expliqué précédemment.

PrivateCertificate

 

Partenaires

Les partenaires permettent de définir l’expéditeur du message et celui qui le réceptionne. Il faut donc créer 2 partenaires de type AS2Identity.

ReceivePartner

 

Agreement

Un agreement permet de définir les règles de communication entre deux partenaires. Il existe plusieurs types d’agreements sur Azure, tel que l’AS2, l’EDIFACT et le X12.

A la création de l’agreement il faut définir le type AS2 ainsi que le destinataire et l’expéditeur du message. Lors d’un envoi nous allons configurer les paramètres d’expédition. Le certificat privé va permettre de signer le message et le certificat public l’encoder.

ConfigAS2Agreement

 

 

Logic App

Une fois dans la Logic App il faut faire appel à la shape Encode to AS2 message. La valeur AS2-From doit correspondre à la valeur entrée lors de la création de partenaire qui envoie le message. AS2-To sera lui remplit par la valeur correspondant au partenaire réceptionnant le message.

Une fois l’encodage effectué, il ne reste plus qu’à l’envoyer via un post http. La requête est envoyée avec les données de sortie de l’encodage, dans le header: @body('Encode_to_AS2_message')?['AS2Message']?['OutboundHeaders'], et dans le body: @body('Encode_to_AS2_message')?['AS2Message']?['Content'].

 

 

Logic app AS2 SendLogic app AS2 Send

 

Pour conclure, la gestion du protocole AS2 dans les logic apps est plutôt bien pensée. Les paramétrages sont complets bien qu’ils nécessitent beaucoup de ressources telles que integration account et key vault.