Eu trabalho para um distrito escolar. Fui encarregado de construir um servidor de armazenamento para estudantes. Um lugar para eles trabalharem fora da escola e em casa.
Meu desafio é fazer isso funcionar em casa. Na escola, eles fazem login, autenticam e recebem uma unidade mapeada para sua pasta no servidor ( S:\fileserver\studentname
).
Minha pergunta é como posso disponibilizar isso para os alunos em casa?
O servidor está executando o Windows Server 2008 R2. Eu tenho PHP, Apache e MySQL trabalhando juntos. Minha idéia é escrever um script que "rastreie" pelo diretório que contém todas as pastas dos alunos e crie uma instância de cada arquivo e pasta em um banco de dados MySQL. Crie uma página de logon que usará o LDAP para autenticação e, uma vez que eles acessem o servidor em casa, eles obterão uma página com pastas e arquivos vinculados ao nome de usuário.
Alguém aí já montou algo assim?
Respostas:
Se você insistir em fazer isso (em vez de usar a resposta @sweaves), eu começaria por:
descartando Php, Apache e MySql. Eles não são necessários e apresentarão suas próprias dores de cabeça.
Coloque um servidor FTPS em funcionamento. Nessa linha, você pode considerar despejar o Windows Server 2003 em favor do 2008 R2. O IIS 7 possui itens de FTP muito melhores incorporados. Http://blogs.technet.com/b/chrisavis/archive/2008/06/12/how-to-configure-ftp-over-ssl-secure-ftp-on- windows-2008-em-menos-de-10-minutos.aspx
Se você não puder fazer isso, veja como configurar o File Zilla para funcionar com o AD. http://retrohack.com/enabling-filezilla-server-integration-with-active-directory-authentication/
Outra opção (obrigado @jscott) é usar o WebDav ( http://www.iis.net/download/webdav ). Aqui está outra escola fazendo exatamente a mesma coisa: http://kb.iu.edu/data/araf.html
Você também pode configurar um servidor SFTP. O SFTP suporta logins sem senha, mas não é suportado no Windows imediatamente.
Nota lateral, a solução filezilla é mais um trabalho de gerenciamento do que o IIS 7.
fonte
Uma solução muito mais fácil seria configurar uma VPN. O aluno pode fazer login na VPN e acessar todos os seus recursos como se estivesse dentro do campus. Confira os detalhes ... http://lifehacker.com/162563/how-to-set-up-free-vpn
fonte
O que exatamente eles precisam fazer? Basta ter acesso? Se você o abrir para FTP, estará solicitando grandes problemas. Se eles precisarem acessar ferramentas consistentes para trabalhar com documentos da escola, abra um servidor (ou cluster) para serviços de área de trabalho remota.
Sim, eles precisam instalar o cliente de área de trabalho remota se ainda não o tiver (provavelmente já o possuem), mas o cliente está disponível para Linux, Windows e Mac gratuitamente. A conexão é criptografada e eles podem ter acesso ao que sua escola estiver usando para o Office ou outras ferramentas, a menos que você esteja executando algo pesado como o Photoshop.
Se você usa o RDP, obtém criptografia, abre uma porta no firewall e padroniza os utilitários (nenhuma reclamação "fiz isso em casa e funcionou bem, por que não abre aqui?") gerenciamento centralizado. Eu já vi problemas semelhantes como esse resolvidos exatamente dessa maneira várias vezes e somente em circunstâncias específicas houve problemas com ele.
Além disso, você não tem alunos com várias cópias de documentos circulando reclamando que eles não sabem POR QUE o papel deles é a versão errada porque funcionava MUITO BEM em casa ... ou eles não o salvaram no lugar certo .. .etc.
fonte
E o WebDAV?
Isso é suportado no apache e você ainda pode usar o LDAP para autenticação.
Os usuários poderiam acessar seus arquivos a partir de um navegador, e as versões modernas do Windows e do OS X permitem que os usuários montem compartilhamentos WebDAV no Explorer e no Finder, respectivamente.
Também evitava os problemas associados à tentativa de armazenar o estado de um sistema de arquivos em constante mudança em sincronia com um banco de dados em seu método proposto.
fonte
Dê uma olhada no Adito / OpenVPN ALS . É gratuito, é instalado no Windows ou Linux e facilita extremamente a configuração de uma interface da web para compartilhamento de arquivos, além de muitos outros recursos. Eu uso na faculdade onde trabalho. Ele tem algumas desvantagens: requer a instalação do java nos clientes, aciona o bloqueador de pop-ups em muitos navegadores, a configuração do certificado pode ser mais fácil e a exibição paginada das listagens de arquivos pode ser mais fácil. Se você optar por configurar o webdav, ele poderá ser usado para tornar mais fácil (e mais confiável) para seus usuários o mapeamento das unidades corretas.
fonte
Como outros já disseram - não use FTP - há muitas, muitas coisas erradas nele. OTOH, você provavelmente deve usar um protocolo que não exija que os usuários instalem software adicional do cliente; embora o acesso baseado em ssh (sftp, scp) seja o ideal, as máquinas MSWindows não vêm com um cliente como padrão.
Não há gerenciadores de arquivos disponíveis no final, escritos em PHP (e provavelmente em outras linguagens também). O IIS faz algumas coisas muito estranhas com o tunelamento das permissões NTLM - mas se você estiver usando o Apache, deve ser razoavelmente seguro - no entanto, acessar as unidades não é tão simples quanto ler em \ server \ nome de usuário \ - você precisará permitir o direitos de administrador do servidor da web nesses arquivos - mas isso é um pesadelo de segurança!
A maneira como eu faço isso (para um tipo de aplicativo muito diferente) é manipular a E / S via smbclient usando o nome de usuário / senha da sessão PHP dos usuários - mas isso é em uma máquina Linux - AFAIK, não há equivalente no MSWindows.
Certamente, você deseja usar as credenciais fornecidas pelo usuário para se autenticar no armazenamento.
Isso está rapidamente se tornando assustador e complicado!
Portanto, uma solução prática seria permitir que os alunos mapeassem as unidades pela Internet. Dessa forma, você não precisa se preocupar com as complicações de fornecer um gerenciador de arquivos que não seja parte integrante do sistema operacional (ou seja, diretamente acessível a partir de aplicativos). Mas você não deseja expor seu servidor a ninguém e a todos. A maneira usual de resolver esse problema seria uma VPN - e existem muitas boas e de baixo custo disponíveis. Ou simplesmente envolva o serviço em SSL com autenticação de certificado de cliente. Mas, novamente, isso requer instalações do lado do cliente.
Assim.....
Que tal um formulário da Web para autenticar um usuário em um endereço IP que, em seguida, cria um buraco no firewall por tempo limitado para que o endereço IP se conecte via SMB (e eles ainda precisam fornecer um nome de usuário / senha para mapear a unidade, é claro) .
fonte
"there are many, many things wrong with [FTP]"
- na verdade, existem apenas algumas coisas erradas com o ftp, mas elas são realmente importantes . ;) Tudo o mesmo no finalPS: pessoalmente, acho que você terá uma taxa de sucesso muito melhor se você portar seu sistema para * nix, porque mais alternativas estariam disponíveis (livremente)
O que vem à mente:
Dropbox:
faça o upload das alterações para o Dropbox . O melhor do dropbox é que eles oferecem um plano gratuito de 20 GB (agora) e podem ser usados com todos os sistemas operacionais populares (Windows / Linux / MacOSX), sem qualquer aborrecimento. Ainda não li / implementei nada usando a API do Dropbox , mas espero que você possa conseguir sem muita dor de cabeça. Eu acho que o problema é o que acontece quando eles mudam o plano de preços, mas isso é algo para mais tarde.
Alternativas do Dropbox de código aberto
Depois de realizar uma pesquisa rápida no Google, este link fornece algumas alternativas de código aberto, mas não sei se alguma delas é boa, então você deve testar isso.
Rede
Em vez de dar aos usuários a opção de sincronizar, eles oferecem a oportunidade de baixar arquivos / pasta (compactados). Eu acho que você poderia escrever um sistema como esse sem muita queixa.
VPN / RPC
Como alguns outros usuários disseram, dê ao usuário o login usando VPN / RPC.
fonte
Dê uma olhada no Ajaxplorer ( http://www.ajaxplorer.info )
É um gerenciador de arquivos baseado na Web (escrito em PHP e Javascript) que fornece fácil administração de permissões, usuários, grupos e você pode configurar repositórios compartilhados e pessoais.
Ele também pode fazer webdav e possui conectores de autenticação para todos os tipos de sistemas (ldap, mysql, flatfile .....)
com os conectores do sistema de arquivos, você pode configurar regras para mapear contas de usuário para diretórios individuais automaticamente, o que resolveria seus requisitos para acessar a unidade mapeada do usuário.
Começamos a usá-lo aqui (agência de design / web) e clientes de todas as habilidades técnicas acham muito fácil de usar / entender
Você deve poder integrá-lo ao seu sistema atual sem alterações
fonte