Unidade de rede de acesso do IIS 7 com credenciais

3

Eu tenho um servidor IIS 7 com um aplicativo PHP em execução nele. Este aplicativo precisa ser capaz de se conectar a uma unidade de rede que tenha nome de usuário e senha necessários. Esta unidade está conectada no login para usuários com net use \server /user: . O usuário não é o usuário conectado. Como posso conectar esta unidade para uso no aplicativo?

Eu tentei alterar o pool de aplicativos para o meu usuário, mas ainda sou negado. Eu tentei executar um arquivo em lotes com o uso da rede nele como sistema. Eu tentei um diretório virtual, mas não gostou do nome de usuário que é necessário. O nome de usuário contém um \ e. O usuário também não é um usuário reconhecido pelo Windows. Eu não tenho controle sobre a unidade de rede apenas o acesso a ele.

    
por Ben 20.06.2014 / 11:09

2 respostas

1

Eu tive um problema semelhante em que precisei acessar um compartilhamento de rede e resolvi o problema usando as seguintes etapas:

1) Crie uma conta com o mesmo nome de usuário e senha no servidor front-end e no servidor de arquivos. Certifique-se de que a senha não expire ou deva ser alterada.

2) Crie um compartilhamento de rede e conceda a nova conta direitos de leitura / gravação. Também testei que podia conectar-me a partir dos servidores front-end usando a nova conta para verificar se não há firewalls no caminho.

3) No servidor front-end, incluí a conta no grupo IIS_IUSRS que indiretamente lhe dá direitos de Logon como trabalho em lote.

4) Execute o seguinte comando para conceder direitos à conta

aspnet_regiis -ga <your_app_pool_user>

Veja mais: Como criar uma conta de serviço para um aplicativo ASP.NET 2.0 (MSDN)

5) Reiniciei o WAS e o IIS para garantir que as alterações na associação do grupo de contas acontecesse se você tentasse usar a conta.

C:> net stop was /y
C:> net start w3svc

6) Crie um pool de aplicativos e defina a identidade nas configurações avançadas.

Esta é a parte em que fiquei preso no IIS 8 no Windows Server 2012 com mensagens de erro ao tentar definir a identidade.

No Gerenciador do IIS, recebi a seguinte caixa de diálogo de erro: "Ocorreu um erro ao executar esta operação. Detalhes: o valor não está dentro do intervalo esperado".

Tentando definir a identidade do Pool de Aplicativos na linha de comando, recebo um erro semelhante:

C:> appcmd set config /section:applicationPools 
     /[name='test-pool'].processModel.identityType:SpecificUser 
     /[name='test-pool'].processModel.userName:MyAccountName 
     /[name='test-pool'].processModel.password:P@ssw0rd

ERROR ( hresult:80070057, message:Failed to commit configuration changes.
  The parameter is incorrect.
 )

Quando eu removo o último parâmetro, password, o comando irá alterar o tipo de identidade e definir o nome de usuário, mas eu nunca descobri por que não consegui definir a senha, então retruquei para editar meu applicationHost.config arquivo diretamente. Infelizmente com a senha terminando em texto claro.

<configuration>
   ...
    <system.applicationHost>
        <applicationPools>
            ...
            <add name="test-pool" managedRuntimeVersion="v4.0">
                <processModel identityType="SpecificUser" 
                  userName="MyAccountName" password="P@ssw0rd" />
            </add>
            ...
        </applicationPools>
        ...
    </system.applicationHost>
    ...
</configuration>

7) Por fim, configurei meu aplicativo da Web para usar o pool de aplicativos e ele poderia acessar o compartilhamento de rede sem problemas.

    
por 21.06.2014 / 00:28
0

Gostaria de mapear a unidade de rede usando credenciais alternativas e, em seguida, fazer com que o aplicativo PHP se conecte à letra da unidade apropriada. Tenha em mente que, se o Windows não tem acesso a uma unidade, então o PHP não, como o PHP não entende a autenticação do Windows.

    
por 20.06.2014 / 16:42