Como atribuir permissões à conta ApplicationPoolIdentity

253

No IIS 7 no Windows Server 2008, os pools de aplicativos podem ser executados como a conta "ApplicationPoolIdentity" em vez da conta NetworkService.

Como atribuo permissões a essa conta "ApplicationPoolIdentity". Não aparece como um usuário local na máquina. Não aparece como um grupo em nenhum lugar. Nada remotamente parecido com isso aparece em qualquer lugar. Quando eu navego por usuários locais, grupos e contas internas, elas não aparecem na lista, nem nada similar aparece na lista. O que está acontecendo?

Eu não sou o único com este problema: veja Problemas com ApplicationPoolIdentity no IIS 7.5 + Windows 7 para um exemplo.

"Esta é, infelizmente, uma limitação do seletor de objetos no Windows Server 2008 / Windows Vista - como várias pessoas já descobriram, você ainda pode manipular a ACL para a identidade do pool de aplicativos usando ferramentas de linha de comando como icacls ."

    
por Triynko 03.11.2009 / 22:52

6 respostas

281

Atualização: A pergunta original era para o Windows Server 2008, mas a solução é mais fácil para o Windows Server 2008 R2 e o Windows Server 2012 (e o Windows 7 e 8). Você pode adicionar o usuário por meio da interface do usuário do NTFS digitando-o diretamente. O nome está no formato do IIS APPPOOL \ {nome do pool de aplicativos}. Por exemplo: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Nota: por comentários abaixo, há duas coisas a ter em conta:

  • Insira a string diretamente no campo "Selecionar usuário ou grupo" e não no campo de pesquisa.
  • Em um ambiente de domínio você precisa definir o local para o seu computador local primeiro.

Referência ao artigo do Microsoft Docs: Identidades do pool de aplicativos > Protegendo Recursos

Resposta original: (para Windows Server 2008) Esse é um ótimo recurso, mas, como você mencionou, ainda não está totalmente implementado. Você pode adicionar a identidade do pool de aplicativos a partir do prompt de comando com algo como icacls, então você pode gerenciá-lo a partir da GUI. Por exemplo, execute algo como isto no prompt de comando:

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

Em seguida, no Windows Explorer, vá para a pasta wwwroot e edite as permissões de segurança. Você verá o que parece um grupo (o ícone do grupo) chamado DefaultAppPool. Agora você pode editar as permissões.

No entanto, você não precisa usar isso. É um bônus que você pode usar se quiser. Você pode usar a maneira antiga de criar um usuário personalizado por pool de aplicativos e atribuir o usuário personalizado ao disco. Isso tem suporte total à interface do usuário.

Esse método de injeção de SID é bom porque permite usar um único usuário, mas isolar totalmente cada site um do outro sem precisar criar usuários exclusivos para cada pool de aplicativos. Bastante impressionante, e será ainda melhor com o suporte à interface do usuário.

Observação: Se você não conseguir encontrar o usuário do pool de aplicativos, verifique se o serviço do Windows chamado Application Host Helper Service está em execução. É o serviço que mapeia usuários do pool de aplicativos para contas do Windows.

    
por 04.11.2009 / 04:07
21

Você precisa se certificar de que o campo "A partir deste local" está definido para a máquina local e não para o domínio.

Eu tive o mesmo problema e, depois que mudei, funcionou bem.

    
por 01.08.2012 / 15:29
4

Você deve realmente criar grupos por "função" e atribuir esse grupo aos acessos no sistema de arquivos. Em seguida, adicione o pool de aplicativos aos grupos específicos da função, conforme necessário. Dessa forma, mesmo se você remover o pool de aplicativos posteriormente (e o usuário virtual for poof ), não precisará se preocupar em refazer todas as permissões, basta adicionar o pool de aplicativos de substituição ao grupo existente. / p>     

por 14.06.2013 / 19:42
3

Depois de ler @Scott Forsyth - Resposta do MVP, tentei reiniciar o Serviço Auxiliar do Host de Aplicativo. Isso resolveu o problema para mim.

    
por 04.12.2012 / 12:05
0

Eu estava executando o WS8 R2 e não consegui adicionar IIS APPPOOL\DefaultAppPool no Windows Explorer. A única maneira que funcionava era via linha de comando:

cacls [FILE PATH] /T /E /G "IIS APPPOOL\DefaultAppPool":C

    
por 19.03.2012 / 15:46
0

Se esta questão for sobre como executar o _sp_send_dbmail no banco de dados msdb (usando o procedimento armazenado SQL send Database Mail no msdb), veja algumas soluções. Adicione o nome de usuário do aplicativo .net do seu banco de dados (que é definido na sua cadeia de conexão em seu aplicativo .net) para o usuário msdb com a associação à função "DatabaseMailUserRole"

    
por 25.07.2014 / 02:50