Il y a beaucoup de termes surchargés ici, et un changement entre IIS 7 et 7.5.
App Pool Identity vs Compte du pool d’applications
Commençons par l’identité du pool d’applications (identité avec un i minuscule, ce que j’appelle le Compte du pool d’applications pour éviter toute ambiguïté) :
Selon ma compréhension, le Compte du pool d’applications est le compte utilisé pour démarrer un pool d’applications, et l’identité que le pool d’applications assume lorsqu’il n’usurpe l’identité de personne d’autre.
Donc, quelle que soit l’identité que vous attribuez au pool d’applications, celui-ci va avoir besoin de pouvoir lire les fichiers dans le dossier de contenu : en particulier {mais pas uniquement} les fichiers web.config (qui font partie de la configuration IIS et contrôlent ce que le pool d’applications va faire).
S’il ne peut pas accéder à un dossier, il supposera qu’il pourrait y avoir un fichier web.config important (susceptible de tout changer) à l’intérieur, et affichera une erreur. Le Compte du pool d’applications a donc besoin d’un accès en Lecture à tous les dossiers de contenu.
ApplicationPoolIdentity
Pourquoi différencier le Compte du pool d’applications (l’identité du pool d’applications) de l’App Pool Identity ? Parce que ApplicationPoolIdentity (avec les majuscules spéciales) est un nouveau type de compte - un compte de service managé - introduit et défini par défaut dans IIS 7.5 / Windows 2008 R2, et disponible à partir de Windows 2008 SP2 également (mais pas par défaut).
Voir Application Pool Identities sur IIS.Net
Lorsque vous créez un site web sous 2008 R2 ou ultérieur via l’interface graphique :
-
un pool d’applications sera créé pour héberger ce site web, et
-
le type de compte sera ApplicationPoolIdentity, au lieu de Network Service (la valeur par défaut sous 2008), Local Service ou Local System
-
une identité virtuelle, IIS AppPools\NomDuPoolDApplications, sera mise à disposition pour être utilisée comme principal de sécurité sur la machine locale
Avec 2008 RTM, le compte par défaut du pool d’applications était Network Service plus un identifiant/différenciateur unique du pool d’applications ; le nouveau type de compte AppPoolIdentity de R2/SP2 est un compte similaire à Network Service (c’est-à-dire qu’il représente l’ordinateur lors des connexions externes), mais empêche l’usurpation d’identité d’un autre pool d’applications au sein de la même machine.
Retour à la question originale :
Le compte du pool d’applications définit sous quelle identité votre application s’exécute lorsqu’elle n’usurpe l’identité de personne d’autre
La méthode d’authentification décrit comment vous allez authentifier les clients (afin d’usurper leur identité)
Le compte utilisateur anonyme définit sous quelle identité vous allez vous exécuter lorsque vous usurpez l’identité d’un utilisateur pour une requête qui n’est pas authentifiée - IUSR est un tel utilisateur.
À noter, avec IIS 7.5+, vous pouvez définir le compte utilisateur anonyme comme étant l’Application Pool Identity (dans les propriétés de la méthode d’authentification anonyme), ce qui pourrait simplifier l’isolation et la sécurisation du contenu pour un site web donné.
Définissez les permissions en utilisant le format IIS AppPool\NomDeVotreSite pour le nom (voir cet article).