Déployer sous Windows
Publier SESAR Webhook sur un serveur Windows, sous IIS ou avec Kestrel, en HTTPS.
Prérequis du serveur
- Windows : l'application cible
net9.0-windows, car ses secrets sont protégés par DPAPI. - Le runtime ASP.NET Core 9. Sous IIS, installez le Hosting Bundle ASP.NET Core 9, qui comprend le module IIS.
- Un certificat HTTPS émis par une autorité à laquelle la machine de SESAR fait confiance.
- Si un connecteur lit les fichiers du dépôt (comme SharePoint), un accès au stockage de SESAR, aux chemins indiqués dans le manifeste.
Publier
dotnet publish SESARWebHook.API.NetCore\SESARWebHook.API.NetCore.csproj -c Release -o D:\Publish\SESARWebHook
La publication contient appsettings.json : gardez votre version de production à part, et remettez-la après chaque publication. Le dossier publié ne doit contenir aucun fichier de secrets en clair.
Sous IIS
- Créez un pool d'applications sans code managé (« No Managed Code »), avec une identité dédiée.
- Dans ses paramètres avancés, activez Charger le profil utilisateur : la portée DPAPI
CurrentUseren a besoin. - Créez le site sur le dossier publié, avec une liaison HTTPS et votre certificat. Ne gardez pas de liaison HTTP.
- Déposez le fichier de secrets en clair, puis démarrez le site : il est chiffré pour l'identité du pool.
- Donnez à cette identité :
- la lecture et la modification du fichier de secrets ;
- la modification du dossier de sortie, si vous utilisez le connecteur Système de fichiers ;
- la lecture seule du dossier des gestionnaires (
Handlers).
dotnet publish produit un web.config pour le module IIS. La section Kestrel d'appsettings.json est alors ignorée : le HTTPS se règle dans la liaison IIS.
Avec Kestrel
L'application peut aussi s'exécuter seule. Elle ne s'installe pas comme service Windows sans modification du code : prévoyez un moyen de la démarrer et de la relancer.
Déclarez le certificat dans appsettings.json, par exemple depuis le magasin de certificats de la machine :
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://0.0.0.0:443",
"Certificate": {
"Subject": "webhook.example.com",
"Store": "My",
"Location": "LocalMachine"
}
}
}
}
}
N'écrivez jamais le mot de passe d'un fichier PFX dans appsettings.json. Préférez le magasin de certificats.
Pour le développement seulement, dotnet dev-certs https --trust installe le certificat de développement d'ASP.NET Core. SESAR, sur une autre machine, ne lui ferait pas confiance.
Avant la mise en production
- Réglez la variable d'environnement
ASPNETCORE_ENVIRONMENTàProduction. - Appliquez Sécuriser le déploiement.
- Vérifiez
GET /api/health/statusdepuis le serveur :ProcessorInitializeddoit valoirtrue.