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 :
- 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. - 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.
- Ajoutez un en-tête secret avec
WebHook_Headersdans la configuration de SESAR, et faites-le vérifier par votre proxy inverse avant de transmettre la requête. - Ne laissez joignables que les adresses que SESAR utilise : la clé
Enabledne 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).