Compartilhar via


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:

  1. Clique em Iniciar, digite INetMgr.exe e, em seguida, clique em Enter. Se solicitado, clique em Continuar para elevar suas permissões.
  2. Na seção Conexões, clique no botão + ao lado do nome do computador.
  3. No Gerenciador do IIS, clique duas vezes no site que você deseja administrar.
  4. No Modo de Exibição de Recursos, clique duas vezes em Autenticação.
  5. Selecione Autenticação Anônima e clique em Editar no painel Ações.
  6. Na caixa de diálogo Editar Credenciais de Autenticação Anônima, clique na opção Usuário específico e clique em Definir.
  7. 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 >