Establecer permisos en directorios virtuales
Por motivos de seguridad, el Servicio de transferencia inteligente en segundo plano (BITS) no carga archivos en un directorio virtual que tenga habilitados los permisos de scripting y ejecución. Si carga un archivo en un directorio virtual que tiene estos permisos habilitados, se produce un error en el trabajo con un código de error de BG_E_SERVER_EXECUTE_ENABLED.
BITS no requiere que el directorio virtual esté habilitado para escribir, por lo que se recomienda desactivar el acceso de escritura al directorio virtual.
El usuario autenticado (o el usuario anónimo de IIS para la autenticación anónima) debe tener permisos de cambio en el directorio físico al que está asignado el directorio virtual; la concesión de permisos de escritura no es suficiente.
Especificar permisos para las notificaciones
El esquema de autenticación que especifique para el directorio virtual y la dirección URL de notificación (vea la propiedad BITSServerNotificationURL ) debe ser compatible. BITS usa el esquema de autenticación especificado para que el directorio virtual acceda a la dirección URL de notificación. Se produce un error en el trabajo de carga si BITS no puede acceder a la dirección URL de notificación debido a un error de autenticación.
Si el tipo de notificación (vea la propiedad BITSServerNotificationType ) es por referencia, la aplicación debe asegurarse de que el usuario tiene acceso al archivo al que se hace referencia (vea el encabezado BITS-Request-DataFile-Name ). BITS establece las ACL en el archivo al que se hace referencia en los del directorio físico al que se asigna el directorio virtual.
Nota
La aplicación notificada debe ser capaz de asignar y acceder al archivo remoto, incluso si un servidor web que está en un equipo diferente al directorio de carga física ofrece el servicio de la dirección URL de notificación. El encabezado BITS-Request-DataFile-Name siempre contiene una especificación de ruta de acceso relativa al equipo que hospeda el componente extensiones de BITS. Es posible que una aplicación que se ejecute en otro equipo tenga que convertir la ruta de acceso a una ruta unc antes de acceder a ella.
BITS admite muchas combinaciones de esquemas de autenticación. Sin embargo, debe usar el siguiente esquema de autenticación para el directorio virtual y la dirección URL de notificación coincidente.
Para admitir notificaciones de referencia, el directorio virtual debe configurarse para usar la autenticación NTLM (negotiate) si el directorio de carga física (el directorio al que apunta el directorio virtual) usa un esquema de autenticación distinto del anónimo. Si el directorio de carga física permite solicitudes anónimas (sin autenticación), el directorio virtual debe habilitar anónimo (sin autenticación).
Las ACL del directorio de carga física deben establecerse para que el usuario autenticado pueda leer archivos en el directorio al que apunta la dirección URL de notificación. BITS usa las ACL del directorio de carga física para establecer las ACL del archivo de carga temporal (el encabezado BITS-Request-DataFile-Name contiene la ruta de acceso al archivo temporal).
Dado que las notificaciones de valor no requieren que la aplicación notificada acceda a un archivo temporal que contenga el contenido de carga, el esquema de autenticación puede ser anónimo o negociar (NTLM). El único requisito es que el usuario autenticado para el directorio virtual también debe estar autorizado para acceder a la dirección URL de notificación.
Especificar permisos para recursos compartidos remotos
Un directorio virtual puede apuntar a una unidad asignada en una máquina diferente o en un recurso compartido de red. Si apunta a una unidad de red asignada, las credenciales usadas para asignar la unidad deben tener control total en el recurso compartido remoto.
Si el directorio virtual apunta a un recurso compartido de red, BITS usa las credenciales de usuario Connect As del directorio virtual para acceder al recurso compartido remoto. Para acceder a un recurso compartido remoto, la cuenta Conectar como debe tener privilegios, como se describe en la documentación de la función LogonUser . BITS inicia sesión con tipos de inicio de sesión de LOGON32_LOGON_BATCH o LOGON32_LOGON_INTERACTIVE. La cuenta de usuario Conectar como necesita Full-Access permisos para el recurso compartido remoto; la concesión de permisos de escritura no es suficiente.
Cuando el directorio de carga física se asigna a un recurso compartido de red, la identidad del autor de la llamada que solicita la dirección URL de notificación es el usuario Connect As o el usuario autenticado del directorio de carga física (solo disponible en IIS 6.0 y versiones posteriores, cuando la casilla Use siempre las credenciales del usuario autenticado al validar el acceso al recurso de red está seleccionada en el cuadro de diálogo Conectar como ).