Acabo de pasar de IIS6 en Win2003 a IIS8 en Win2012 para alojar aplicaciones ASP.NET.
Dentro de una carpeta en particular en mi aplicación necesito Crear & Eliminar archivos. Después de copiar los archivos al nuevo servidor, seguí viendo los siguientes errores cuando traté de eliminar archivos:
El acceso a la ruta 'D:\Nsitios web\Nde mi aplicación.co.uk\Nde los datos de la empresa\Nfilename.pdf' está denegado.
Cuando compruebo IIS veo que la aplicación se ejecuta bajo la cuenta DefaultAppPool, sin embargo, nunca configuré los permisos de Windows en esta carpeta para incluir IIS AppPool\DefaultAppPool.
En su lugar, para evitar los gritos de los clientes concedí los siguientes permisos en la carpeta:
IUSR
IIS_IUSRS
Esto parece haber funcionado, pero me preocupa que se hayan establecido demasiados privilegios. He leído información contradictoria en línea sobre si IUSR es realmente necesario en absoluto aquí. ¿Puede alguien aclarar qué usuarios/permisos serían suficientes para crear y eliminar documentos en esta carpeta, por favor? Además, ¿es IUSR parte del grupo IIS_IUSRS?
Por favor, vea mi respuesta más abajo. He tenido que hacer esto tristemente ya que algunas sugerencias recientes no estaban bien pensadas, o incluso seguras (IMO).
IUSR es parte del grupo IIS_IUSER.Así que supongo que puede eliminar los permisos para IUSR sin preocuparse. Lectura adicional
Sin embargo, con el tiempo surgió un problema, ya que cada vez más servicios del sistema Windows comenzaron a ejecutarse como NETWORKSERVICE. Esto se debe a que los servicios que se ejecutan como NETWORKSERVICE pueden manipular otros servicios que se ejecutan bajo la misma identidad. Dado que los procesos de trabajador de IIS ejecutan código de terceros por defecto (código ASP clásico, ASP.NET, PHP), era el momento de aislar los procesos de trabajador de IIS de otros servicios del sistema Windows y ejecutar los procesos de trabajador de IIS bajo identidades únicas. El sistema operativo Windows proporciona una característica llamada "Cuentas Virtuales" que permite a IIS crear identidades únicas para cada uno de sus Application Pools. DefaultAppPool es el pool por defecto que se asigna a todos los Application Pool que se crean.
Para hacerlo más seguro puede cambiar la Identidad de IIS DefaultAppPool a ApplicationPoolIdentity.
En cuanto a los permisos, Crear y Eliminar resume todos los derechos que se pueden dar. Así que lo que hayas asignado al grupo IIS_USERS es lo que requerirán. Nada más y nada menos.
Espero que esto ayude.
@EvilDr Puedes crear una cuenta IUSR[identificador] dentro de tu entorno AD y dejar que el pool de aplicaciones particular se ejecute bajo esa cuenta IUSR[identificador]:
"Pool de aplicaciones" > "Configuración avanzada" > "Identidad" > "Cuenta personalizada";
Configure su sitio web como "Usuario de la aplicación (autenticación de paso)" y no "Usuario específico", en la configuración avanzada.
Ahora dale a ese IUSR_[identificador] los permisos NTFS adecuados sobre los archivos y carpetas, por ejemplo: modificar en companydata.
Utilizaría un usuario específico (y NO el usuario de la aplicación). Luego habilitaría la suplantación en la aplicación. Una vez que haga eso, cualquiera que sea la cuenta que se establezca como usuario específico, esas credenciales se utilizarán para acceder a los recursos locales en ese servidor (no para los recursos externos).
La configuración del usuario específico es específicamente para acceder a los recursos locales.