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 para 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 requer 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 como 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 que a URL de notificação seja 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 alberga o componente Extensões BITS. Um aplicativo em execução em outro computador pode precisar converter o caminho para um caminho UNC antes de acessá-lo.

 

O BITS suporta 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 suportar 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) usa um esquema de autenticação diferente do anônimo. Se o diretório de upload físico permitir solicitações anônimas (sem autenticação), o diretório virtual deverá habilitar anônimo (sem autenticação).

    As ACLs no diretório de carregamento físico devem ser definidas de modo 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 upload físico para definir as ACLs do arquivo de upload temporário (o cabeçalho BITS-Request-DataFile-Name contém o caminho para o arquivo temporário).

  • Dado que as notificações por valor não exigem que o aplicativo notificado aceda a um arquivo temporário contendo o conteúdo carregado, o esquema de autenticação pode ser anônimo ou Negotiate (NTLM). O único requisito é que o usuário autenticado para o diretório virtual também deve ser 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 apontar para uma unidade de rede mapeada, as credenciais usadas para mapear a unidade devem 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 do Connect As do diretório virtual para acessar o compartilhamento remoto. Para aceder a um compartilhamento remoto, a conta Connect As precisa ter privilégios conforme descrito na documentação da função LogonUser. O BITS faz logon usando os tipos de logon LOGON32_LOGON_BATCH ou LOGON32_LOGON_INTERACTIVE. A conta de usuário Connect As precisa de permissões Full-Access 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 apenas 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 está marcada na caixa de diálogo Conectar como ).