Partilhar via


Definindo permissões em diretórios virtuais

Por motivos de segurança, o BITS (Serviço de Transferência Inteligente em Segundo Plano) não carrega arquivos em um diretório virtual que tenha permissões de script e execução habilitadas. Se você carregar um arquivo em um diretório virtual que tenha essas permissões habilitadas, o trabalho falhará com um código de erro de BG_E_SERVER_EXECUTE_ENABLED.

O BITS não exige que o diretório virtual esteja habilitado para gravação, portanto, é recomendável desativar o acesso de gravação ao diretório virtual.

O usuário autenticado (ou o usuário anônimo do IIS para autenticação anônima) deve ter permissões de alteração no diretório físico para o qual o diretório virtual está mapeado; conceder permissões de gravação não é suficiente.

Especificando permissões para notificações

O esquema de autenticação especificado para o diretório virtual e a URL de notificação (consulte a propriedade BITSServerNotificationURL ) deve ser compatível. O BITS usa o esquema de autenticação especificado para o diretório virtual para acessar a URL de notificação. O trabalho de carregamento falhará se o BITS não conseguir acessar a URL de notificação devido a uma falha de autenticação.

Se o tipo de notificação (consulte a propriedade BITSServerNotificationType) for por referência, o aplicativo deverá garantir que o usuário tenha acesso ao arquivo referenciado (consulte o cabeçalho BITS-Request-DataFile-Name). O BITS define as ACLs no arquivo referenciado para as do diretório físico para o qual o diretório virtual é mapeado.

Observação

O aplicativo notificado deve ser capaz de mapear e acessar o arquivo remoto mesmo se a URL de notificação for atendida por um servidor Web que esteja em um computador diferente do diretório de carregamento físico. O cabeçalho BITS-Request-DataFile-Name sempre contém uma especificação de caminho relativa ao computador que hospeda o componente Extensões BITS. Um aplicativo em execução em outro computador pode precisar converter o caminho em um caminho UNC antes de acessá-lo.

 

O BITS oferece suporte a muitas combinações de esquemas de autenticação. No entanto, você deve usar o seguinte esquema de autenticação para o diretório virtual e a URL de notificação correspondente.

  • Para oferecer suporte a notificações de referência, o diretório virtual deve ser configurado para usar a autenticação NTLM (negociar) se o diretório de carregamento físico (o diretório para o qual o diretório virtual aponta) usar um esquema de autenticação diferente do anônimo. Se o diretório de carregamento físico permitir solicitações anônimas (sem autenticação), o diretório virtual deverá habilitar o anônimo (sem autenticação).

    As ACLs no diretório de carregamento físico devem ser definidas de forma que o usuário autenticado possa ler arquivos no diretório para o qual a URL de notificação aponta. O BITS usa as ACLs do diretório de carregamento físico para definir as ACLs do arquivo de carregamento temporário (o cabeçalho BITS-Request-DataFile-Name contém o caminho para o arquivo temporário).

  • Como as notificações por valor não exigem que o aplicativo notificado acesse um arquivo temporário que contém o conteúdo de carregamento, o esquema de autenticação pode ser anônimo ou de negociação (NTLM). O único requisito é que o usuário autenticado para o diretório virtual também deve estar autorizado a acessar a URL de notificação.

Especificando permissões para compartilhamentos remotos

Um diretório virtual pode apontar para uma unidade mapeada em uma máquina diferente ou um compartilhamento de rede. Se ele apontar para uma unidade de rede mapeada, as credenciais usadas para mapear a unidade deverão ter controle total sobre o compartilhamento remoto.

Se o diretório virtual apontar para um compartilhamento de rede, o BITS usará as credenciais de usuário Conectar como do diretório virtual para acessar o compartilhamento remoto. Para acessar um compartilhamento remoto, a conta Conectar como precisa ter privilégios conforme descrito na documentação da função LogonUser . O BITS faz logon usando tipos de logon LOGON32_LOGON_BATCH ou LOGON32_LOGON_INTERACTIVE. A conta de usuário Conectar como precisa de permissões de Acesso Total para o compartilhamento remoto, conceder permissões de Gravação não é suficiente.

Quando o diretório de carregamento físico é mapeado para um compartilhamento de rede, a identidade do chamador que solicita a URL de notificação é o usuário Conectar como ou o usuário autenticado do diretório de carregamento físico (disponível somente no IIS 6.0 e posterior, quando a caixa de seleção Sempre usar as credenciais do usuário autenticado ao validar o acesso ao recurso de rede estiver marcada na caixa de diálogo Conectar como).