Como proteger um aplicativo ASP.NET usando a segurança do Windows

Traduções deste artigo Traduções deste artigo
ID do artigo: 315736 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

ASP.NET pode ser usado em conjunto com o Microsoft (IIS) para autenticar os usuários da Web com base em suas credenciais de conta de usuário do Microsoft Windows 2000 ou Windows Server 2003. O mecanismo de execução do ASP.NET também pode ser configurado para representar os usuários da Web ou para usar sua própria identidade do Windows quando ele acessa recursos, como bancos de dados ou arquivos.


Requisitos

Você precisa dos seguintes de hardware, software e infra-estrutura de rede para executar os procedimentos neste artigo:
  • Windows 2000 Server Service Pack 2
  • IIS 5.0
  • Windows Server 2003 com IIS 6.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
Você também precisa experiência com o seguinte:
  • Desenvolvimento do ASP.NET com o Visual Basic .NET
  • Administração do IIS
  • Administração de conta de usuário do Windows 2000

Como desenvolver o site da Web

Este procedimento, você irá criar um ASP.NET simples aplicativo, que será protegido usando autenticação do Windows.
  1. Inicie o Visual Studio.NET e crie um novo aplicativo ASP.NET do Visual Basic chamado "WindowsSite."
  2. Arraste um controle de rótulo da caixa de ferramentas para o formulário da Web WebForm1.aspx e defina sua propriedade ID para authUserPrincipalLabel .
  3. Arraste um segundo controle rótulo da caixa de ferramentas para o formulário da Web WebForm1.aspx e defina sua propriedade ID para aspPrincipalLabel .
  4. Clique duas vezes WebForm1.aspx para exibir a janela código e, em seguida, adicione a seguinte instrução Imports acima da declaração de classe:
    Imports System.Security
    						
    adicionar o código a seguir ao procedimento de evento Page_Load:
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "You are: " & authUserName
    aspPrincipalLabel.Text = "This page runs as: " & aspUserName
    					
  5. Exibir arquivo de Web.config do projeto e, em seguida, localize o elemento authentication. Verifique se o atributo mode tem um valor de Windows .
  6. Criar e salvar o projeto.
  7. Executar o projeto e, em seguida, confirme que a página é exibida com a seguinte mensagem:
    • No Windows 2000
      Você está:
      Esta página é executada como: DomainOrServer \ASPNET
    • No Windows Server 2003
      Você está:
      Esta página é executada como: DomainOrServer \NETWORK SERVICE
    Observação Seu nome de usuário não é exibido porque você não tenha sido autenticado pelo IIS; acesso anônimo ainda está habilitado.
  8. Feche o Internet Explorer para interromper o projeto.

Como desativar o acesso anônimo

Neste procedimento, você configurará o IIS para exigir autenticação integrada do Windows para o site WindowsSite.
  1. Minimize o Visual Studio e inicie o Internet Services Manager no grupo de programas Ferramentas administrativas.
  2. Expanda seu servidor e o site padrão, clique com o botão direito no site WindowsSite e em seguida, clique em Propriedades .
  3. Na guia Segurança de diretório na caixa de diálogo Propriedades de WindowsSite , clique no botão Editar na seção "Anonymous access and authentication control".
  4. Clique para desmarque a caixa de seleção acesso anônimo , verifique se a caixa de seleção autenticação integrada do Windows está selecionada e, em seguida, clique em OK .
  5. Clique em OK para fechar a caixa de diálogo Propriedades de WindowsSite .
  6. Alterne novamente para o Visual Studio e execute o projeto. Confirme que a página é exibida com a seguinte mensagem:
    • No Windows 2000
      Você está: Your Windows user name
      Esta página é executada como: DomainOrServer \ASPNET
    • No Windows Server 2003
      Você está: Your Windows user name
      Esta página é executada como: DomainOrServer \NETWORK SERVICE
    Observação Você foi autenticado através da sua conta Windows. Se você não tinha sido conectado ao Windows, você poderia foi solicitada para um Windows nome de usuário e senha.
  7. Feche o Internet Explorer para interromper o projeto.

Autorização

No ASP.NET, é possível permitir que a autorização para o aplicativo ao fazer configurações adicionais disponíveis no Web.config arquivo. Você pode permitir que determinados usuários ou certo grupos o acesso a essas configurações adicionais. Os exemplos a seguintes descrevem esse recurso. Para permitir o acesso a todos os usuários encontrado no grupo de Windows NT que é chamado "Gerentes", use o seguinte código:
<configuration>
     <system.web>
       <authorization>
         <allow roles="domainname\Managers" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
para permitir o acesso a somente certos usuários, use o seguinte código:
<configuration>
     <system.web>
       <authorization>
         <allow users="domainname\user1,domainname\user2,domainname\user3" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
Observação pode referenciar vários usuários ou funções quando você usa uma lista separada por vírgulas.


Como ativar a representação

Este procedimento, você irá configurar o aplicativo WindowsSite para representar o usuário do Windows que está acessando.
  1. No Visual Studio, veja o arquivo Web.config para o projeto WindowsSite.
  2. Adicione o seguinte elemento após o elemento de authentication:
    <identity impersonate = "true" />
    					
  3. Salve Web.config.
  4. Execute o projeto. Confirme que a página é exibida com a seguinte mensagem (Observe que o mecanismo de execução do ASP.NET usarão suas credenciais do Windows para acessar recursos em seu nome):
    Você está: Your Windows user name
    Esta página é executada como: Your Windows user name
  5. Feche o Internet Explorer para interromper o projeto.

Como atribuir um objeto personalizado

Este procedimento, você irá configurar o aplicativo WindowsSite para usar uma entidade de segurança personalizado:
  1. Inicie o recurso de gerenciamento do computador a partir grupo de programas Ferramentas administrativas. Criar uma conta de usuário Windows 2000 nova denominada "WindowsSite", com a senha "senha" (Observe se o servidor for um controlador de domínio e, em seguida, use a ferramenta Active Directory Users and Computers).
  2. Clique para desmarcar o usuário deve alterar a senha no próximo logon caixa de seleção. Observação A entidade personalizada que você seleciona deve ter as permissões que são descritas no seguinte artigo da Base de dados de Conhecimento:
    317012INFO: Processo e identidade de solicitação no ASP.NET
  3. Quando a conta WindowsSite foi criada, feche a ferramenta administrativa que usou para criá-la.
  4. No Visual Studio, veja o arquivo Web.config para o projeto WindowsSite.
  5. Edite o elemento identity para ler o seguinte:
    identity impersonate = "true"
           userName = "DomainOrServerName\WindowsSite"
           password = "password"/>
    
    onde DomainOrServerName é o nome do domínio do Windows Server 2003 (em um ambiente de domínio) ou Windows 2000 ou do seu computador (em um ambiente de grupo de trabalho).
  6. Salve Web.config.
  7. Execute o projeto. Confirme que a página é exibida com a seguinte mensagem:
    Você está: Your Windows user name
    Esta página é executada como: DomainOrServerName \WindowsSite
    Observação Aspnet_wp.exe usará as credenciais do Windows que você especificou para acessar recursos em seu nome.
  8. Feche o Internet Explorer para interromper o projeto.
Observação A identidade do processo que representa um usuário específico em um segmento deve ter o privilégio funcionar como parte do sistema operacional .
  • No Windows 2000, por padrão, o aspnet_wp.exe processo é executado em uma conta de computador é denominada ASPNET.
  • No Windows Server 2003, por padrão, o aspnet_wp.exe processo é executado em uma conta de computador que é denominada serviço de rede. No entanto, essa conta não tem os privilégios corretos para representar um usuário específico. Você receber uma mensagem de erro se você tentar representar um usuário específico.
Para contornar este problema, use um dos seguintes métodos:
  • Conceder a funcionar como parte do sistema operacional privilégios da conta ASPNET (a conta com menos privilégios).

    Observação Embora você possa usar esse método para solucionar o problema, a Microsoft não recomenda esse método.
  • Altere a conta que o processo Aspnet_wp.exe é executado na conta do sistema na seção de configuração <processmodel> do arquivo Machine.config.
Para obter mais informações sobre o processo ASPNET, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa291339(VS.71).aspx

Solução de problemas

Segurança do Windows em um site do ASP.NET pode ser ainda mais aprimorada (e complicada) usando as permissões de arquivo NTFS. Se sua conta do Windows não tiver permissões para ler uma página da Web do ASP.NET, IIS solicitará credenciais alternativas do Windows. Da mesma forma, se uma página ASP.NET tenta acessar um arquivo que o principal de segurança usado pelo mecanismo de execução do ASP.NET não tem acesso ao, você será solicitado para credenciais alternativas. NTFS permissões são uma maneira eficaz para controlar o acesso a subseções de um site da Web.

Referências

Para obter mais informações sobre como usar autenticação do Windows em um site da Web ASP.NET, consulte o tópico de "Segurança" do aplicativo ASP.NET na documentação do .NET Framework.

Além disso, consulte o artigo "Autenticação no ASP.NET: .NET Security Guidance" no seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/ms978378.aspx

Propriedades

ID do artigo: 315736 - Última revisão: segunda-feira, 3 de dezembro de 2007 - Revisão: 3.11
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
Palavras-chave: 
kbmt kbconfig kbhowtomaster kbinfo kbsecurity kbweb KB315736 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315736

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com