¿Cuáles son todas las cuentas de usuario para IIS/ASP.NET y en qué se diferencian?

Resuelto Vilx- asked hace 13 años • 1 respuestas

En Windows Server 2008 con ASP.NET 4.0 instalado, hay una gran cantidad de cuentas de usuario relacionadas, y no puedo entender cuál es cuál, en qué se diferencian y cuál es REALMENTE bajo la cual se ejecuta mi aplicación. Aquí hay una lista:

  • IIS_IUSRS
  • IUSR
  • Grupo de aplicaciones predeterminado
  • ASP.NETv4.0
  • SERVICIO DE RED
  • SERVICIO LOCAL.

¿Que es que?

Vilx- avatar Apr 20 '11 18:04 Vilx-
Aceptado

Esta es una muy buena pregunta y lamentablemente muchos desarrolladores no hacen suficientes preguntas sobre la seguridad de IIS/ASP.NET en el contexto de ser desarrollador web y configurar IIS. Así que ahí va....

Para cubrir las identidades enumeradas:

IIS_IUSRS:

Esto es análogo al antiguo IIS_WPGgrupo IIS6. Es un grupo integrado con su seguridad configurada de manera que cualquier miembro de este grupo pueda actuar como una identidad del grupo de aplicaciones.

IUSR:

Esta cuenta es análoga a la antigua IUSR_<MACHINE_NAME>cuenta local que era el usuario anónimo predeterminado para los sitios web IIS5 e IIS6 (es decir, la que se configuraba a través de la pestaña Seguridad del directorio de las propiedades de un sitio).

Para obtener más información IIS_IUSRSy IUSRver:

Comprensión de las cuentas de grupo y de usuario integradas en IIS 7

DefaultAppPool:

Si un grupo de aplicaciones está configurado para ejecutarse utilizando la función Identidad del grupo de aplicaciones, IIS AppPool\<pool name>se creará sobre la marcha una cuenta "sintetizada" llamada para usarse como identidad del grupo. En este caso habrá una cuenta sintetizada llamada IIS AppPool\DefaultAppPoolcreada durante la vida del pool. Si elimina el grupo, esta cuenta ya no existirá. Al aplicar permisos a archivos y carpetas, estos deben agregarse usando IIS AppPool\<pool name>. Tampoco verá estas cuentas de grupo en el Administrador de usuarios de su computadora. Consulte lo siguiente para obtener más información:

Identidades del grupo de aplicaciones

ASP.NET v4.0:-

Esta será la identidad del grupo de aplicaciones para el grupo de aplicaciones ASP.NET v4.0. Véase DefaultAppPoolmás arriba.

NETWORK SERVICE:-

La NETWORK SERVICEcuenta es una identidad incorporada introducida en Windows 2003. NETWORK SERVICEEs una cuenta con pocos privilegios bajo la cual puede ejecutar sus grupos de aplicaciones y sitios web. Un sitio web que se ejecuta en un grupo de Windows 2003 aún puede hacerse pasar por la cuenta anónima del sitio (IUSR_ o cualquier cosa que haya configurado como identidad anónima).

En ASP.NET anterior a Windows 2008, ASP.NET podía ejecutar solicitudes en la cuenta del grupo de aplicaciones (normalmente NETWORK SERVICE). Alternativamente, puede configurar ASP.NET para hacerse pasar por la cuenta anónima del sitio a través de la <identity impersonate="true" />configuración en web.configel archivo localmente (si esa configuración está bloqueada, entonces deberá hacerlo un administrador en el machine.configarchivo).

La configuración <identity impersonate="true">es común en entornos de alojamiento compartido donde se utilizan grupos de aplicaciones compartidas (junto con configuraciones de confianza parcial para evitar la cancelación de la cuenta suplantada).

En IIS7.x/ASP.NET, el control de suplantación ahora se configura a través de la función de configuración de autenticación de un sitio. Por lo tanto, puede configurarlo para que se ejecute como la identidad del grupo IUSRo como una cuenta anónima personalizada específica.

LOCAL SERVICE:

La LOCAL SERVICEcuenta es una cuenta integrada utilizada por el administrador de control de servicios. Tiene un conjunto mínimo de privilegios en la computadora local. Tiene un ámbito de uso bastante limitado:

Cuenta de servicio local

LOCAL SYSTEM:

No preguntaste sobre este, pero lo agrego para completar. Esta es una cuenta local integrada. Tiene privilegios y confianza bastante amplios. Nunca debe configurar un sitio web o un grupo de aplicaciones para que se ejecute con esta identidad.

Cuenta del sistema local

En la práctica:

En la práctica, el enfoque preferido para proteger un sitio web (si el sitio tiene su propio grupo de aplicaciones, que es el valor predeterminado para un sitio nuevo en MMC de IIS7) es ejecutarlo bajo Application Pool Identity. Esto significa configurar la identidad del sitio en la configuración avanzada de su grupo de aplicaciones en Application Pool Identity:

ingrese la descripción de la imagen aquí

Luego, en el sitio web deberás configurar la función de Autenticación:

ingrese la descripción de la imagen aquí

Haga clic derecho y edite la entrada Autenticación anónima:

ingrese la descripción de la imagen aquí

Asegúrese de que "Identidad del grupo de aplicaciones" esté seleccionada:

ingrese la descripción de la imagen aquí

Cuando aplica permisos de archivos y carpetas, otorga a la identidad del grupo de aplicaciones todos los derechos necesarios. Por ejemplo, si está otorgando identidad al grupo de aplicaciones para los ASP.NET v4.0permisos del grupo, puede hacerlo a través del Explorador:

ingrese la descripción de la imagen aquí

Haga clic en el botón "Verificar nombres":

ingrese la descripción de la imagen aquí

O puedes hacer esto usando la ICACLS.EXEutilidad:

icacls c:\wwwroot\mysite /grant "IIS AppPool\ASP.NET v4.0":(CI)(OI)(M)

...o...si se llama al grupo de aplicaciones de su sitio, BobsCatPicBlogentonces:

icacls c:\wwwroot\mysite /grant "IIS AppPool\BobsCatPicBlog":(CI)(OI)(M)

Actualizar:

Me acabo de encontrar con esta excelente respuesta de 2009 que contiene mucha información útil que vale la pena leer:

Kev avatar Apr 20 '2011 13:04 Kev