C'est une très bonne question et malheureusement, de nombreux développeurs ne posent pas suffisamment de questions sur la sécurité IIS / ASP.NET dans le contexte d'être un développeur Web et de configurer IIS. Alors voilà ...
Pour couvrir les identités répertoriées:
IIS_IUSRS:
Ceci est analogue à l'ancien IIS_WPG
groupe IIS6 . Il s'agit d'un groupe intégré dont la sécurité est configurée de sorte que tout membre de ce groupe puisse agir en tant qu'identité de pool d'applications.
IUSR:
Ce compte est analogue à l'ancien IUSR_<MACHINE_NAME>
compte local qui était l'utilisateur anonyme par défaut pour les sites Web IIS5 et IIS6 (c'est-à-dire celui configuré via l'onglet Sécurité du répertoire des propriétés d'un site).
Pour plus d'informations IIS_IUSRS
et IUSR
voir:
Présentation des comptes d'utilisateurs et de groupes intégrés dans IIS 7
DefaultAppPool:
Si un pool d'applications est configuré pour s'exécuter à l'aide de la fonctionnalité d'identité du pool d'applications, un compte "synthétisé" appelé IIS AppPool\<pool name>
sera créé à la volée pour être utilisé comme identité du pool. Dans ce cas, il y aura un compte synthétisé appelé IIS AppPool\DefaultAppPool
créé pour la durée de vie du pool. Si vous supprimez le pool, ce compte n'existera plus. Lors de l'application d'autorisations aux fichiers et dossiers, ceux-ci doivent être ajoutés à l'aide de IIS AppPool\<pool name>
. Vous ne verrez pas non plus ces comptes de pool dans le Gestionnaire des utilisateurs de votre ordinateur. Consultez les informations suivantes pour plus d'informations:
Identités du pool d'applications
ASP.NET v4.0:
-
Ce sera l'identité du pool d'applications pour le pool d'applications ASP.NET v4.0. Voir DefaultAppPool
ci - dessus.
NETWORK SERVICE:
-
Le NETWORK SERVICE
compte est une identité intégrée introduite sur Windows 2003.NETWORK SERVICE
est un compte à faible privilège sous lequel vous pouvez exécuter vos pools d'applications et sites Web. Un site Web exécuté dans un pool Windows 2003 peut toujours emprunter l'identité du compte anonyme du site (IUSR_ ou tout ce que vous avez configuré comme identité anonyme).
Dans ASP.NET avant Windows 2008, vous pourriez avoir ASP.NET exécuter des demandes sous le compte Pool d'applications (généralement NETWORK SERVICE
). Alternativement, vous pouvez configurer ASP.NET pour emprunter l'identité du compte anonyme du site via le <identity impersonate="true" />
paramètre dans le web.config
fichier localement (si ce paramètre est verrouillé, il devra être effectué par un administrateur dans lemachine.config
fichier).
Réglage <identity impersonate="true">
est courant dans les environnements d'hébergement partagé où des pools d'applications partagés sont utilisés (en conjonction avec des paramètres de confiance partielle pour empêcher le déroulement du compte emprunté).
Dans IIS7.x / ASP.NET, le contrôle de l'emprunt d'identité est désormais configuré via la fonctionnalité de configuration d'authentification d'un site. Vous pouvez donc configurer pour qu'il s'exécute en tant qu'identité de pool IUSR
ou compte anonyme personnalisé spécifique.
LOCAL SERVICE:
Le LOCAL SERVICE
compte est un compte intégré utilisé par le gestionnaire de contrôle des services. Il dispose d'un ensemble minimal de privilèges sur l'ordinateur local. Son domaine d'utilisation est assez limité:
Compte LocalService
LOCAL SYSTEM:
Vous n'avez pas posé de question à ce sujet mais j'ajoute pour être complet. Il s'agit d'un compte intégré local. Il a des privilèges et une confiance assez étendus. Vous ne devez jamais configurer un site Web ou un pool d'applications pour qu'il s'exécute sous cette identité.
Compte LocalSystem
En pratique:
Dans la pratique, l'approche préférée pour sécuriser un site Web (si le site obtient son propre pool d'applications - qui est la valeur par défaut pour un nouveau site dans la console MMC d'IIS7) est de s'exécuter sous Application Pool Identity
. Cela signifie définir l'identité du site dans les paramètres avancés de son pool d'applications sur Application Pool Identity
:
Sur le site Web, vous devez ensuite configurer la fonction d'authentification:
Cliquez avec le bouton droit et modifiez l'entrée Authentification anonyme:
Assurez-vous que "Identité du pool d'applications" est sélectionnée:
Lorsque vous venez d'appliquer des autorisations de fichiers et de dossiers, vous accordez à l'identité du pool d'applications tous les droits requis. Par exemple, si vous accordez l'identité du pool d'applications pour les ASP.NET v4.0
autorisations du pool, vous pouvez le faire via l'Explorateur:
Cliquez sur le bouton "Vérifier les noms":
Ou vous pouvez le faire en utilisant l' ICACLS.EXE
utilitaire:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... ou ... si le pool d'applications de votre site est appelé, BobsCatPicBlog
alors:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
J'espère que cela aide à clarifier les choses.
Mettre à jour:
Je suis juste tombé sur cette excellente réponse de 2009 qui contient un tas d'informations utiles, qui valent la peine d'être lues:
La différence entre le compte «Système local» et le compte «Service réseau»?