Turbulences Admin
Turbulences Admin
Agile
12 août 2020

Nuget – La solution complète

Maintenant qu’on a un template de build qui permet de créer un paquet NuGet et de le publier, il reste à attacher tous les morceaux de la solution.  Quand j’ai mis en place le feed NuGet de novIQ, j’ai sécurisé les accès. Soyez certain que même si le feed était accessible à tous, vous ne découvririez absolument aucun secret dans les modules qui sont déposés là, on fait du bon vieux code .Net et on n’a pas inventé de nouveaux algorithmes. Mais tant qu’à le faire je me suis dit que je devais le faire comme si c’était pour un client et je suis pas mal certain que les clients voudraient sécuriser leur feed, malgré que leur code est pas plus spécial que le reste…  Mais comme vous le savez, on utilise Azure pour héberger nos solutions et le feed est hébergé dans un Azure Web Site en mode PaaS.  Dans ce mode, on obtient un serveur web (à la limite, ça ne serait même pas IIS….) et on peut déployer des applications mais on ne configure pas le serveur web, donc pas moyen de configurer un mode d’authentification basic et de créer de nouveaux usager.  J’ai donc trouvé un module qui permet d’implémenter l’authentification basic à partir de la config de l’application.  J’ai donc mis en place ce module dans mon projet de feed Nuget, j’ai republié dans Azure et effectivement, je dois m’authentifier avant de consulter ou obtenir un paquet Nuget.  Good!Par contre quand j’ai essayé de publier à partir du build avec le nouveau template, le build restait geler et se terminait sur un timeout… Après avoir activé la trace, j’ai constaté que c’était le processus de publication du paquet qui ne finissait jamais, pourtant le feed était ok et quand je publiais directement avec la ligne de commande, ça fonctionnait.  Bien sûr…. y a personne au bout du « build » pour entrer les crédentiels.  Mais de toute façon, pour publier ça prend une clé secrète, alors j’ai pas vraiment besoin des crédentiels pour sécuriser le feed dans le cas des publications de paquet puisque le feed est déjà protégé par la clé.  Un autre « fork » de github et j’ai ajouté la fonctionnalité permettant de soustraire des URL et/ou des verb http de la sécurité.  En observant le trafic HTTP lors d’une publication d’un paquet NuGet, j’ai donc été en mesure de retirer ces « patterns » de la sécurité et le build peut maintenant publier dans notre feed NuGet sécurisé dans le cloud!