Como você configura o FTP com usuários do Gerenciador do IIS em um ambiente NLB com configurações compartilhadas do IIS?

3

Configurei um cluster NLB de 2 nós e usei o seguinte para compartilhar as configurações do IIS entre eles.

link

As configurações e o conteúdo do IIS estão localizados em um compartilhamento de rede por meio de um caminho UNC. Isso funciona - atualizar as configurações do IIS em um nó, é visível em outro nó e meu site funciona nos nós individuais e no cluster como um todo.

Consigo configurar um site FTP e conectar-me com êxito ao meu login do Windows. No entanto, desejo usar a Autenticação do Gerenciador do IIS, conforme definido em:

link

Eu tentei usar o "Serviço de Rede" com o objeto FTP COM, bem como uma conta de usuário dedicada que existe em todos os três hosts, mas toda vez que tento efetuar login com um usuário do IIS, recebo algo como o seguinte:

IISWMSVC_AUTHENTICATION_UNABLE_TO_READ_CONFIG

An unexpected error occurred while retrieving the authentication information.

Exception:System.Runtime.InteropServices.COMException (0x8007052E): Filename: Error:

at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath) at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath) at Microsoft.Web.Management.Server.ConfigurationAuthenticationProvider.GetSection(ServerManager serverManager)

Process:dllhost User=NT AUTHORITY\NETWORK SERVICE

Alguém pode me apontar a direção certa aqui?

    
por William Jens 28.10.2013 / 22:51

1 resposta

3

Estamos enfrentando esse problema EXATAMENTE durante a semana passada e encontramos uma solução alternativa.

Parece que o provedor de autenticação personalizado do IISManager tem alguns requisitos de permissão adicionais (não documentados) quando o IIS está no modo de configuração compartilhada (funciona bem com a configuração local).

Event Log: Application

Type: Error

Source: Microsoft-Windows-IIS-IISManager

Category:

Event: 1106

Message:

IISWMSVC_AUTHENTICATION_UNABLE_TO_READ_CONFIG

An unexpected error occurred while retrieving the authentication information.

Exception:System.Runtime.InteropServices.COMException (0x8007052E): Filename: Error:

at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath) at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath) at Microsoft.Web.Management.Server.ConfigurationAuthenticationProvider.GetSection(ServerManager serverManager)

Process:dllhost Process:dllhost User=NT AUTHORITY\NETWORK SERVICE

Posso confirmar que recebemos este MESMO DEPOIS aplicamos as permissões de 'Serviço de Rede' em todo o lugar (ou seja, os seguintes comandos que já foram referidos):

ICACLS "%SystemDrive%\Windows\System32\inetsrv\config" /Grant "Network Service":R /T
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /Grant "Network Service":R
ICACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /Grant "Network Service":R

Além das pastas acima, adicionamos a conta 'Serviço de rede' [Permissões completas] a:

  1. a pasta de configuração compartilhada (e os arquivos abaixo).
  2. a própria pasta FTP de destino.

Nenhuma das opções acima afeta o problema.

O problema é que essa mensagem de erro é diferente da normal , como neste caso os detalhes para 'Filename:' e 'Error:' são em branco (geralmente o nome do arquivo xxx.config é listado se as permissões estiverem faltando). Então isso é outra coisa ...

Também executamos o Process Monitor e também não pudemos ver nenhuma mensagem de Access Denied. Meu pensamento é que isso é possivelmente um erro em cache de quando o processo de gerenciamento de usuário do IIS inicia pela primeira vez e tenta (e falha) para ler a configuração. Percebemos algum comportamento estranho de cache quando encontramos maneiras de fazer com que funcione ( veja abaixo ).

O avanço veio quando nós Alterou a Identidade do Processo de Extensibilidade do FTP para '{Domain} \ Administrator' , e depois de reiniciar a máquina funcionou!

Observação: o IISReset não funciona - e é isso que me leva a acreditar que há algumas coisas sendo (resilientemente) armazenadas em cache aqui.

Como mais um teste nós:

  1. criou uma nova conta de usuário de domínio simples (chamada ' {Domain} \ FTPService ').
  2. trocou a identidade do processo FTP por essa nova conta.
  3. aplicou as permissões apropriadas às pastas de configuração.
  4. Reinicializado.

Em seguida, recebemos a mesma mensagem de erro novamente (com o nome de usuário / erro em branco).

Finalmente, quando fizemos do novo usuário 'FTPService' um membro de 'Admins. do Domínio' e reinicializamos (novamente, algum cache impedindo a correção imediata) ele funciona.

Também tentamos isso no Windows 2008 / IIS7 (com o complemento FTP7.5), Windows 2008 R2 / IIS 7.5, Windows 2012 / IIS8 e Windows 2012 R2 / IIS8.5 e é o mesmo problema (e resolução ) em cada.

Portanto, parece haver algum bug ou permissão 'não documentada' necessária para que isso funcione com a Configuração Compartilhada e a conta do Serviço de Rede (sem conceder direitos Administrativos do Processo de Extensibilidade do FTP) desde o advento de FTP 7.5.

Embora seja uma solução alternativa, seria ótimo descobrir quais permissões extras são necessárias para que isso funcione com o Serviço de Rede ou com uma conta de usuário que não seja do Admin. de Domínio.

    
por 11.12.2013 / 17:47