Las reglas de autorización FTP no se heredan con la configuración de aislamiento de usuario en sitios FTP en IIS

Este artículo le ayuda a resolver el problema en el que las reglas de autorización FTP no se heredan con la configuración de aislamiento de usuario si el aislamiento de usuarios FTP está configurado en el nivel de sitio.

Versión del producto original:   Internet Information Services 7.5
Número KB original:   4294477

Síntomas

En Microsoft Internet Information Services (IIS), si el aislamiento de usuarios FTP está configurado en el nivel de sitio en Directorio físico nombre de usuario (habilitar directorios virtuales globales), las reglas de autorización FTP no se adhieren a la ruta de acceso física de la aplicación y no se heredarán según la estructura de carpetas.

Suponga que un sitio FTP de IIS tiene el aislamiento de usuario establecido en Directorio físico de nombre de usuario (habilitar directorios virtuales globales) y, en la característica de autorización FTP, se conceden permisos de lectura a todos los usuarios. Una carpeta denominada Upload se crea en y se concede acceso de lectura y escritura a todos los usuarios a través de la característica de autorización FTP en IIS para esta \FTP\Localuser\<user_name>\ Upload carpeta. A pesar de tener permisos de escritura en la carpeta Upload, cuando un usuario cuyo nombre de usuario coincide con la carpeta <user_name> de la ruta de acceso intenta cargar un archivo en la carpeta Upload, el usuario recibe un mensaje de error de acceso denegado.

El resultado de intentar cargar un archivo FTP a través de la utilidad FTP de línea de comandos que se incluye en Windows es similar a la siguiente:

ftp> cd upload  
250 CWD command successful.  
ftp> put c:\file_name.txt  
200 EPRT command successful.  
550-Access is denied.  
Win32 error: Access is denied.  
Error details: Authorization rules denied the access.  
550 End

Causa

Este comportamiento es una característica del diseño de la aplicación. La configuración de directorio físico de nombre de usuario FTP (habilitar directorios virtuales globales) garantiza la compatibilidad con versiones anteriores con la funcionalidad heredada de IIS 6.

Solución

Para obtener el comportamiento deseado, use otra carpeta fuera de las carpetas aisladas por el usuario y, a continuación, establezca las reglas de autorización FTP necesarias en esa carpeta. Para los sitios FTP que usan el aislamiento de directorio físico de nombre de usuario (habilitar directorios virtuales globales), use la ruta de acceso en lugar de establecer FTP/Upload las reglas de autorización FTP/LocalUser/<user_name>/Upload FTP. El analizador de directorios omitirá la parte de la ruta de acceso porque se FTP/LocalUser/<user_name>/Upload usa para la búsqueda de aislamiento. Por lo tanto, el comportamiento solo funcionará según lo esperado cuando se definan reglas de autorización en rutas de acceso fuera de las carpetas aisladas del usuario, como la FTP/Upload ruta de acceso de ejemplo. De esta manera, la autorización se aplica a la Upload para todos los usuarios.

A continuación se muestra una regla de autorización de ejemplo en elApplicationHost.config archivo:

<location path="FTP/Upload">
    <system.ftpServer>
        <security>
            <authorization>
                <remove users="*" roles="" permissions="Read" />
                <add accessType="Allow" users="*" permissions="Read, Write" />
            </authorization>
        </security>
    </system.ftpServer>
</location>

Cuando intenta cargar un documento en el sitio FTP que tiene esta configuración, el resultado de la utilidad de símbolo del sistema FTP en Windows similar a la siguiente:

ftp> cd upload  
250 CWD command successful.  
ftp> put c:\file_name.txt  
200 EPRT command successful.  
125 Data connection already open; Transfer starting.  
226 Transfer complete.  
ftp: 14 bytes sent in 0.00Seconds 14000.00Kbytes/sec.

La configuración de directorio físico de nombre de usuario de aislamiento de usuario (habilitar directorios virtuales globales) se hereda de IIS 6 y no sigue la estructura de carpetas correcta. Otro modo de aislamiento, directorio de nombre de usuario (deshabilitar directorios virtuales globales), está presente en IIS 7 y versiones posteriores, y esta configuración sigue las reglas de autorización.