PEPPOL, gestion des interactions entre SMP et SML

L’infrastructure de transport de PEPPOL repose sur deux composants techniques essentiels,  le SMP et le SML qui permettent l’adressage des factures dans le réseau à la façon d’un DNS ou d’un répertoire téléphonique Internet. TACD CARTENA, se penche sur la gestion des interactions entre un SMP et le SML central pour créer ou modifier les destinataires ou leurs informations de routage. 

L’infrastructure de transport PEPPOL désignée aussi par e-Delivery est fondée sur un modèle « 4 coins ». C’est un système ouvert et distribué qui permet l’adressage dans le réseau des messages factures, commandes etc.  Techniquement, la recherche d’un correspondant au sein du réseau s’effectue en automatique entre un Service Metadata Publisher (SMP)  et un Service Metadata Locator (SML). Le SML a pour fonction d’organiser le routage dans le réseau. Il comporte toutes les informations des participants PEPPOL et la liste des SMP connectés.  Pour découvrir un destinataire au sein du réseau et établir une communication avec ce correspondant. Le mécanisme de découverte procède de la façon suivante :

Le Service Metadata Locator (SML) permet à un Service Metadata Publisher (SMP) de rechercher l’adresse d’un participant PEPPOL identifié par un ID [DNS-1034]  [DNS-1035]. La spécification du service SML (Localisateur de métadonnées) est donc fondée sur l’utilisation du système Internet DNS (Domain Name System).

L’interface de recherche s’exécute dans un environnement distribué qui a l’avantage de substituer à un serveur central unique, une infrastructure répartie et redondante donc plus fiable et disponible.  Le service SML lui-même jouant le rôle de fournisseur d’accès contrôlé lors de la création et à la mise à jour des entrées dans le DNS.

L’expéditeur d’un message (facture, avoir, commande etc.) utilise cette URL par une requête HTTP GET qui renvoie les métadonnées relatives au destinataire et au type de document spécifique supporté. L’expéditeur peut ainsi obtenir les informations nécessaires lui permettant de transmettre un message contenant le document accepté par ce destinataire à partir des métadonnées renvoyées et selon la séquence illustrée ci-dessous. Cette requête automatisée se déroule sans intervention dès qu’un document est reçu par le SMP émetteur (pour consulter  l’annuaire PEPPOL, il suffit de se rendre ici).

 

 

La conception sous-jacente du processus de recherche est fondée sur l’utilisation des enregistrements CNAME du système de noms de domaine (DNS) qui correspondent au nom de domaine dans le format indiqué ci-dessus, à savoir qu’il existe un enregistrement CNAME pour le nom de domaine  « < hash over recipientID >. <schemeID>. < SML domaine >  « .

En outre, cet enregistrement CNAME pointe vers le SMP qui contient les métadonnées relatives au destinataire. Cela signifie qu’une recherche d’adresse pour le nom de domaine de l’expéditeur est résolue par le SMP qui détient les métadonnées. Cette résolution des URL Web  repose sur les spécifications standards définies pour le Web et disponibles de tous les utilisateurs.

La gestion des enregistrements CNAME DNS correspondant à un identifiant de participant est effectuée via l’interface de gestion du SML. L’interface de gestion est principalement utilisée par le SMP qui contrôle les métadonnées de service pour un identifiant de participant donné.  Les enregistrements CNAME DNS ne sont pas gérés directement par le SMP, mais  par le SML  à la suite des demandes adressées à son interface de gestion selon le processus suivant :

 

Dans les sections suivantes, nous examinons plus en détail les requêtes entre SMP et le SML,  notamment de création, suppression, modification d’un participant dans le SML .

Le Service Metadata Locator (SML) est le composant central du réseau PEPPOL eDelivery qui n’interagit qu’avec les SMP enregistrés dans le réseau (c’est à dire disposant d’un certificat valide). Le SML est un composant passif qui ne fait que répondre aux requêtes provenant des SMP du réseau. Le Service Metadata Publisher (SMP) fonctionne à la façon d’un registre décentralisé pour les métadonnées techniques. Il est capable de stocker temporairement les données de routage et de façon permanente les informations de ses clients comme le type de message accepté par le destinataire (dans la directory PEPPOL, chaque participant est renseigné avec un onglet « business information » et un onglet » document supported »).

La façon selon laquelle, le PEPPOL Service Metadata Locator (SML) fonctionne diffère légèrement de la spécification BDXL de l’OASIS (en effet, le SML PEPPOL doit permettre l’adressage des flux transfrontaliers en tenant compte des spécifications éventuelles de chaque Etat membre dans l’UE). Le SML utilisé par PEPPOL est exploité par la DG DIGIT/CEF de la Commission Européenne supporte les deux, mais seules les caractéristiques PEPPOL sont décrites ici :

Prérequis :

Pour interagir avec l’interface SML vous devez disposer :

  • D’une instance serveur SMP en cours d’exécution (conforme aux spécifications PEPPOL SMP)
  • D’une interface SMP s’exécutant sur un serveur Web public disposant d’une adresse DNS assignée
  • D’un serveur SMP accessible dans le chemin racine (« / ») de ce domaine
  • Le serveur SMP expose les API en lecture seule et obligatoirement sur le port 80 sans https
  • Vous disposez d’un certificat PEPPOL SMP X. 509 valide et accepté par le SML avec lequel vous souhaitez interagir

Vous avez choisi un identifiant (SMP-ID) qui devra être conservé par la suite.

SMP-ID C’est l’identifiant unique du SMP dans le SML. Toutes les opérations de routage doivent utiliser cet ID. Le choix de l’identifiant est libre et doit contenir uniquement des caractères, des chiffres ou un trait-d’union.
  1. Créer et enregistrer un nouveau SMP dans le SML ?

Chaque SMP doit initialement être enregistré dans le SML. Cette action s’effectue une fois et une seule. Pour procéder à cet enregistrement, vous devez fournir les éléments suivants :

  • Certificat numérique SMP X. 509 (délivré par PEPPOL)
  • SMP-ID (choisi)
  • Adresse IP du serveur (adresse physique)
  • URL publique du SMP (adresse logique)

Les actions suivantes se déroulent ensuite au niveau du SML :

  • Le certificat X. 509 est validé
  • Le caractère unique du SMP-ID est vérifié
  • La cohérence des paramètres fournis est vérifiée
  • Une entrée en base de données locale est créée qui rattache le certificat X. 509 au SMP-ID
  • Une nouvelle entrée DNS sous la forme suivante : SMP-ID.publisher.DNSZONE est créée.
  • ou SMP-ID est le paramètre d’entrée
  • ou DNSZONE est la zone DNS dans laquelle le SML opère en production
  • Et pour la partie test, le SMK (certificat de test)  [edelivery.tech.ec.europa.eu]

 

2- Mettre à jour le SMP dans le SML ?

Si le nom de domaine public d’un SMP change, ces informations doivent être propagées au SML.

Les éléments suivants sont nécessaires pour mettre à jour l’enregistrement SMP dans le SML:

  • Certificat SMP X. 509 (doit être le même que pour l’enregistrement initial)
  • SMP-ID (doit être le même que pour l’enregistrement initial)
  • Adresse IP de la machine (adresse physique)
  • URL publique du SMP (adresse logique)

Les actions suivantes se déroulent du côté SML:

  • Le certificat X. 509 est validé
  • L’existence du SMP-ID est vérifiée
  • Le lien entre le SMP-ID et le certificat X. 509 est vérifié
  • La cohérence des paramètres fournis est vérifiée
  • L’entrée de base de données locale, qui relie ensemble le certificat SMP-ID et le certificat X. 509, est mise à jour
  • La destination de l’enregistrement DNS de l’éditeur (SMP-ID. Publisher. DNSZONE) est mise à jour vers la nouvelle URL publique. L’entrée DNS elle-même est soit un enregistrement CNAME (si l’URL publique est un nom de domaine), soit un enregistrement A (si l’URL publique se compose d’une adresse IP).

 

3- Renouveler le certificat SMP dans le  SML

La mise à jour du certificat SMP comporte deux étapes de base:

  • Informer le SML de votre nouveau certificat, idéalement à l’avance
  • Mettre à jour le logiciel SMP lui-même

Il est important que le certificat SMP contienne la chaîne complète avec la clé, comme un seul alias dans le magasin de certificats.

Le SML lie le SMP-ID avec le certificat SMP associé et l’URL public définissant le point de terminaison (end point). Dans le cas d’une mise à jour de certificat, le SML propose une interface spéciale en WebService qui permet d’indiquer un changement de certificat. Si le certificat est déjà expiré, il faut contacter directement le support technique CEF eDelivery

 

4- Supprimer un SMP dans le SML

Si un SMP quitte le réseau parce que tous les participants ont été migrés vers d’autres SMP alors, il s’agit de désinscrire le SMP du SML. Cette fonctionnalité doit être maniée avec précaution car si  des participants sont encore enregistrés sous ce SMP, en effectuant cette opération, toutes les entrées DNS des participants seront également supprimées.

Les éléments suivants sont nécessaires pour supprimer l’enregistrement SMP de la SML :

  • Certificat SMP X. 509 (doit être le même que pour l’enregistrement initial)
  • SMP-ID (doit être le même que pour l’enregistrement initial)

Les actions suivantes se déroulent du côté SML :

  • Le certificat X. 509 est validé
  • L’existence du SMP-ID est vérifiée
  • Le lien entre le SMP-ID et le certificat X. 509 est vérifié
  • Les entrées de base de données locales pour tous les participants qui sont liés à ce SMP-ID sont supprimées
  • L’entrée de base de données locale pour le SMP-ID fourni est supprimée
  • Tous les enregistrements DNS pour les participants liés à l’enregistrement de l’éditeur SMP-ID sont supprimés
  • L’enregistrement DNS de l’éditeur est supprimé

 

5- Créer un nouveau participant dans le SML

Avant de pouvoir enregistrer de nouveaux participants, il faut s’assurer que le SMP est bien enregistré dans le SML .Chaque participant doit être inscrit au niveau du SML afin qu’il puisse être rejoint dans le réseau. Les éléments suivants doivent être fournis :

  • Certificat SMP X. 509 valide
  • SMP-ID actif
  • ID du participant

Les actions suivantes se déroulent du côté SML :

  • Le certificat X. 509 est validé
  • L’existence du SMP-ID est vérifiée
  • Le lien entre le SMP-ID et le certificat X. 509 est vérifié
  • La cohérence des paramètres fournis est vérifiée
  • Une entrée de base de données locale est créée, qui relie le SMP-ID et l’identificateur de participant
  • Une nouvelle entrée DNS sous la forme de « B-« +hexstring(md5(lowercase(ID-VALUE)))+ ». »+ID-SCHEME+ ». »+DNSZONE est créée
  • D-SCHEME fait partie du paramètre d’entrée, la partie Scheme de l’identificateur du participant (généralement iso6523-actorid-upis)
  • ID-VALUE fait également partie du paramètre d’entrée, la partie valeur de l’identificateur de participant
  • DNSZONE est la zone DNS dans laquelle le SML opère en production et qui est « tech.ec.europa.eu » et pour le test SMK c’est « acc.edelivery.tech.ec.europa.eu »
  • L’entrée DNS elle-même est un enregistrement CNAME pointant vers l’entrée de l’éditeur SMP qui à son tour est elle-même une référence à l’URL ou l’adresse IP fournie au processus d’enregistrement SMP vers SML (voir ci-dessus)

L’URL créée à partir de l’identifiant du participant, par exemple : « iso6523-actorid-upis::9915: » qui est une référence en entrée du SMP créée lors du processus d’inscription.

6- Supprimer un participant dans le SML

Si un participant n’est plus actif, il doit être désinscrit manuellement du SML.

Les éléments suivants sont nécessaires pour supprimer l’enregistrement SMP dans le SML :

  • Certificat SMP X. 509 (doit être le même que pour l’enregistrement initial)
  • ID du participant

Les actions suivantes se déroulent du côté SML :

  • Le certificat X. 509 est validé
  • L’existence de l’ID du participant est vérifiée
  • Le lien entre l’ID de participant et le certificat X. 509 est vérifié
  • L’entrée de base de données locale pour l’ID de participant fourni est supprimée
  • L’enregistrement DNS (B-…) pour cet ID de participant est supprimé

Remarque : les modifications apportées au DNS peuvent ne pas être immédiatement visibles, car la propagation de nouvelles entrées peut prendre jusqu’à 24 heures pour être répliquées dans le réseau.

Pour aller plus loin, on pourra visiter la page PEPPOL practical de Philip Helger, « How to setup a Phoss SMP »

Pour plus d’information sur ces procédures, vous pouvez aussi nous contacter à info@tacd-cartena.org