IIS - 401.3 - No autorizado


92

Estoy tratando de comenzar a usar IIS. Creé un nuevo sitio en el Administrador de IIS, lo asigné a una carpeta en mi sistema de archivos y agregué index.html a la carpeta. He configurado el puerto en 85 para este sitio. Cuando intento acceder http://localhost:85/index.html, aparece el siguiente mensaje de error:

401.3 - no autorizado: no tiene permiso para ver este directorio o página debido a la configuración de la lista de control de acceso (ACL) o la configuración de cifrado para este recurso en el servidor web.

Le di acceso de lectura a todos en la carpeta y lo intenté de nuevo. Entonces pude acceder a la página.

Luego comparé las propiedades de mi carpeta con las de wwwroot. Encontré que wwwroot tenía acceso de lectura en IIS_IUSRS ... Cuando hice lo mismo en mi carpeta y lo intenté de nuevo, volví a recibir el error anterior. Comprobé que el acceso anónimo está habilitado de forma predeterminada, pero sigo recibiendo este error.

¿Por qué pasó esto? ¿Cuál es la forma correcta de resolver el problema?

Respuestas:


168

He luchado con este mismo problema durante varios días. Puede solucionarse modificando las propiedades de acceso de seguridad del usuario de la carpeta del sistema de archivos en la que está asignado su sitio. Pero IIS_IUSRS no es la única cuenta que debe autorizar.

  • En la consola de administración de IIS, en la parte Autenticación de la configuración de su sitio, modifique la línea "Autenticación anónima" y marque la cuenta configurada como "Usuario específico" (la mía es IUSR).
  • Otorgue permiso de lectura y ejecución en la carpeta de su sitio a la cuenta que figura como usuario específico.

O

  • En la consola de administración de IIS, en la parte Autenticación de la configuración de su sitio, modifique la línea "Autenticación anónima" seleccionando "Identidad del grupo de aplicaciones" en lugar de "Usuario específico".

6
Encontré que la autenticación anon con "Application Pool Identity" funcionaba, pero no pude hacerlo funcionar con IUSR por alguna razón. Gracias.
fortboise

5
La lógica detrás es que, de forma predeterminada, el sitio utiliza autenticación anónima y IUSR es la cuenta anónima. Por lo tanto, IIS usa la cuenta IUSR para acceder al sistema de archivos (ruta física del sitio web) que puede no funcionar siempre (ya que muchos de sus sistemas de archivos no aceptarán IUSR). Esa es la causa del 401.3. Al cambiar el acceso al sistema de archivos (otorgar acceso a los archivos a esa cuenta) o cambiar la cuenta anónima a la identidad del grupo (la identidad del grupo está en IIS_IUSRS, que generalmente tiene acceso a los archivos), IIS debería tener suficientes permisos para acceder a los archivos.
Lex Li

58

Esto es lo que funcionó para mí.

  1. Configure la identidad del grupo de aplicaciones en una cuenta a la que se le puedan asignar permisos para una carpeta.
  2. Asegúrese de que el directorio de origen y todos los archivos relacionados tengan derechos de lectura sobre los archivos de la cuenta asignada a la propiedad de identidad del grupo de aplicaciones.
  3. En IIS, en el nodo raíz del servidor, configure el usuario anónimo para heredar de la identidad del grupo de aplicaciones. (Esta fue la parte con la que luché)

Para configurar el servidor anónimo para que herede de la identidad del grupo de aplicaciones, haga lo siguiente:

  • Abra el Administrador de IIS (inetmgr)
  • En el panel de la izquierda, seleccione el nodo raíz (nombre de host del servidor)
  • En el panel central, abra el subprograma 'Autenticación'
  • Resalte 'Autenticación anónima'
  • En el panel de la derecha, seleccione 'Editar ...' (debería abrirse un cuadro de diálogo)
  • seleccione 'Identidad del grupo de aplicaciones'

9
# 3) SOLUCIONÓ MI PROBLEMA: En IIS, en el nodo raíz del servidor, configure el usuario anónimo para heredar la identidad del grupo de aplicaciones. (Esta fue la parte con la que luché)
Ravi Ram

Sé que se supone que no debes escribir comentarios de agradecimiento, pero siento que necesito expresar mi gratitud. No hay forma de que me hubiera dado cuenta de esto.
Jonny Cook

@RaviRam: Explique los pasos que siguió. Paso a paso como principiante. ¿Qué quiere decir con "n IIS, en el nodo raíz del servidor, configurar un usuario anónimo para heredar la identidad del grupo de aplicaciones"? Por favor, ayude.
Irrompible

@RaviRam: ejecute el comando "inetmgr.exe" y aparecerá la pantalla de administración de IIS. A partir de esto, siga los pasos descritos en mi respuesta. Es probable que deba ejecutar el comando como administrador. msdn.microsoft.com/en-us/library/bb763170.aspx
barrypicker

Como se mencionó en otra respuesta, descubrí que no tiene que cambiar la configuración de autenticación anón en el nivel raíz; también puede cambiar esa configuración en el nivel del sitio o directorio virtual
jaycer

15

TL; DR;

En la mayoría de los casos, será suficiente con otorgar acceso a las siguientes cuentas (una | ambas):

  1. IIS AppPool \ DefaultAppPool
  2. IUSR

con derechos de acceso :

  1. Leer y ejecutar
  2. Lista de contenidos en la carpeta
  3. Leer

¡Eso es!

Siga leyendo para obtener una explicación más detallada ...


  1. Abra IIS y seleccione su aplicación .
  2. En el lado derecho, haga clic en Autenticación .
  3. Seleccione " Autenticación anónima " aquí.
  4. Aparece el siguiente cuadro de diálogo.

ingrese la descripción de la imagen aquí

Otorgue acceso a la ACL de la carpeta de la aplicación web según lo que se seleccione en la imagen de arriba:

  • Usuario específico : conceder acceso para ambosIUSR(en mi caso) +IIS AppPool\DefaultAppPool
  • Identidad del grupo de aplicaciones : conceda accesoIIS AppPool\DefaultAppPoolsolo

IIS AppPool\DefaultAppPool account es la cuenta AppPool predeterminada para las nuevas aplicaciones web de IIS; si ha configurado una cuenta personalizada, utilice la personalizada.


Otorgue los siguientes permisos a la (s) cuenta (s):

  1. Read & Execute
  2. List folder contents
  3. Read

ingrese la descripción de la imagen aquí


13

Dado que se trata de contenido estático ...

En la carpeta que actúa como la raíz de su sitio web, si hace clic con el botón derecho en> propiedades> seguridad, ¿aparece "Usuarios" en la lista? si no, haga clic en "Agregar ..." y escríbalo, asegúrese de hacer clic en "Aplicar" cuando haya terminado.



1

En caso de que alguien más se encuentre con esto. Solucioné todos estos pasos y resulta que debido a que descomprimí algunos archivos de una MAC, Microsoft automáticamente sin ninguna notificación cifró los archivos. Después de horas de intentar establecer los permisos de la carpeta, entré y vi que los nombres de los archivos eran verdes, lo que significa que los archivos estaban cifrados e IIS arrojará el mismo error incluso si los permisos de la carpeta son correctos.


Pasé demasiado tiempo en este mismo tema. Simplemente aquí para compadecerse. Terminé aquí buscando IIS y acceso a EFS, pero su respuesta me dio una pista sobre la causa raíz de mi problema: un archivo zip expandido de una Mac. Mi escenario particular fue un problema en el que ASP.NET Core alojado en proceso en IIS no se iniciaba: sin mensajes de registro de eventos, sin registros de salida estándar, etc. Al acceder a través de localhost, se mostraba un mensaje de error que indicaba que web.config no era válido pero no mostraba ninguna fuente. Obviamente, el archivo era accesible, pero el contenido no se podía leer.
Aaron

1
  1. Cree un nuevo sitio, haga clic con el botón derecho en la carpeta Sitios y luego haga clic en agregar sitio
  2. Ingrese el nombre del sitio.
  3. Seleccionar ruta física
  4. Seleccione la dirección IP
  5. Cambiar puerto
  6. Haga clic en Aceptar
  7. Ir a grupos de aplicaciones
  8. Seleccione el grupo de sitios
  9. Haga clic con el botón derecho en Configuración avanzada.
  10. Cambie la versión de .Net CLR a "No administrar código"
  11. Cambiar la identidad a "ApplicationPoolIdentity"
  12. Vaya a la página de inicio del sitio y luego haga clic en "Autenticación"
  13. Haga clic derecho en Autenticación anónima y luego haga clic en "Editar"
  14. Seleccionar identidad del grupo de aplicaciones
  15. Haga clic en Aceptar
  16. ¡auge!

para rutas agregue un web.config

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="React Routes" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

0

Otro problema que puede surgir en relación con la recepción de un mensaje no autorizado está relacionado con los proveedores utilizados en la configuración de autenticación de IIS. En mi caso, tuve ese problema si configuro el proveedor de autenticación de Windows como "Negociar". Después de seleccionar la opción "NTLM", se me concedió el acceso.

Más información sobre proveedores de autenticación

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/windowsauthentication/providers/



0

Si está trabajando con la autenticación del grupo de aplicaciones (en lugar de IUSR), que debería, entonces esta lista de comprobaciones de Jean Sun es la mejor que pude encontrar para tratar los errores 401 en IIS:


Abra el Administrador de IIS, navegue hasta su sitio web o carpeta de aplicaciones donde se implementa el sitio.

  1. Abra Configuración avanzada (está en el panel de acciones de la derecha).
  2. Anote el nombre del grupo de aplicaciones y luego cierre esta ventana
  3. Haga doble clic en el icono de autenticación para abrir la configuración de autenticación
  4. Deshabilitar la autenticación de Windows
  5. Haga clic con el botón derecho en Autenticación anónima y haga clic en Editar
  6. Elija el botón de radio Identidad del grupo de aplicaciones y haga clic en Aceptar
  7. Seleccione el nodo Grupos de aplicaciones del árbol del administrador de IIS a la izquierda y seleccione el nombre del Grupo de aplicaciones que anotó en el paso 3
  8. Haga clic derecho y seleccione Configuración avanzada
  9. Expanda la configuración del Modelo de proceso y elija ApplicationPoolIdentity de la lista desplegable "Cuenta incorporada" y luego haga clic en Aceptar.
  10. Haga clic en Aceptar nuevamente para guardar y cerrar la página de configuración avanzada del grupo de aplicaciones
  11. Abra una línea de comandos de administrador (haga clic con el botón derecho en el icono de CMD y seleccione "Ejecutar como administrador". Estará en algún lugar del menú de inicio, probablemente en Accesorios.
  12. Ejecute el siguiente comando:

    icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)
    

    Por ejemplo:

    icacls C:\inetpub\wwwroot\mysite\ /grant "IIS APPPOOL\DEFAULTAPPPOOL":(CI)(OI)(M)
    

Especialmente los pasos 5 y 6 a menudo se pasan por alto y rara vez se mencionan en la web.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.