IIS AppPoolIdentity y permisos de acceso de escritura al sistema de archivos

Resuelto rsbarro asked hace 13 años • 4 respuestas

Aquí hay un problema con IIS 7.5 y ASP.NET que he estado investigando y no he llegado a ninguna parte. Cualquier ayuda sería muy apreciada.

Mi pregunta es: al usar ASP.NET en IIS 7.5, ¿cómo permite IIS y/o el sistema operativo que la aplicación web escriba en una carpeta como C:\dumpcuando se ejecuta con plena confianza? ¿Cómo es que no tengo que agregar explícitamente acceso de escritura para el usuario del grupo de aplicaciones (en este casoApplicationPoolIdentity )?

Esto es lo que sé:

  • En IIS 7.5, la identidad predeterminada para un grupo de aplicaciones es ApplicationPoolIdentity.
  • ApplicationPoolIdentityrepresenta una cuenta de usuario de Windows llamada "IIS APPPOOL\AppPoolName", que se crea cuando se crea el grupo de aplicaciones, donde AppPoolName es el nombre del grupo de aplicaciones.
  • El usuario "IIS APPPOOL\AppPoolName" es por defecto miembro delIIS_IUSRS grupo.
  • Si está ejecutando Full Trust, su aplicación web puede escribir en muchas áreas del sistema de archivos (excluyendo carpetas como C:\Users,, C:\Windowsetc.). Por ejemplo, su aplicación tendrá acceso para escribir en algunas carpetas, como,C:\dump .
  • De forma predeterminada, el IIS_IUSRSgrupo no tiene acceso de lectura o escritura aC:\dump (al menos no acceso visible a través de la pestaña "Seguridad" en el Explorador de Windows).
  • Si niega el acceso de escritura a IIS_IUSRS, obtendrá una SecurityException al intentar escribir en la carpeta (como se esperaba).

Entonces, teniendo todo eso en cuenta, ¿cómo se otorga acceso de escritura al usuario "IIS APPPOOL\AppPoolName"? El proceso w3wp.exe se ejecuta como este usuario, entonces, ¿qué le permite a este usuario escribir en una carpeta a la que no parece tener acceso explícito?

Tenga en cuenta que entiendo que esto probablemente se hizo por conveniencia, ya que sería complicado otorgarle a un usuario acceso a cada carpeta en la que necesita escribir si está ejecutando con Full Trust. Si desea limitar este acceso, siempre puede ejecutar la aplicación en Medium Trust. Estoy interesado en conocer la forma en que el sistema operativo y/o IIS permiten que se realicen estas escrituras, aunque parece que no se otorga acceso explícito al sistema de archivos.

rsbarro avatar Mar 26 '11 03:03 rsbarro
Aceptado

Se ApplicationPoolIdentityle asigna la membresía del Usersgrupo así como del IIS_IUSRSgrupo. A primera vista esto puede parecer algo preocupante, sin embargo, el Usersgrupo tiene derechos NTFS algo limitados.

Por ejemplo, si intenta crear una carpeta en la C:\Windowscarpeta, descubrirá que no puede. Todavía ApplicationPoolIdentitydebe poder leer archivos de las carpetas del sistema de Windows (de lo contrario, ¿de qué otra manera el proceso de trabajo podría cargar dinámicamente DLL esenciales)?

Con respecto a tus observaciones sobre poder escribir en tu c:\dumpcarpeta. Si echas un vistazo a los permisos en la Configuración de seguridad avanzada, verás lo siguiente:

ingrese la descripción de la imagen aquí

Vea que el permiso especial se hereda de c:\:

ingrese la descripción de la imagen aquí

Esa es la razón por la que su sitio ApplicationPoolIdentitypuede leer y escribir en esa carpeta. Ese derecho se hereda de la c:\pulsión.

En un entorno compartido donde posiblemente tenga varios cientos de sitios, cada uno con su propio grupo de aplicaciones e identidad del grupo de aplicaciones, almacenaría las carpetas del sitio en una carpeta o volumen en el que se haya Userseliminado el grupo y se hayan establecido los permisos de manera que solo los administradores y el La cuenta SISTEMA tiene acceso (con herencia).

Luego, asignará individualmente los permisos necesarios que cada uno IIS AppPool\[name]requiere en la carpeta raíz de su sitio.

También debe asegurarse de que se elimine el grupo de cualquier carpeta que cree donde almacene archivos o datos potencialmente confidenciales Users. También debe asegurarse de que las aplicaciones que instale no almacenen datos confidenciales en sus c:\program files\[app name]carpetas y que utilicen las carpetas de perfil de usuario.

Entonces, sí, a primera vista parece que ApplicationPoolIdentitytiene más derechos de los que debería, pero en realidad no tiene más derechos de los que dicta su membresía en el grupo.

La pertenencia a un ApplicationPoolIdentitygrupo se puede examinar utilizando la herramienta SysInternals Process Explorer . Busque el proceso de trabajo que se está ejecutando con la identidad del grupo de aplicaciones que le interesa (deberá agregar la User Namecolumna a la lista de columnas para mostrar:

ingrese la descripción de la imagen aquí

Por ejemplo, tengo un grupo llamado aquí 900300que tiene una identidad de grupo de aplicaciones de IIS APPPOOL\900300. Al hacer clic derecho en las propiedades del proceso y seleccionar la pestaña Seguridad, vemos:

ingrese la descripción de la imagen aquí

Como podemos ver IIS APPPOOL\900300es un miembro del Usersgrupo.

Kev avatar Mar 26 '2011 01:03 Kev
  1. Haga clic derecho en la carpeta.

  2. Haga clic en Propiedades

  3. Haga clic en la pestaña Seguridad. Verás algo como esto:

ingrese la descripción de la imagen aquí

  1. Haga clic en el botón "Editar..." en la pantalla de arriba. Verás algo como esto:

ingrese la descripción de la imagen aquí

  1. Haga clic en el botón "Agregar..." en la pantalla de arriba. Verás algo como esto:

ingrese la descripción de la imagen aquí

  1. Haga clic en el botón "Ubicaciones..." en la pantalla de arriba. Verás algo como esto. Ahora, vaya a la parte superior de esta estructura de árbol y seleccione el nombre de su computadora, luego haga clic en Aceptar.

ingrese la descripción de la imagen aquí

  1. Ahora escriba "iis apppool\your_apppool_name" y haga clic en el botón "Verificar nombres". Si el grupo de aplicaciones existe, verá el nombre de su grupo de aplicaciones en el cuadro de texto subrayado. Haga clic en el botón Aceptar.

ingrese la descripción de la imagen aquí

  1. Marque/desmarque cualquier acceso que necesite otorgar a la cuenta

  2. Haga clic en el botón Aplicar y luego en Aceptar.

fluidguid avatar Oct 02 '2017 17:10 fluidguid