9

He hecho un sitio de Intranet ASP.NET MVC 3 con la autenticación de Windows habilitado:ASP.NET MVC 3 sitio Intranet de IIS7.5 w autenticación de Windows da 401.3 y autorización de archivos no para la solicitud al intentar iniciar sesión en

  1. en las propiedades del archivo de proyecto de Visual Studio
  2. en el web.config, es decir <authentication mode="Windows"/>
  3. en las propiedades del sitio en el IIS 7.5. servidor

El acceso anónimo está deshabilitado para los tres anteriores, el web.config dice <deny users="?"/>. La suplantación está deshabilitada en el archivo web.config por identidad <impersonate="false"/> y en las propiedades del sitio en el servidor IIS 7.5. Y finalmente, el SERVICIO DE RED está configurado para ejecutar el grupo de aplicaciones y también tiene la opción Leer en la carpeta del sitio (aunque no estoy seguro si es necesario, dígame, pero seguro que no es suficiente para resolver mi problema a continuación).

Ahora, al iniciar sesión a través del cuadro de diálogo de autenticación de Windows estándar, a los usuarios del dominio se les presenta un error 401.3 después de tres intentos de inicio de sesión válidos. Esto parece ser incluso antes de llegar al código de mi sitio MVC, es decir, parece completamente relacionado con IIS. El registro de eventos da la siguiente clase de entrada (que es una entrada de información, no es un error, y he ofuscado un poco para proteger a mi cliente) para todos los usuarios que ha intentado conectarse:

Event code: 4008 
Event message: File authorization failed for the request. 
Event time: 2012-02-20 18:45:41 
Event time (UTC): 2012-02-20 17:45:41 
Event ID: 6dd3b4bf99784ba1a0fe06694dd89691 
Event sequence: 3 
Event occurrence: 1 
Event detail code: 0 
Application information: 
Application domain: /LM/W3SVC/2/ROOT-1-129742335229554599 
Trust level: Full 
Application Virtual Path:/
Application Path: D:\Public\BlahblahManager\ 
Machine name: HUB01-XYZ123 
Process information: 
Process ID: 2920 
Process name: w3wp.exe 
Account name: NT AUTHORITY\NETWORK SERVICE 
Request information: 
Request URL: http://blahblahmanager.user.ad.blah.com/ 
Request path:/
User host address: 134.XXX.XXX.XXX 
User: USER-AD\teh-user 
Is authenticated: True 
Authentication Type: Negotiate 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Custom event details: 

Solo cuando otorgo específicamente a los usuarios USER-AD\teh-user o USER-AD\Domain el permiso Read en la carpeta raíz del sitio (D: \ Public \ BlahblahManager) para que el usuario pueda iniciar sesión y ver realmente el sitio.

¿Por qué es esto? Debe haber algún tipo de configuración que me falta. ¿No debería ser suficiente que el SERVICIO DE RED haya leído en la carpeta raíz del sitio? Lo busqué en Google por un tiempo, y la suplantación se menciona aquí y allá, pero parece que el jurado todavía está fuera. Algunos sitios afirman que debe ir con suplantación y proporcionan ejemplos sobre cómo hacerlo, pero cuando pruebo los ejemplos, todavía no funciona. Otros sitios dicen que la suplantación NO es el camino a seguir y que NECESITA otorgar permisos a la carpeta en estos casos. Pero eso parece una cosa tan extraña de hacer. Los usuarios no tienen ningún negocio en el servidor real, solo deberían trabajar a través del sitio web.

¿Alguna sugerencia? ¿Cuál es generalmente la cantidad mínima de configuración necesaria para que esto funcione? ¿Algún consejo sobre cómo solucionar este tipo de problema y llegar a la causa raíz?

+0

¿Alguna vez resolvió este problema? – DaveHogan

+0

Lo resolví por medio de una solución temporal que no ayudará en el caso general (muy específico del cliente). Las respuestas sugeridas hasta ahora no ayudaron desafortunadamente :( –

+0

Tengo el mismo problema ('Error de autorización de archivo para la solicitud' con usuario autenticado en la lista y Servicio de red como identidad de subproceso, grupo de aplicaciones en ejecución como NetworkService, IIS 7.5, error 401 después credenciales de entrada). Actualmente, mi única forma de evitarlo es otorgar acceso a Todos (o un grupo específico de usuarios) a los archivos, lo que parece una solución terrible. He instalado la misma aplicación en docenas de servidores de clientes y no es necesario Haga esto. Posiblemente sea algo peculiar de IIS 7.5 aunque ya instalé antes y no recuerdo este problema. – Rory

Respuesta

1

Verificación doble La autenticación anónima está habilitada en IIS. Also, have a look at this post.

+1

¿Por qué habría de habilitarse el anonimato? El OP ha dicho específicamente que está deshabilitado, ya que se requiere la Autenticación de Windows. – Rory

2

Lo invito a ver este post que declara todos los métodos de autenticación de MVC. pero asegúrese de haber habilitado la autenticación mínima requerida en su aplicación mvc. Tenga en cuenta que la Autenticación anónima funciona con las políticas de su grupo. Puede configurar eso siguiendo: Opciones de Internet -> Ficha Seguridad -> Intranet local -> Nivel personalizado, en su navegador.

1- Otra cosa que puede causar el problema es que IIS puede configurarse no para usuarios relacionados autorizados.Algunos de ellos son:

  • IISservice
  • IUSR
  • IIS_IUSRS
  • servicio de red

2- verbos También puedes ver permitidos en IIS.

3- En la carpeta raíz de su aplicación Otorgue acceso de lectura a IIS AppPool \ YourAppPool.

4- Otra causa podría ser que las reglas de acceso jerárquico en su aplicación dependan de qué servicios de la aplicación esté usando, como las reglas de acceso al panel del sitio web.

5- Setting the clientaccesspolicy.xml file.

6- Comprobar InitializeService() Método, ¿estás de establecer reglas de acceso entidad correctamente? Por ejemplo:

config.SetEntitySetAccessRule("*", EntitySetRights.All); 

7- Comprobar módulo de FileAuthentication a nivel del sitio web.

0

También estábamos peleando con este problema, y ​​comenzamos a configurar grupos de seguridad para que pudiéramos dar a nuestros usuarios permisos de nivel de archivo. Luego, uno de los administradores de nuestro servidor tropezó con un par de nuevas propiedades que permiten que la aplicación se autentique en el sistema de archivos con las credenciales establecidas, y resolvió la necesidad de que los usuarios tengan acceso. Esto es lo que ocurrió ...

Hay dos opciones de IIS que controlan esto:

Credenciales ruta física física Credenciales Path Tipo de la conexión

Por defecto, Credenciales ruta física se establece en la aplicación de usuario (autenticación de paso). Esto significa que IIS no realiza ninguna suplantación al manejar las solicitudes de Autenticación de Windows. Sin embargo, esto puede, , establecerse en un usuario específico (aunque no, desafortunadamente, la identidad del grupo de aplicaciones , que sería ideal). Ruta física El tipo de inicio de sesión de credenciales está establecido de forma predeterminada como texto claro. Para mi prueba Configuré esto en Interactivo (aunque este puede no ser el valor correcto). Los valores posibles son texto claro, lote, interactivo y red.

instalar esto hice lo siguiente:

  1. crea una cuenta local (IIS-AccessUser)
  2. Concedido IIS-AccessUser de lectura y ejecución para el directorio/home del sitio.
  3. Se agregó el usuario IIS-Access al grupo IIS_IUSRS (necesario para acceder.archivos temporales NET)
  4. Conjunto IIS-AccessUser como las credenciales de ruta física
  5. establecer credenciales ruta de acceso física Tipo de la conexión a Interactivo

hacer lo anterior me permitió iniciar sesión en la aplicación directamente, sin tener que Permitir usuarios autenticados, o tener que ser un miembro de cualquiera de los grupos en la carpeta/home. También todavía tenía roles de Autorización de .NET, por lo que aún no podía acceder a las partes del sitio que no estaba autorizado.

0

También me enfrenté a este mismo problema en iis7 con autenticación de Windows, pero con MVC4. Finalmente encontré esto post. Espero que esto pueda ayudar a alguien en el futuro.

0

No es necesario otorgar permisos de acceso a archivos cuando usa la Autenticación de Windows en IIS 7.0 e IIS 7.5.

Hay una manera mejor de que solo pudiéramos descubrir esto porque nuestro administrador del servidor olió los problemas de seguridad y administración que surgen al tomar la ruta de otorgar acceso de nivel de archivo a usuarios y grupos.

Para cualquiera que se ocupe de este problema o si está configurando un nuevo servidor IIS7/IIS7.5 y/o se mueve de IIS 6, aquí hay un artículo que le da todas las opciones y configuraciones de autenticación de Windows que necesitan modificarse para evitar otorgar acceso a nivel de archivo a individuos o grupos.

Lea los dos comentarios al final del POST para obtener algunas críticas válidas de los métodos utilizados en este artículo.

http://weblogs.asp.net/owscott/iis-using-windows-authentication-with-minimal-permissions-granted-to-disk

Además de la información en el artículo, por favor tenga en cuenta que IIS 7.5 no está usando las etiquetas de configuración web para system.web (al menos no en mi aplicación MVC 4).

Está buscando en las etiquetas system.webserver para la configuración de autorización (donde tendrá que enumerar los \ dominios de Windows \ grupos en los que un usuario debe estar para acceder a su aplicación).

- DSB

Cuestiones relacionadas