Publié vendredi 20 février 2009 11:16 par Rui

Hebergement WCF et IIS

Pour ceux qui utilisent IIS pour hoster une partie de leurs services WCF ou même lorsque vous lancez des services WCF à partir de Visual Studio sous Vista (ou Server 2008), vous avez certainement rencontré des problématiques de droits.
En effet il n'est pas possible nativement pour des raisons de sécurité évidentes d'ouvrir une Uri à l'écoute sur un Windows récent (ça ne résoud pas tous les trous de vers mais bon ;-)). La plus part du temps on résoud cela rapidement en augmentant les privilèges du service. Ce qui peut se traduire par:

Sous IIS, lancer l'application pool du site hébergeant le WCF en mode Local System:



Sous Visual Studio: redémarre en mode [Run as Administrator] ...

C'est une bonne solution en développement ou en dépannage, mais un peu légère du point de vue d'un Admin Sys.

La solution la plus propre consiste tout simplement à accorder des droits de publication à un utilisateur X sur une Uri Y. Pour cela deux utilitaires, httpcfg sous Windows 2003 ou netsh sous Vista et Windows Server 2008.

Pour info, httpcfg se trouve dans l'installation des SupportTools du CD de Windows Server 2003 et netsh est livré nativement avec Vista et +.

En ligne de commande pour voir la liste des droits actuellement définis sur une machine vous pouvez taper:
  • httpcfg query acl
  • netsh http show urlacl
Ce qui vous donnera une liste du type:



Pour ajouter alors une uri (http://localhost:1234/MyService) à un utilisateur(Network Service) sous netsh il suffira de taper la commande suivante (avec des droits administrateur bien sur):
netsh http add urlacl url=http://+:1234/MyService user="NETWORK SERVICE" listen=yes delegate=yes
Sous httpcfg, c'est un peu plus pénible car il faut rentrer l'acl directement...Je vous conseille donc d'utiliser l'excellent petit utilitaire HttpConfig.

C'est une petite interface très simple qui fonctionne à la fois sous 2003 et Vista qui permet à la fois d'afficher les Uri actuelles avec leurs droits et d'en ajouter/supprimer:


Bref, c'est assez pratique (surtout si une fois sur deux vous oubliez comme moi de lancer Visual Studio en mode Admin cela peut vous éviter quelques relances de solution...)

Bien sur tout cela est surtout à voir dans un cadre de production avec les Administrateurs qui eux sauront adapter leur politique de sécurité.

Bons services

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Classé sous , , ,

# re: Hebergement WCF et IIS @ samedi 21 février 2009 14:01

C'est sûr que le SDDL, si on ne pratique pas tous les jours... (d'ailleurs, même si on pratique tous les jours ? :p)

Merci pour les informations, ça risque de servir !

coq


Les 10 derniers blogs postés

- Alternative au volet de navigation dans un formulaire Dynamics CRM 4.0 pour afficher un élément associé directement sur le formulaire par Bianca le il y a 2 heures et 53 minutes

- Fond d’écran pour Noël par Open Blog le il y a 5 heures et 49 minutes

- SQL Server 2008 R2 : Connexion à SQL Azure avec Management Studio ! par SQL Server vu par Christian Robert le il y a 8 heures et 11 minutes

- SQL Server : Comment forcer le Shrink du journal de transaction? par SQL Server vu par Christian Robert le il y a 18 heures et 55 minutes

- Calendrier complet des matchs de la Coupe du Monde ! par Le blog de Patrick le 12-14-2009, 15:20

- Rappel : Liste des raccourcis classiques sous Windows et merci Shift-F10 par The Mit's Blog le 12-14-2009, 14:24

- [Visual Studio 2010] Astuce: Développement TDD par Thomas Jaskula le 12-14-2009, 13:45

- SQL Server : Maintenance courante, vérifiez l’intégrité de la base de données avec DBCC CHECKDB par SQL Server vu par Christian Robert le 12-14-2009, 10:13

- [TFS 2010] Clonage et renommage de collections par Michel Perfetti [Miiitch] le 12-14-2009, 10:00

- SQL Server 2008 R2 : Beta de StreamInsight remise à jour depuis la CTP de Novembre par SQL Server vu par Christian Robert le 12-14-2009, 09:03