Noções Básicas sobre Contas Internas de Usuário e de Grupo no IIS 7
por Saad Ladki
Introdução
Em versões anteriores do IIS, uma conta local chamada IUSR_MachineName era criada durante a instalação. O IIS usava a conta IUSR_MachineName por padrão sempre que a autenticação anônima era habilitada. Isso era usado pelos serviços FTP e HTTP.
Também havia um grupo chamado IIS_WPG, que era usado como um contêiner para todas as identidades do pool de aplicativos. Durante a instalação do IIS, todos os recursos apropriados no sistema receberam os direitos de usuário corretos para o grupo IIS_WPG, de modo que um administrador só precisava adicionar a identidade a esse grupo quando criasse uma nova conta de pool de aplicativos.
Esse modelo funcionava bem, mas tinha suas desvantagens: a conta IUSR_MachineName e o grupo IIS_WPG eram locais para o sistema em que eram criados. Cada conta e grupo no Windows recebe um número exclusivo chamado identificador de segurança (SID) que o distingue de outras contas. Quando uma ACL é criada, somente o SID é usado. Como parte do design em versões anteriores do IIS, IUSR_MachineName foi incluído no arquivo metabase.xml para que, se você tentasse copiar o metabase.xml de um computador para outro, ele não funcionasse. A conta no outro computador teria um nome diferente.
Além disso, você não podia 'xcopy /o' a ACLs de um computador para outro, uma vez que os SIDs eram diferentes de computador para computador. Uma solução alternativa era usar contas de domínio, mas isso exigia a adição de um diretório ativo à infraestrutura. O grupo IIS_WPG teve problemas semelhantes com os direitos do usuário. Se você definisse ACLs no sistema de arquivos de um computador para IIS_WPG e tentasse 'xcopy /o' para outro computador, ele falhava. Essa experiência foi aprimorada no IIS 7 e superior usando uma conta e um grupo internos.
É garantido pelo sistema operacional que uma conta e um grupo internos sempre tenham um SID exclusivo. O IIS 7 e versões posteriores foram mais longe e garantiram que os nomes reais usados pela nova conta e grupo nunca serão localizados. Por exemplo, seja qual for o idioma do sistema operacional Windows instalado, o nome da conta do IIS sempre será IUSR e o nome do grupo será IIS_IUSRS.
Em resumo, o IIS 7 e versões posteriores oferecem o seguinte:
- A conta interna IUSR substitui a conta IUSR_MachineName.
- O grupo interno IIS_IUSRS substitui o grupo IIS_WPG.
A conta IUSR não precisa mais de uma senha porque é uma conta interna. Logicamente, você pode pensar nisso como sendo o mesmo que as contas NETWORKSERVICE ou LOCALSERVICE. Tanto a nova conta IUSR quanto o grupo IIS_IUSRS são discutidos com mais profundidade nas seções abaixo.
Noções básicas sobre a nova conta do IUSR
A conta IUSR substitui a conta IUSR_MachineName no IIS 7 e versões posteriores. A conta IUSR_MachineName ainda será criada e usada se você instalar o servidor compatível com FTP 6 incluído no Windows Server 2008. Se você não instalar o servidor FTP incluído no Windows Server 2008, essa conta não será criada.
Essa conta interna não precisa de uma senha e será a identidade padrão usada quando a autenticação anônima estiver habilitada. Se você procurar no arquivo applicationHost.config, verá a seguinte definição:
<anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" />
Isso informa ao IIS para usar a nova conta interna para todas as solicitações de autenticação anônima. As maiores vantagens são que você pode:
- Definir permissões do sistema de arquivos para a conta IUSR usando o Windows Explorer ou qualquer uma das muitas ferramentas de linha de comando.
- Não se preocupar mais com senhas expirando para esta conta.
- Usar xcopy /o para copiar arquivos junto com suas informações de propriedade e ACL para computadores diferentes perfeitamente.
Observação
A conta IUSR é semelhante ao LOCALSERVICE na forma como age anonimamente na rede. As contas NETWORKSERVICE e LOCALSYSTEM podem atuar como a identidade da máquina, mas a conta IUSR não pode porque exigiria uma elevação dos direitos do usuário. Se você precisar que a conta anônima tenha direitos na rede, deverá criar uma nova conta de usuário e definir o nome de usuário e a senha manualmente, como fazia no passado para autenticação anônima.
Para conceder direitos de conta anônima na rede usando o Gerenciador do IIS:
- Clique em Iniciar, digite INetMgr.exe e, em seguida, clique em Enter. Se solicitado, clique em Continuar para elevar suas permissões.
- Na seção Conexões, clique no botão + ao lado do nome do computador.
- No Gerenciador do IIS, clique duas vezes no site que você deseja administrar.
- No Modo de Exibição de Recursos, clique duas vezes em Autenticação.
- Selecione Autenticação Anônima e clique em Editar no painel Ações.
- Na caixa de diálogo Editar Credenciais de Autenticação Anônima, clique na opção Usuário específico e clique em Definir.
- Na caixa de diálogo Definir Credenciais, insira o nome de usuário e a senha desejados e clique em OK.
Noções básicas sobre o novo grupo de IIS_IUSRS
O grupo IIS_IUSRS substitui o grupo IIS_WPG. Esse grupo interno tem acesso a todos os recursos necessários de arquivos e sistemas para que uma conta, quando adicionada a esse grupo, possa atuar perfeitamente como uma identidade de pool de aplicativos.
Assim como acontece com a conta interna, esse grupo interno resolve vários obstáculos de implantação do xcopy. Se você definisse permissões em seus arquivos para o grupo IIS_WPG (que estava disponível em sistemas IIS 6.0) e tentasse copiar esses arquivos para outro computador Windows, o SID do grupo seria diferente entre os computadores e as configurações do site seriam interrompidas.
Como o SID de grupo no IIS 7 e versões posteriores é o mesmo em todos os sistemas que executam o Windows Server 2008, você pode usar 'xcopy /o' para preservar as informações de ACL e propriedade à medida que move arquivos de um computador para outro. Isso facilita as implantações do xcopy.
O IIS 7 e versões posteriores também facilitam o processo de configuração de uma identidade de pool de aplicativos e todas as alterações necessárias. Quando o IIS inicia um processo de trabalho, ele precisa criar um token a ser usado pelo processo. Quando esse token é criado, o IIS adiciona automaticamente a associação IIS_IUSRS ao token de processos de trabalho em runtime. As contas executadas como ''identidades do pool de aplicativos'' não precisam mais ser uma parte explícita do grupo IIS_IUSRS. Essa mudança ajuda você a configurar seus sistemas com menos obstáculos e torna sua experiência geral mais favorável.
Se você quiser desabilitar esse recurso e adicionar contas manualmente ao grupo IIS_IUSRS, desabilite esse novo recurso definindo o valor manualGroupMembership como ''true''. O exemplo a seguir mostra como isso pode ser feito para o defaultAppPool:
<applicationPools>
<add name="DefaultAppPool">
<processModel manualGroupMembership="true" />
</add>
</applicationPools >