Cómo asignar permisos a la cuenta ApplicationPoolIdentity
263
En IIS 7 en Windows Server 2008, los grupos de aplicaciones se pueden ejecutar como la cuenta "ApplicationPoolIdentity" en lugar de la cuenta NetworkService.
¿Cómo asigno permisos a esta cuenta "ApplicationPoolIdentity"? No aparece como usuario local en la máquina. No aparece como un grupo en ningún lado. Nada remotamente parecido aparece en ningún lado. Cuando busco usuarios locales, grupos y cuentas integradas, no aparece en la lista, ni aparece nada similar en la lista. Que esta pasando?
"Desafortunadamente, esta es una limitación del selector de objetos en Windows Server 2008 / Windows Vista: como varias personas ya lo han descubierto, aún puede manipular la ACL para la identidad del grupo de aplicaciones utilizando herramientas de línea de comandos como icacls ".
Actualización: la pregunta original era para Windows Server 2008, pero la solución es más fácil para Windows Server 2008 R2 y Windows Server 2012 (y Windows 7 y 8). Puede agregar el usuario a través de la interfaz de usuario de NTFS escribiéndolo directamente. El nombre está en el formato de IIS APPPOOL \ {nombre del grupo de aplicaciones}. Por ejemplo: IIS APPPOOL \ DefaultAppPool.
IIS APPPOOL\{app pool name}
Nota: Según los comentarios a continuación, hay dos cosas a tener en cuenta:
Ingrese la cadena directamente en "Seleccionar usuario o grupo" y no en el campo de búsqueda.
En un entorno de dominio, primero debe configurar la ubicación en su computadora local.
Respuesta original: (para Windows Server 2008) Esta es una gran característica, pero como mencionó, aún no está completamente implementada. Puede agregar la identidad del grupo de aplicaciones desde el símbolo del sistema con algo como icacls, luego puede administrarla desde la GUI. Por ejemplo, ejecute algo como esto desde el símbolo del sistema:
Luego, en el Explorador de Windows, vaya a la carpeta wwwroot y edite los permisos de seguridad. Verá lo que parece un grupo (el icono de grupo) llamado DefaultAppPool. Ahora puede editar los permisos.
Sin embargo, no necesita usar esto en absoluto. Es un bono que puedes usar si quieres. Puede usar la antigua forma de crear un usuario personalizado por grupo de aplicaciones y asignar el usuario personalizado al disco. Eso tiene soporte completo de UI.
Este método de inyección SID es bueno porque le permite usar un solo usuario pero aislar completamente cada sitio entre sí sin tener que crear usuarios únicos para cada grupo de aplicaciones. Bastante impresionante, y será aún mejor con el soporte de UI.
Nota: Si no puede encontrar el usuario del grupo de aplicaciones, verifique si el servicio de Windows denominado Application Host Helper Service se está ejecutando. Es el servicio que asigna a los usuarios del grupo de aplicaciones a las cuentas de Windows.
Es una especie de bestia extraña, ya que no es como un grupo donde el usuario vive en un grupo, y no es como una cuenta de computadora frente a una cuenta de usuario que son completamente diferentes entre sí. La cuenta del grupo de aplicaciones se superpone al usuario de identidad del grupo de aplicaciones. Por ejemplo, puede tener 5 grupos de aplicaciones con el Servicio de red y otros 5 con cuentas personalizadas, pero son 10 cuentas de grupo de aplicaciones administradas por el sistema diferentes. Las ventajas se notan con la carpeta c: \ inetpub \ temp \ appPools donde se gestiona automáticamente y bloquea el sistema de forma limpia. IIS los aprovecha bien. Nuestro uso en carpetas es opcional.
Scott Forsyth - MVP
29
Tenga en cuenta que si ingresa "IIS APPPOOL \ DefaultAppPool" directamente en "Seleccionar usuario o grupo" (en lugar de buscarlo) al editar permisos, se reconocerá perfectamente (probado en Win7 x64 y Win2k8 R2 x64).
Milan Gardian
55
Tienes razón para Win7 y Win2k8 R2. No se implementó en Win2k8 RTM, pero está en R2.
Scott Forsyth - MVP
99
Finalmente obtuve esto: si escribe el nombre del grupo de aplicaciones directamente como @Milan Gardian dice arriba y cambia el campo de ubicación a la máquina local, entonces funciona
Ciaran Bruen
44
Muchas gracias por las "dos cosas a tener en cuenta". Me topé con ambos, y esta fue una explicación clara y simple de los problemas y cómo lograr lo que necesitaba. Es una pena que ninguna de la documentación de MSDN fuera tan clara.
Ian Grainger el
22
Debe asegurarse de que el From this locationcampo esté establecido en local machiney no en el dominio.
Tuve el mismo problema y una vez que lo cambié, funcionó bien.
Realmente debería crear grupos por "rol" y asignarle acceso a ese grupo en el sistema de archivos. Luego agregue el grupo de aplicaciones a los grupos específicos de roles según sea necesario. De esta manera, incluso si elimina el grupo de aplicaciones más tarde (y el usuario virtual deja de funcionar ), no tiene que preocuparse por rehacer todos los permisos, simplemente agrega el grupo de aplicaciones de reemplazo al grupo existente.
Estaba ejecutando WS8 R2 y no pude agregar a IIS APPPOOL\DefaultAppPooltravés del Explorador de Windows. La única forma en que funcionó fue a través de la línea de comando:
cacls [RUTA DE ARCHIVO] / T / E / G "IIS APPPOOL \ DefaultAppPool": C
Curiosamente, tuve que hacer "IIS AppPool \ DefaultAppPool" para que fuera aceptado. Observe el caso mixto: todo en mayúsculas, como lo hice la primera vez, no fue aceptado por la GUI.
Jeff McJunkin
0
Si esta pregunta es sobre cómo ejecutar _sp_send_dbmail en la base de datos msdb (usando el procedimiento almacenado de SQL Send Database Mail en msdb), aquí hay algunas soluciones. Agregue el nombre de usuario de la aplicación .net de su base de datos (que se define en su cadena de conexión en su aplicación .net) al usuario msdb con membresía de rol "DatabaseMailUserRole"
Debe asegurarse de que el
From this location
campo esté establecido enlocal machine
y no en el dominio.Tuve el mismo problema y una vez que lo cambié, funcionó bien.
fuente
Realmente debería crear grupos por "rol" y asignarle acceso a ese grupo en el sistema de archivos. Luego agregue el grupo de aplicaciones a los grupos específicos de roles según sea necesario. De esta manera, incluso si elimina el grupo de aplicaciones más tarde (y el usuario virtual deja de funcionar ), no tiene que preocuparse por rehacer todos los permisos, simplemente agrega el grupo de aplicaciones de reemplazo al grupo existente.
fuente
Después de leer @Scott Forsyth - Respuesta de MVP, intenté reiniciar el Servicio de ayuda de host de aplicaciones. Eso resolvió el problema para mí.
fuente
Estaba ejecutando WS8 R2 y no pude agregar a
IIS APPPOOL\DefaultAppPool
través del Explorador de Windows. La única forma en que funcionó fue a través de la línea de comando:fuente
Si esta pregunta es sobre cómo ejecutar _sp_send_dbmail en la base de datos msdb (usando el procedimiento almacenado de SQL Send Database Mail en msdb), aquí hay algunas soluciones. Agregue el nombre de usuario de la aplicación .net de su base de datos (que se define en su cadena de conexión en su aplicación .net) al usuario msdb con membresía de rol "DatabaseMailUserRole"
fuente