Sous Windows Server 2008 avec ASP.NET 4.0 installé, il y a toute une série de comptes d'utilisateurs associés, et je ne peux pas comprendre lequel est lequel, comment ils diffèrent, et lequel est vraiment celui sous lequel mon application s'exécute. Voici une liste:
- IIS_IUSRS
- IUSR
- DefaultAppPool
- ASP.NET v4.0
- NETWORK_SERVICE
- SERVICE LOCAL.
Qu'est-ce que c'est?
asp.net
security
iis
user-accounts
Vilx-
la source
la source
Réponses:
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
etIUSR
voir: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 deIIS 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: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 leweb.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é: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é.
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 surApplication 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:... ou ... si le pool d'applications de votre site est appelé,
BobsCatPicBlog
alors: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 source