Je viens de passer de IIS6 sur Win2003 à IIS8 sur Win2012 pour héberger des applications ASP.NET.
Dans un dossier particulier de mon application, je dois créer et supprimer des fichiers. Après avoir copié les fichiers sur le nouveau serveur, je voyais toujours les erreurs suivantes lorsque j'essayais de supprimer des fichiers :
L'accès au chemin 'D:\WebSites\myapp.co.uk\companydata\filename.pdf' ; est refusé.
Lorsque je vérifie IIS, je vois que l'application est exécutée sous le compte DefaultAppPool, mais je n'ai jamais configuré les autorisations Windows sur ce dossier pour inclure IIS AppPool\DefaultAppPool.
Au lieu de cela, pour empêcher les clients de crier, j'ai accordé les permissions suivantes sur le dossier :
IUSR
IIS_IUSRS
Cela semble avoir fonctionné, mais je crains que trop de privilèges aient été définis. J’ai lu des informations contradictoires en ligne sur la nécessité de l’utilisateur IUSR dans ce cas. Quelqu'un peut-il me dire quels utilisateurs et quelles autorisations suffisent pour créer et supprimer des documents dans ce dossier ? Par ailleurs, IUSR fait-il partie du groupe IIS_IUSRS ?
Veuillez consulter ma réponse ci-dessous. J’ai été obligé de le faire, malheureusement, car certaines suggestions récentes n’étaient pas bien pensées, ni même sûres (selon moi).
IUSR fait partie du groupe IIS_IUSER. Je pense donc que vous pouvez supprimer les autorisations pour IUSR sans vous inquiéter. [Lecture complémentaire] [1]
Cependant, un problème est apparu avec le temps, car de plus en plus de services système Windows ont commencé à s'exécuter sous le nom de NETWORKSERVICE. En effet, les services s'exécutant en tant que NETWORKSERVICE peuvent altérer les autres services qui s'exécutent sous la même identité. Étant donné que les processus de travail IIS exécutent par défaut du code tiers (ASP classique, ASP.NET, code PHP), il était temps d'isoler les processus de travail IIS des autres services du système Windows et d'exécuter les processus de travail IIS sous des identités uniques. Le système d'exploitation Windows offre une fonction appelée "comptes virtuels" qui permet à IIS de créer des identités uniques pour chacun de ses pools d'applications. DefaultAppPool est le pool par défaut qui est attribué à tous les pools d'applications que vous créez.
Pour le rendre plus sûr, vous pouvez changer l'identité IIS DefaultAppPool Identity en ApplicationPoolIdentity.
En ce qui concerne les autorisations, Create and Delete résume tous les droits qui peuvent être accordés. Ainsi, tout ce que vous avez attribué au groupe IIS_USERS est ce dont il aura besoin. Rien de plus, rien de moins.
J'espère que cela vous aidera.
@EvilDr Vous pouvez créer un compte IUSR[identifiant] dans votre environnement AD et laisser le pool d'applications particulier s'exécuter sous ce compte IUSR[identifiant] :
"Application pool" ; > "Advanced Settings" ; > "Identity" ; > "Custom account" ;
Définissez votre site Web sur "Applicaton user (pass-through authentication)" ; et non sur "Specific user" ;, dans les paramètres avancés.
Donnez maintenant à cet IUSR_[identifiant] les permissions NTFS appropriées sur les fichiers et les dossiers, par exemple : modifier sur companydata.
J'utiliserais un utilisateur spécifique (et NON l'utilisateur de l'application). Ensuite, je vais activer l'impersonnalisation dans l'application. Une fois que vous faites cela, quel que soit le compte défini comme utilisateur spécifique, ces informations d'identification seront utilisées pour accéder aux ressources locales sur ce serveur (pas pour les ressources externes).
La configuration de l'utilisateur spécifique est spécifiquement destinée à l'accès aux ressources locales.