Nous disposons d'un serveur web départemental exécutant Server 2003, IIS 6 et SQL Server Express. IIS est configuré pour l'authentification Windows uniquement et tous les App Pools sont configurés pour utiliser le compte de service réseau. Nous exécutons plusieurs applications ASP.NET, dont la plupart accèdent aux bases de données du serveur SQL. Dans le web.config (ou d'autres endroits) de ces applications, nous avons les chaînes de connexion requises pour accéder aux bases de données.
J'ai récemment réalisé que n'importe qui pouvait parcourir le partage contenant les fichiers du serveur web (les "utilisateurs authentifiés" ont le droit de lecture), car il se trouve sous un autre répertoire du serveur qui est partagé pour diverses raisons.
J'ai essayé de supprimer cette autorisation d'accès "world-read", mais les utilisateurs ne pouvaient plus exécuter les applications (ils ne pouvaient pas lire le partage de fichiers, ce qui était le comportement souhaité, mais cela les empêchait également d'exécuter les applications). Je pouvais toujours exécuter les applications, car je fais partie du groupe d'administrateurs qui avait toujours le contrôle total sur le dossier des applications.
Ma question (enfin) est la suivante : quelle combinaison de permissions Windows et de paramètres IIS pourrais-je utiliser pour répondre à ces besoins ?
- Nous devons savoir quels utilisateurs utilisent l'application et déterminer les rôles/permissions de l'utilisateur actuel dans chaque application.
- Nous devons/désirons conserver les chaînes de connexion à la base de données dans le web.config ou d'autres fichiers d'application (trop de travail pour les déplacer ailleurs).
- Nous devons empêcher les utilisateurs de naviguer sur le partage de fichiers et de lire des éléments comme les chaînes de connexion à l'intérieur des applications. (Nous aimerions ne PAS avoir à déplacer les applications vers un nouveau partage !)
Je me débats avec ce problème depuis un certain temps, et j'apprécierais toute suggestion !