Table of Contents

Sécuriser le déploiement

Le webhook reçoit des renseignements confidentiels et détient les clés de vos systèmes. Appliquez ces mesures avant toute mise en production.

N'exposer que l'adresse du webhook

Seules les routes /api/webhook* vérifient l'appel de SESAR. Les routes de gestion n'exigent aucune authentification :

Route Ce qu'elle permet
/api/connectors, /api/connectors/{id}/test Lister les connecteurs et déclencher leurs tests de connexion
/api/handlers, /api/handlers/{id}/test, /api/handlers/rescan Lister les gestionnaires, les tester, relire leur dossier
/api/health/status Lire l'état de l'application, avec des chemins du serveur, le nom du compte et celui de la machine
/api/debug/* Traiter un manifeste en clair, si EnableDebugEndpoints vaut true

Mesures :

  1. Filtrez par adresse IP. Pare-feu, restrictions d'adresses IP d'IIS ou proxy inverse : n'acceptez sur /api/webhook* que l'adresse de la machine de SESAR.
  2. Bloquez les autres routes depuis l'extérieur. Si vous en avez besoin, n'y accédez que depuis le serveur lui-même ou votre réseau d'administration.
  3. Ajoutez un en-tête secret avec WebHook_Headers dans la configuration de SESAR, et faites-le vérifier par votre proxy inverse avant de transmettre la requête.
  4. Ne laissez joignables que les adresses que SESAR utilise : la clé Enabled ne désactive pas un connecteur.

Réglages de production

Réglage Valeur
ASPNETCORE_ENVIRONMENT Production : en développement, ASP.NET Core affiche le détail des exceptions.
EnableDebugEndpoints false. Jamais true hors de votre poste.
AllowedHosts Le nom de votre serveur, par exemple webhook.example.com, plutôt que *.
DataProtectionScope CurrentUser.
Liaisons HTTPS seulement, aucune liaison HTTP.

Protéger les secrets

  • Suivez Secrets et DPAPI : fichier hors du projet, chiffré au démarrage, vérifié ensuite.
  • Gardez les valeurs d'origine dans un coffre de secrets, jamais dans un dépôt ni dans un courriel.
  • Changez la clé et l'IV du webhook si vous soupçonnez une fuite, dans SESAR et dans le fichier de secrets.

Protéger le dossier des gestionnaires

L'application charge et exécute toute DLL du dossier des gestionnaires, sans vérifier de signature. Une DLL chargée peut lire tous les secrets de l'application.

  • Réservez l'écriture de ce dossier aux administrateurs. Le compte de l'application n'y a besoin que de lire.
  • N'y déposez que des DLL dont vous connaissez le code.

Renseignements personnels

Les manifestes contiennent des renseignements personnels : adresses courriel, numéros de téléphone, objets, noms de fichiers.

  • Le connecteur par défaut, Système de fichiers, écrit chaque manifeste déchiffré en clair sur disque. En production, choisissez un autre DefaultConnectorId, ou protégez son dossier : accès limité, disque chiffré, durée de conservation définie.
  • Les réponses du webhook peuvent contenir des messages d'erreur détaillés, voire des chemins du serveur : elles ne doivent être lisibles que par SESAR.
  • Dans votre gestionnaire, ne journalisez ni le manifeste ni le contenu déchiffré (WebhookContext.RawPayload), et ne les renvoyez pas dans l'IntegrationResult.
  • Hébergez le serveur, ses sauvegardes et ses journaux au Canada si vos obligations l'exigent, et documentez où chaque connecteur dépose les données (Loi 25).