Me acabo de mudar 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 y eliminar archivos. Después de copiar los archivos al nuevo servidor, seguí viendo los siguientes errores cuando intenté eliminar archivos:
Se deniega el acceso a la ruta 'D: \ WebSites \ myapp.co.uk \ companydata \ filename.pdf'.
Cuando verifico IIS, veo que la aplicación se ejecuta con la cuenta DefaultAppPool, sin embargo, nunca configuro los permisos de Windows en esta carpeta para incluir IIS AppPool \ DefaultAppPool
En cambio, para dejar de gritar a los clientes, otorgué los siguientes permisos en la carpeta:
IUSR
- Leer y ejecutar
- Lista de contenidos en la carpeta
- Leer
- Escribir
IIS_IUSRS
- Modificar
- Leer y ejecutar
- Lista de contenidos en la carpeta
- Leer
- Escribir
Esto parece haber funcionado, pero me preocupa que se hayan establecido demasiados privilegios. He leído información contradictoria en línea sobre si realmente se necesita IUSR aquí. ¿Alguien puede 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?
Actualización y solución
Por favor vea mi respuesta a continuación . Tuve que hacer esto tristemente ya que algunas sugerencias recientes no estaban bien pensadas, ni siquiera eran seguras (OMI).
Respuestas:
Odio publicar mi propia respuesta, pero algunas respuestas recientemente han ignorado la solución que publiqué en mi propia pregunta, sugiriendo enfoques que son nada menos que insensatos.
En resumen: no necesita editar ningún privilegio de cuenta de usuario de Windows . Hacerlo solo introduce riesgos. El proceso se administra completamente en IIS utilizando privilegios heredados.
Aplicación de permisos de modificación / escritura a la cuenta de usuario correcta
Haga clic con el botón derecho en el dominio cuando aparezca en la lista de Sitios y elija Editar permisos
En la pestaña Seguridad , verá que
MACHINE_NAME\IIS_IUSRS
aparece en la lista. Esto significa que IIS tiene automáticamente permiso de solo lectura en el directorio (por ejemplo, para ejecutar ASP.Net en el sitio). No necesita editar esta entrada .Haga clic en el botón Editar , luego Agregar ...
En el cuadro de texto, escriba
IIS AppPool\MyApplicationPoolName
, sustituyendoMyApplicationPoolName
con su nombre de dominio o cualquier grupo de aplicaciones que esté accediendo a su sitio, p. Ej.IIS AppPool\mydomain.com
Presione el botón Comprobar nombres . El texto que escribió se transformará (observe el subrayado):
Presione OK para agregar el usuario
Con el nuevo usuario (su dominio) seleccionado, ahora puede proporcionar de forma segura cualquier permiso de modificación o escritura
fuente
IUSR
obras. AgregarIIS AppPool\Cache
(el nombre de mi grupo de aplicaciones) rindeHTTP Error 401.3 - Unauthorized
MyComputerName\IIS_IUSRS
yIUSR
con permisos de solo lectura para que funcione nuevamente. Esto es solo para directorios virtuales (no para aplicaciones .net), pero creo que alguien puede encontrarlo útil.IIS AppPool\[APPLICATION POOL NAME]
. Se aceptan espacios en blanco en el nombre del grupo de aplicaciones. Tenga en cuenta también que solo se encontrará a este usuario si se marca "Principios de seguridad integrados" como tipo de objeto para la búsqueda de nombre (campo superior en el cuadro de diálogo "Seleccionar usuarios o grupos").IUSR es parte del grupo IIS_IUSER. Por lo tanto, supongo que puede eliminar los permisos para IUSR sin preocuparse. Otras lecturas
Sin embargo, surgió un problema con el tiempo a medida que más y más servicios del sistema de Windows comenzaron a ejecutarse como NETWORKSERVICE. Esto se debe a que los servicios que se ejecutan como NETWORKSERVICE pueden alterar otros servicios que se ejecutan con la misma identidad. Debido a que los procesos de trabajo de IIS ejecutan código de terceros de manera predeterminada (código ASP clásico, ASP.NET, PHP), era hora de aislar los procesos de trabajo de IIS de otros servicios del sistema de Windows y ejecutar procesos de trabajo de IIS con 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 Grupos de aplicaciones. DefaultAppPool es el grupo predeterminado que se asigna a todos los grupos de aplicaciones que cree.
Para hacerlo más seguro, puede cambiar la identidad IIS DefaultAppPool a ApplicationPoolIdentity.
Con respecto al permiso, Crear y Eliminar resume todos los derechos que se pueden otorgar. Entonces, lo que haya asignado al grupo IIS_USERS es que lo requerirán. Nada más y nada menos.
espero que esto ayude.
fuente
Cuando agregué el permiso IIS_IUSRS a la carpeta del sitio, los recursos, como js y css, aún no eran accesibles (error 401, prohibido). Sin embargo, cuando agregué IUSR, todo estuvo bien. Así que seguro "NO PUEDES eliminar los permisos para IUSR sin preocuparte", querido @Travis G @
fuente
IIS AppPool\MyApplicationPoolName
según mi respuesta actualizada. ¡Ya no es necesario que te metas con IUSR (S)!@EvilDr Puede crear una cuenta IUSR_ [identificador] dentro de su entorno AD y dejar que el grupo de aplicaciones en particular se ejecute bajo esa cuenta IUSR_ [identificador]:
"Grupo de aplicaciones"> "Configuración avanzada"> "Identidad"> "Cuenta personalizada"
Configure su sitio web en "Usuario de Applicaton (autenticación de paso)" y no en "Usuario específico", en la Configuración avanzada.
Ahora otorgue a IUSR_ [identificador] los permisos NTFS apropiados en archivos y carpetas, por ejemplo: modificar en datos de la compañía.
fuente
El grupo IIS_IUSRS tiene prominencia solo si está utilizando la identidad de grupo de aplicaciones. A pesar de que este grupo se ve vacío en el tiempo de ejecución, IIS agrega a este grupo para ejecutar un proceso de trabajo de acuerdo con la literatura de Microsoft.
fuente
Usaría un usuario específico (y NO un usuario de la aplicación). Entonces habilitaré la suplantación en la aplicación. Una vez que haga eso, sea cual sea la cuenta establecida como usuario específico, esas credenciales se usarían para acceder a los recursos locales en ese servidor (no para recursos externos).
La configuración específica del usuario está específicamente diseñada para acceder a los recursos locales.
fuente