Configurando Identidade de Processo do ASP.NET

Páginas ASP.NET são executadas dentro de um processo, ou um programa do Windows.Todos os programas do Windows executam com uma identidade de segurança específica.Por padrão, o processo ASP.net é executado sob uma identidade Windows pré-definida.Como alternativa, configurando seu aplicativo para usar representação, você pode definir ASP.NET para executar sob uma identidade diferente ou sob a identidade do Windows do usuário que está fazendo a solicitação.

Para melhorar a segurança dos seus aplicativos ASP.NET, você deve estar seguro que o processo ASP.NET seja executado com uma identidade que tem somente permissões mínimas necessárias para executar seus aplicativos.Isso reduz a vulnerabilidade de recursos expostos pelo ASP.NET, caso ocorra uma violação de segurança.

Em um servidor Web executando Microsoft Windows Server 2003 e Serviços de Informações da Internet (IIS) 6.0, o processo do ASP.NET é executado no pool de aplicativos para o aplicativo da Web.O pool de aplicativos define a identidade sob a qual ASP.NET é executado (por padrão, a conta do SERVIÇOS DE REDE).Em versões anteriores do IIS (no Windows 2000 e Windows XP Professional), ASP.NET é executado no processo de trabalho do ASP.NET (aspnet_wp.exe).A identidade sob a qual ASP.NET é executado é definida pela identidade do processo Aspnet_wp.exe (por padrão, a conta ASPNET).

Para especificar a identidade de seu aplicativo ASP.NET em um servidor executando o Windows Server 2003, use O Gerenciador do IIS para configurar a identidade do pool de aplicativos de seu aplicativo ASP.NET.A identidade de pool de aplicativo também deve ser adicionada ao grupo IIS_WPG no computador servidor.

Para executar o processo de trabalho do ASP.NET com sua própria conta no Windows 2000 ou Windows XP Professional, você pode aplicar os seguintes dois atributos para o elemento de configuração <processModel> do arquivo Machine.config no computador do servidor da Web:

  • userName O nome da conta do Windows na qual o processo será executado.

  • password A senha de texto não criptografada para a conta.Não há riscos de segurança associados em armazenar senhas de texto não criptografadas em um arquivo de configuração.Se você mantiver credenciais no arquivo de configuração, você deve criptografar o conteúdo do elemento de configuração <processModel> usando configuração protegida.Para obter mais informações, consulte Criptografando informações de configuração usando configuração protegida.Para aplicativos publicados na Internet, você deve usar meios alternativos de executar o aplicativo com uma identidade específica, como representando a identidade anônima fornecida pelo IIS.Para obter mais informações, consulte Using IIS Authentication with ASP.NET Impersonation.

O exemplo a seguir mostra como definir esses atributos no elemento <processModel> de um arquivo de configuração para executar o processo de trabalho em uma conta de usuário local.

<system.web>
  <processModel enable="true"
    userName="LOCALMACHINE\IUSR_ProcessUser"
    password="%Hco94*#QW12"/>
</system.web>

Além de definir o atributo userName para o nome de uma identidade do Windows existente, você pode definí-la com os nomes System ou Machine pré-definidos.A conta System executa o processo do operador com a mesma identidade que o próprio IIS (normalmente Sistema).

Observação de segurança:

Não é recomendável que você execute seus aplicativos na conta System, porque a conta possui privilégios elevados e portanto pode representar um risco de segurança se o processo ASP.NET for comprometido.

A conta Machine executa o processo de trabalho com uma conta especial denominada ASPNET que tem permissões limitadas.O processo com qualquer identidade não deve ter que fornecer credenciais para o sistema operacional.

Observação:

Para que os seus aplicativos ASP.NET funcionem corretamente, você deve garantir que a identidade do processo tenha acesso às listas de controle de acesso (ACLs) que estão listadas em ASP.NET Required Access Control Lists (ACLs).Além disso, em servidores IIS 5.0, a identidade do processo deve ter acesso concedido de leitura para a metabase IIS, que pode ser feito usando a ferramenta Aspnet_regiis.exe e especificando a opção -ga (por exemplo, aspnet_regiis -ga "UserDomain\ApplicationUser").

Consulte também

Outros recursos

Segurança de aplicativos da Web ASP.NET