No Windows Server 2008 com o ASP.NET 4.0 instalado, existem várias contas de usuário relacionadas e não consigo entender qual é qual, qual a diferença entre elas e qual REALMENTE é a que meu aplicativo executa. Aqui está uma lista:
- IIS_IUSRS
- IUSR
- DefaultAppPool
- ASP.NET v4.0
- SERVIÇO DE REDE
- SERVIÇO LOCAL.
O que é o que?
asp.net
security
iis
user-accounts
Vilx-
fonte
fonte
Respostas:
Essa é uma pergunta muito boa e, infelizmente, muitos desenvolvedores não fazem perguntas suficientes sobre a segurança do IIS / ASP.NET no contexto de ser um desenvolvedor da Web e configurar o IIS. Então aqui vai ....
Para cobrir as identidades listadas:
IIS_IUSRS:
Isso é análogo ao antigo
IIS_WPG
grupo IIS6 . É um grupo interno com sua segurança configurada para que qualquer membro desse grupo possa atuar como uma identidade do pool de aplicativos.IUSR:
Essa conta é análoga à antiga
IUSR_<MACHINE_NAME>
conta local que era o usuário anônimo padrão dos sites IIS5 e IIS6 (ou seja, aquela configurada na guia Segurança de diretório das propriedades de um site).Para mais informações sobre
IIS_IUSRS
eIUSR
consulte:DefaultAppPool:
Se um pool de aplicativos estiver configurado para ser executado usando o recurso Identidade do Pool de Aplicativos, uma conta "sintetizada" chamada
IIS AppPool\<pool name>
será criada rapidamente e usada como identidade do pool. Nesse caso, haverá uma conta sintetizada chamadaIIS AppPool\DefaultAppPool
criada para o tempo de vida do pool. Se você excluir o pool, essa conta não existirá mais. Ao aplicar permissões a arquivos e pastas, elas devem ser adicionadas usandoIIS AppPool\<pool name>
. Você também não verá essas contas de pool no Gerenciador de usuários dos computadores. Consulte o seguinte para obter mais informações:ASP.NET v4.0:
-Essa será a identidade do pool de aplicativos do pool de aplicativos ASP.NET v4.0. Veja
DefaultAppPool
acima.NETWORK SERVICE:
-A
NETWORK SERVICE
conta é uma identidade interna introduzida no Windows 2003.NETWORK SERVICE
é uma conta de baixo privilégio sob a qual você pode executar seus pools de aplicativos e sites. Um site em execução em um pool do Windows 2003 ainda pode representar a conta anônima do site (IUSR_ ou o que você configurou como identidade anônima).No ASP.NET anterior ao Windows 2008, o ASP.NET podia executar solicitações na conta Pool de Aplicativos (normalmente
NETWORK SERVICE
). Como alternativa, você pode configurar o ASP.NET para representar a conta anônima do site por meio da<identity impersonate="true" />
configuração noweb.config
arquivo localmente (se essa configuração estiver bloqueada, ela deverá ser feita por um administrador nomachine.config
arquivo).A configuração
<identity impersonate="true">
é comum em ambientes de hospedagem compartilhada em que conjuntos de aplicativos compartilhados são usados (em conjunto com configurações de confiança parcial para impedir o desenrolamento da conta representada).No IIS7.x / ASP.NET, o controle de representação agora está configurado pelo recurso de configuração de autenticação de um site. Portanto, você pode configurar para executar como a identidade do pool
IUSR
ou como uma conta anônima personalizada específica.LOCAL SERVICE:
A
LOCAL SERVICE
conta é uma conta interna usada pelo gerente de controle de serviço. Possui um conjunto mínimo de privilégios no computador local. Ele tem um escopo de uso bastante limitado:LOCAL SYSTEM:
Você não perguntou sobre isso, mas estou acrescentando a totalidade. Esta é uma conta interna local. Possui privilégios e confiança razoavelmente extensos. Você nunca deve configurar um site ou pool de aplicativos para executar sob essa identidade.
Na prática:
Na prática, a abordagem preferida para proteger um site (se o site tiver seu próprio pool de aplicativos - que é o padrão para um novo site no MMC do IIS7) é executar sob
Application Pool Identity
. Isso significa definir a identidade do site nas Configurações avançadas do pool de aplicativos paraApplication Pool Identity
:No site, você deve configurar o recurso de autenticação:
Clique com o botão direito e edite a entrada Autenticação Anônima:
Verifique se "Identidade do pool de aplicativos" está selecionada:
Quando você aplica permissões de arquivo e pasta, concede à identidade do Pool de Aplicativos todos os direitos necessários. Por exemplo, se você estiver concedendo a identidade do pool de aplicativos para as
ASP.NET v4.0
permissões do pool, poderá fazer isso através do Explorer:Clique no botão "Verificar nomes":
Ou você pode fazer isso usando o
ICACLS.EXE
utilitário:... ou ... se o pool de aplicativos do seu site for chamado,
BobsCatPicBlog
então:Espero que isso ajude a esclarecer as coisas.
Atualizar:
Acabei de me deparar com esta excelente resposta de 2009, que contém várias informações úteis, que valem a pena ser lidas:
fonte