Table of Contents

SESAR Webhook

Recevoir automatiquement dans vos systèmes ce que SESAR dépose dans votre coffre : CRM, SharePoint, Dynamics 365, stockage de fichiers ou votre propre API.

SESAR Webhook est une application web .NET que vous hébergez sur un serveur Windows. Secure Exchanges la fournit en projets de référence sur GitHub, avec leur code source : vous la compilez, la configurez et la déployez vous-même.

Projet Plateforme
SESARWebhookCore .NET 9 (ASP.NET Core), recommandé
SESARWebhook .NET Framework 4.7.2 (ASP.NET Web API 2), sous IIS

Ce centre d'aide documente la version .NET. Pour la version .NET Framework, voir Choisir sa version.

Fonctionnement

  1. À chaque dépôt dans votre coffre, SESAR envoie une requête POST à l'adresse du webhook que vous avez configurée. Le corps contient le manifeste du dépôt, chiffré, et une valeur d'authentification (HashKey).
  2. Le webhook vérifie cette valeur, puis déchiffre le manifeste avec la clé et le vecteur d'initialisation qu'il partage avec SESAR.
  3. Il transmet le manifeste au connecteur ou au gestionnaire que désigne l'adresse appelée.
  4. Le connecteur ou le gestionnaire envoie les données vers votre système, puis le webhook répond à SESAR. Seule une réponse HTTP 200 vaut confirmation : sinon, SESAR renvoie la requête plus tard.

Ce que contient le manifeste

Le manifeste (StoreManifest) décrit le dépôt : objet, destinataires, noms, tailles et empreintes des fichiers, chemins des fichiers sur le serveur de SESAR, paramètres de rappel et données de signature.

Les paramètres de rappel sont le moyen le plus sûr de ranger chaque dépôt au bon endroit : l'identifiant que votre application joint à l'envoi, par exemple un numéro de dossier, revient dans le manifeste. Voir Classer les dépôts.

Les fichiers eux-mêmes ne voyagent pas dans la requête : seuls leurs chemins y figurent. Un connecteur qui doit lire les fichiers doit donc tourner sur une machine qui a accès au stockage de SESAR.

Gestionnaire ou connecteur

Le webhook reçoit l'appel de SESAR, le vérifie et déchiffre le manifeste, mais il ne sait pas où envoyer les données. Ce travail revient à un bout de code qui reçoit le manifeste déchiffré et l'envoie vers votre système : un gestionnaire ou un connecteur. Les deux font le même travail ; ils diffèrent par l'endroit où vit leur code.

  • Un gestionnaire est votre propre code, dans une DLL séparée que vous déposez dans le dossier des gestionnaires. Le webhook la charge à son démarrage, comme une extension : vous ne touchez pas au webhook.
  • Un connecteur intégré est compilé dans l'application du webhook, comme une fonction livrée d'origine. En ajouter ou en modifier un oblige à changer le code source du webhook, puis à le recompiler et à le redéployer.
Gestionnaire (recommandé) Connecteur intégré
Pour Votre propre logique d'affaire Les exemples fournis avec le projet
Forme DLL dont une classe hérite de WebhookHandlerBase, déposée dans le dossier des gestionnaires Classe compilée dans l'application
Adresse appelée par SESAR /api/webhook/handler/{id} /api/webhook/{id}
Mise en place Copier la DLL, redémarrer l'application Modifier Program.cs, recompiler, redéployer

Le parcours d'un dépôt avec un gestionnaire

  1. SESAR envoie le dépôt à https://<serveur>/api/webhook/handler/mes-dossiers.
  2. Le webhook vérifie l'appel et déchiffre le manifeste.
  3. Il appelle le gestionnaire mes-dossiers en lui passant le manifeste.
  4. Le gestionnaire en extrait ce qu'il lui faut (objet, destinataires, nombre de fichiers) et appelle l'API de votre système.
  5. Il renvoie un résultat réussi ou échoué.
  6. Le webhook répond 200 à SESAR si le traitement a réussi. Sinon, SESAR renverra le dépôt plus tard.

Pourquoi préférer un gestionnaire

  • Il survit aux mises à jour du webhook : vos modifications n'ont pas à être refusionnées dans son code source.
  • Il se déploie simplement : on copie une DLL et on redémarre, sans recompiler le webhook.

Le connecteur intégré reste utile si vous maintenez votre propre version du webhook, ou pour partir directement d'un exemple fourni. Côté code, un gestionnaire hérite de WebhookHandlerBase, et un connecteur implémente IIntegrationConnector. Voir Créer un gestionnaire.

Les quatre connecteurs fournis, Système de fichiers, Zoho CRM, SharePoint Online et Dynamics 365, sont des exemples à adapter. Lisez leur page avant de les utiliser : ils ne sont pas prêts pour la production tels quels.

Prérequis

  • Un serveur Windows : l'application protège ses secrets avec DPAPI, propre à Windows.
  • Le runtime ASP.NET Core 9, ou le Hosting Bundle ASP.NET Core 9 sous IIS.
  • Une adresse HTTPS joignable par SESAR, avec un certificat auquel la machine de SESAR fait confiance.
  • La clé et le vecteur d'initialisation du webhook, définis dans la configuration de SESAR.

Par où commencer

  1. Choisir sa version
  2. Démarrage rapide
  3. Sécuriser le déploiement, à lire avant toute mise en production