Permissão para o aplicativo ASP.NET no servidor da Web para acessar a pasta compartilhada em outro servidor

1

Temos um servidor da Web (IIS com ASP.NET) que possui um aplicativo da Web implantado nele. Os usuários do aplicativo da web podem usá-lo para fazer upload de arquivos. O aplicativo da Web precisa salvar os arquivos em outro servidor usando um compartilhamento do Windows. Um mecanismo de verificação de vírus acessa o compartilhamento do Windows para verificar se há vírus no arquivo enviado. O compartilhamento do Windows está na máquina de verificação de vírus.

O problema: nem o servidor da web nem a máquina de verificação de vírus estão no mesmo domínio. Na verdade, eles não fazem parte de nenhum domínio. Portanto, é difícil configurar o compartilhamento para que o servidor da Web possa gravar nele.

Qual é a melhor maneira de estabelecer uma relação de confiança entre o servidor da Web e o compartilhamento na máquina de verificação de vírus para que o servidor da Web possa gravar no compartilhamento na máquina de verificação de vírus?

(PS O aplicativo da web está sendo executado como SERVIÇO DE REDE - é possível que isso também possa ser alterado.)

    
por Trumpi 25.06.2009 / 21:31

2 respostas

1

Aqui está uma maneira de fazer isso:

  • Crie uma conta no servidor da web para que o serviço da web seja executado como.
  • Crie uma conta com o mesmo nome de usuário e senha na máquina de verificação de vírus.
  • Nas permissões NTFS da pasta compartilhada, conceda a conta que você criou para gravar na pasta.
  • Nas permissões de compartilhamento na pasta compartilhada, defina "Todos / Controle total".
  • Verifique se você tem uma boa resolução de nomes entre o servidor da web e a máquina que hospeda a pasta compartilhada.

Editar:

Eu nunca usei a funcionalidade "impersonate" que faíscas se refere em sua resposta. Eu não acho que isso vai fazer o que você quer de qualquer maneira, vendo como não há uma maneira de uma máquina autônoma para representar uma conta de outra máquina autônoma (ou de um domínio que a máquina de representação não é um membro de ).

    
por 25.06.2009 / 21:43
0

Se você quiser acesso autenticado da máquina do servidor da Web à máquina de verificação de vírus, precisará de uma conta na máquina de verificação de vírus com os direitos adequados ao compartilhamento e ao sistema de arquivos em que o compartilhamento está localizado.

O aplicativo precisaria se conectar ao compartilhamento usando as credenciais corretas quando estiver executando a operação de gravação.

Dado que o servidor da Web não poderá executar o processo do IIS usando as credenciais da máquina de verificação de vírus, você provavelmente precisará de modificações no aplicativo para suportar o acesso autenticado, conforme descrito por você. Eu recomendaria usar algo diferente de SMB antigo simples para um aplicativo .NET, pois o suporte da API para especificar credenciais explicitamente é um pouco deficiente. FTP ou SSH podem ser um bom ajuste.

Como alternativa, dependendo dos seus requisitos de segurança, você pode conseguir apenas permitir acesso anônimo somente de WRITE ao compartilhamento de verificação de vírus e fazer com que o servidor da Web fale com ele não autenticado. Você poderia usar regras de firewall ou outros mecanismos para limitar a exposição aqui de permitir acesso anônimo.

    
por 25.06.2009 / 21:55