Problema de permissão do IIS 6.0

1

Estou confuso sobre as diferenças entre duas contas,

  • a conta do Windows na qual o pool de aplicativos será executado;
  • a conta do Windows mapeada relacionada quando usamos o acesso anônimo a um aplicativo da Web para o IIS.

Quais são as diferenças?

Estou usando o Windows Server 2003 x64 + o IIS 6.0.

obrigado antecipadamente, George

    
por George2 16.08.2009 / 12:02

2 respostas

1

É um pouco confuso, não é? Primeiro, a conta de acesso anônimo existe há muito tempo, a idéia de pools de aplicativos é nova no IIS 6. Eu acho (embora eu não tenha provas) que se o IIS estivesse sendo projetado do zero agora, não é assim configuração, parece que é apenas preservar a compatibilidade.

A conta do pool de aplicativos requer determinadas permissões no servidor. Normalmente, eles são concedidos adicionando a conta ao grupo local IIS_WPG.
A conta de acesso anônimo não requer essas permissões.
Supondo que seu site esteja configurado para permitir acesso anônimo, a conta que sua página executa será determinada pela configuração de representação do aplicativo da Web. Se a identidade estiver ativa, a solicitação será processada como a conta anônima. Por outro lado, se a representação estiver desativada, a solicitação será executada como a conta do pool de aplicativos, independentemente das configurações de autenticação.
Se você não precisar de representação, obterá uma taxa de transferência um pouco melhor se desativá-la. Eu também acho que é mais fácil de seguir se a solicitação de página for executada como o pool de aplicativos, em vez de ter outra conta envolvida no processo.

Eu escrevi algumas pequenas aplicações web para uma intranet corporativa. Eles tendem a usar a autenticação do Windows, para que o ASP saiba quem está acessando a página, mas não represente, de modo que a solicitação seja executada como o pool de aplicativos. Isso permite que o acesso ao banco de dados seja executado como uma conta do Windows, o que torna a administração mais fácil (IMO) e mantém nossos DBAs felizes.
O único site que não precisa saber quem o está executando, ativa o acesso anônimo, mas deixa a representação desativada.

EDIT: Leitura adicional.
Uma rápida pesquisa no MSDN encontrou este artigo que pode ajudar. Eu também achei estes dois artigos sobre como as coisas mudaram no IIS 7.
Eles parecem apoiar minha teoria de que a conta de acesso anônimo não é realmente necessária agora. O IIS suporta pools de aplicativos.

EDIT: Sobre a personificação
O ASP.NET usará as configurações do machine.config se não houver uma configuração no web.config. Mais informações sobre como os vários arquivos de configuração interagem são aqui

    
por 16.08.2009 / 12:16
0

Sou um novo utilizador e não tenho pontos de reputação suficientes para comentar, por isso espero que a resposta esteja bem. Grande discussão. Eu pensei em inserir alguns comentários.

pipTheGeek, como você apontou, isso é muito melhor no IIS7. Você pode configurar o site para usar apenas a identidade do pool de aplicativos. Então você não precisa mais manter 2 usuários. Isso é ótimo quando você tem 1 site por pool de aplicativos ou todos os sites no mesmo pool de aplicativos confiam uns nos outros.

IIS_ WPG (sem o espaço. Essa seqüência de texto torna itálico) é um requisito e não é uma consideração para representação. No IIS6, se você não adicionar um usuário ao grupo IIS_ WPG, ele não poderá ser usado como a identidade de um pool de aplicativos. O pool de aplicativos falhará na primeira tentativa de usá-lo. No IIS7, o usuário é injetado no IIS_ WPG automaticamente para que você não precise mais se preocupar com isso.

Em termos de representação, ela não é seguida 100%, portanto, você sempre precisará de pelo menos permissões de leitura para a identidade do pool de aplicativos e o usuário anônimo ou autenticado. Por exemplo, se você usar o windows auth para a string de conexão do SQL Server, ele sempre será RevertToSelf e usará a identidade do pool de aplicativos, em vez da identidade do usuário anônimo (ou autenticado).

George, para confirmar se você tem um conjunto de falsificações, use processmonitor em www.sysinternals.com. Com isso, você pode ver o que está sendo usado no disco e as propriedades de uma linha mostrarão se ela é representada ou não. Essa é uma ferramenta gratuita, segura em um servidor de produção e fácil de aprender.

A representação não está ativada por padrão, portanto, se você não a visualizar no seu web.config, provavelmente ainda não será. No entanto, se você não for o administrador do servidor, verifique também o root web.config e o machine.config, na pasta framework \ config, para confirmar que ele não está definido. Pesquise a palavra "personificar".

Outro lado, sempre que você vir documentos que falam sobre o usuário ASPNET, considere-os antigos e para o IIS5. O que isso realmente significa no IIS6,7 é o usuário de identidade do pool de aplicativos.

    
por 20.08.2009 / 19:58